rc5t583
struct device *parent = rc5t583_gpio->rc5t583->dev;
struct rc5t583 *rc5t583 = dev_get_drvdata(pdev->dev.parent);
struct rc5t583_platform_data *pdata = dev_get_platdata(rc5t583->dev);
rc5t583_gpio->rc5t583 = rc5t583;
struct rc5t583 *rc5t583;
struct device *parent = rc5t583_gpio->rc5t583->dev;
struct device *parent = rc5t583_gpio->rc5t583->dev;
struct device *parent = rc5t583_gpio->rc5t583->dev;
struct device *parent = rc5t583_gpio->rc5t583->dev;
return rc5t583_gpio->rc5t583->irq_base +
struct rc5t583 *rc5t583 = irq_data_get_irq_chip_data(irq_data);
mutex_lock(&rc5t583->irq_lock);
struct rc5t583 *rc5t583 = irq_data_get_irq_chip_data(irq_data);
unsigned int __irq = irq_data->irq - rc5t583->irq_base;
rc5t583->group_irq_en[data->grp_index] |= 1 << data->grp_index;
rc5t583->intc_inten_reg |= 1 << data->master_bit;
rc5t583->irq_en_reg[data->mask_reg_index] |= 1 << data->int_en_bit;
struct rc5t583 *rc5t583 = irq_data_get_irq_chip_data(irq_data);
unsigned int __irq = irq_data->irq - rc5t583->irq_base;
rc5t583->group_irq_en[data->grp_index] &= ~(1 << data->grp_index);
if (!rc5t583->group_irq_en[data->grp_index])
rc5t583->intc_inten_reg &= ~(1 << data->master_bit);
rc5t583->irq_en_reg[data->mask_reg_index] &= ~(1 << data->int_en_bit);
struct rc5t583 *rc5t583 = irq_data_get_irq_chip_data(irq_data);
unsigned int __irq = irq_data->irq - rc5t583->irq_base;
rc5t583->gpedge_reg[gpedge_index] &= ~(3 << gpedge_bit_pos);
rc5t583->gpedge_reg[gpedge_index] |= (val << gpedge_bit_pos);
struct rc5t583 *rc5t583 = irq_data_get_irq_chip_data(irq_data);
for (i = 0; i < ARRAY_SIZE(rc5t583->gpedge_reg); i++) {
ret = rc5t583_write(rc5t583->dev, gpedge_add[i],
rc5t583->gpedge_reg[i]);
dev_warn(rc5t583->dev,
for (i = 0; i < ARRAY_SIZE(rc5t583->irq_en_reg); i++) {
ret = rc5t583_write(rc5t583->dev, irq_en_add[i],
rc5t583->irq_en_reg[i]);
dev_warn(rc5t583->dev,
ret = rc5t583_write(rc5t583->dev, RC5T583_INTC_INTEN,
rc5t583->intc_inten_reg);
dev_warn(rc5t583->dev,
mutex_unlock(&rc5t583->irq_lock);
struct rc5t583 *rc5t583 = irq_data_get_irq_chip_data(irq_data);
return irq_set_irq_wake(rc5t583->chip_irq, on);
struct rc5t583 *rc5t583 = data;
ret = rc5t583_read(rc5t583->dev, RC5T583_INTC_INTMON, &master_int);
dev_err(rc5t583->dev,
ret = rc5t583_read(rc5t583->dev, irq_mon_add[i], &int_sts[i]);
dev_warn(rc5t583->dev,
ret = rc5t583_write(rc5t583->dev, irq_clr_add[i],
dev_warn(rc5t583->dev,
(rc5t583->group_irq_en[data->master_bit] &
handle_nested_irq(rc5t583->irq_base + i);
int rc5t583_irq_init(struct rc5t583 *rc5t583, int irq, int irq_base)
dev_warn(rc5t583->dev, "No interrupt support on IRQ base\n");
mutex_init(&rc5t583->irq_lock);
ret = rc5t583_write(rc5t583->dev, irq_en_add[i],
rc5t583->irq_en_reg[i]);
dev_warn(rc5t583->dev,
ret = rc5t583_write(rc5t583->dev, gpedge_add[i],
rc5t583->gpedge_reg[i]);
dev_warn(rc5t583->dev,
ret = rc5t583_write(rc5t583->dev, RC5T583_INTC_INTEN, 0x0);
dev_warn(rc5t583->dev,
ret = rc5t583_write(rc5t583->dev, irq_clr_add[i], 0);
dev_warn(rc5t583->dev,
rc5t583->irq_base = irq_base;
rc5t583->chip_irq = irq;
int __irq = i + rc5t583->irq_base;
irq_set_chip_data(__irq, rc5t583);
ret = devm_request_threaded_irq(rc5t583->dev, irq, NULL, rc5t583_irq,
IRQF_ONESHOT, "rc5t583", rc5t583);
dev_err(rc5t583->dev,
static int rc5t583_clear_ext_power_req(struct rc5t583 *rc5t583,
ret = rc5t583_write(rc5t583->dev, RICOH_ONOFFSEL_REG, on_off_val);
dev_warn(rc5t583->dev, "Error in writing reg %d error: %d\n",
ret = rc5t583_write(rc5t583->dev, RICOH_SWCTL_REG, 0x0);
dev_warn(rc5t583->dev, "Error in writing reg %d error: %d\n",
ret = rc5t583_write(rc5t583->dev, i, 0x0);
dev_warn(rc5t583->dev,
struct rc5t583 *rc5t583;
rc5t583 = devm_kzalloc(&i2c->dev, sizeof(*rc5t583), GFP_KERNEL);
if (!rc5t583)
rc5t583->dev = &i2c->dev;
i2c_set_clientdata(i2c, rc5t583);
rc5t583->regmap = devm_regmap_init_i2c(i2c, &rc5t583_regmap_config);
if (IS_ERR(rc5t583->regmap)) {
ret = PTR_ERR(rc5t583->regmap);
ret = rc5t583_clear_ext_power_req(rc5t583, pdata);
ret = rc5t583_irq_init(rc5t583, i2c->irq, pdata->irq_base);
ret = devm_mfd_add_devices(rc5t583->dev, -1, rc5t583_subdevs,
struct rc5t583 *rc5t583 = dev_get_drvdata(pdev->dev.parent);
struct rc5t583_platform_data *pdata = dev_get_platdata(rc5t583->dev);
ret = rc5t583_ext_power_req_config(rc5t583->dev,
config.regmap = rc5t583->regmap;
struct rc5t583 *rc5t583 = dev_get_drvdata(dev->parent);
ret = regmap_bulk_read(rc5t583->regmap, RC5T583_RTC_AY_MIN, alarm_data,
ret = regmap_read(rc5t583->regmap, RC5T583_RTC_CTL1, &interrupt_enable);
struct rc5t583 *rc5t583 = dev_get_drvdata(dev->parent);
ret = regmap_bulk_write(rc5t583->regmap, RC5T583_RTC_AY_MIN, alarm_data,
struct rc5t583 *rc5t583 = dev_get_drvdata(dev->parent);
ret = regmap_read(rc5t583->regmap, RC5T583_RTC_CTL2, &rtc_reg);
ret = regmap_write(rc5t583->regmap, RC5T583_RTC_CTL2, rtc_reg);
struct rc5t583 *rc5t583 = dev_get_drvdata(pdev->dev.parent);
ret = regmap_write(rc5t583->regmap, RC5T583_RTC_CTL2, 0);
ret = regmap_write(rc5t583->regmap, RC5T583_RTC_ADJ, 0);
pmic_plat_data = dev_get_platdata(rc5t583->dev);
struct rc5t583 *rc5t583 = dev_get_drvdata(dev->parent);
ret = regmap_read(rc5t583->regmap, RC5T583_RTC_CTL1,
struct rc5t583 *rc5t583 = dev_get_drvdata(dev->parent);
return regmap_write(rc5t583->regmap, RC5T583_RTC_CTL1,
struct rc5t583 *rc5t583 = dev_get_drvdata(dev->parent);
return regmap_update_bits(rc5t583->regmap, RC5T583_RTC_CTL1, SET_YAL,
struct rc5t583 *rc5t583 = dev_get_drvdata(dev->parent);
ret = regmap_bulk_read(rc5t583->regmap, RC5T583_RTC_SEC, rtc_data,
struct rc5t583 *rc5t583 = dev_get_drvdata(dev->parent);
ret = regmap_bulk_write(rc5t583->regmap, RC5T583_RTC_SEC, rtc_data,
struct rc5t583 *rc5t583 = dev_get_drvdata(dev);
return regmap_write(rc5t583->regmap, reg, val);
struct rc5t583 *rc5t583 = dev_get_drvdata(dev);
ret = regmap_read(rc5t583->regmap, reg, &ival);
struct rc5t583 *rc5t583 = dev_get_drvdata(dev);
return regmap_update_bits(rc5t583->regmap, reg, bit_mask, bit_mask);
struct rc5t583 *rc5t583 = dev_get_drvdata(dev);
return regmap_update_bits(rc5t583->regmap, reg, bit_mask, 0);
struct rc5t583 *rc5t583 = dev_get_drvdata(dev);
return regmap_update_bits(rc5t583->regmap, reg, mask, val);
int rc5t583_irq_init(struct rc5t583 *rc5t583, int irq, int irq_base);
int rc5t583_irq_exit(struct rc5t583 *rc5t583);