.start = PM8038_IRQ_BLOCK_BIT(PM8038_GPIO_BLOCK_START, 0), .end = PM8038_IRQ_BLOCK_BIT(PM8038_GPIO_BLOCK_START, 0) + PM8038_NR_GPIOS - 1, .flags = IORESOURCE_IRQ, }, }; static struct mfd_cell gpio_cell __devinitdata = { .name = PM8XXX_GPIO_DEV_NAME, .id = -1, .resources = gpio_cell_resources, .num_resources = ARRAY_SIZE(gpio_cell_resources), }; static const struct resource adc_cell_resources[] __devinitconst = { SINGLE_IRQ_RESOURCE(NULL, PM8038_ADC_EOC_USR_IRQ), SINGLE_IRQ_RESOURCE(NULL, PM8038_ADC_BATT_TEMP_WARM_IRQ), SINGLE_IRQ_RESOURCE(NULL, PM8038_ADC_BATT_TEMP_COLD_IRQ), }; static struct mfd_cell adc_cell __devinitdata = { .name = PM8XXX_ADC_DEV_NAME, .id = -1, .resources = adc_cell_resources, .num_resources = ARRAY_SIZE(adc_cell_resources), }; static const struct resource charger_cell_resources[] __devinitconst = { SINGLE_IRQ_RESOURCE("USBIN_VALID_IRQ", PM8921_USBIN_VALID_IRQ), SINGLE_IRQ_RESOURCE("USBIN_OV_IRQ", PM8921_USBIN_OV_IRQ), SINGLE_IRQ_RESOURCE("BATT_INSERTED_IRQ", PM8921_BATT_INSERTED_IRQ),
static struct mfd_cell mpp_cell __devinitdata = { .name = PM8XXX_MPP_DEV_NAME, .id = 1, .resources = mpp_cell_resources, .num_resources = ARRAY_SIZE(mpp_cell_resources), }; static struct mfd_cell debugfs_cell __devinitdata = { .name = "pm8xxx-debug", .id = 1, .platform_data = "pm8821-dbg", .pdata_size = sizeof("pm8821-dbg"), }; static const struct resource thermal_alarm_cell_resources[] __devinitconst = { SINGLE_IRQ_RESOURCE("pm8821_tempstat_irq", PM8821_TEMPSTAT_IRQ), SINGLE_IRQ_RESOURCE("pm8821_overtemp_irq", PM8821_OVERTEMP_IRQ), }; static struct pm8xxx_tm_core_data thermal_alarm_cdata = { .adc_type = PM8XXX_TM_ADC_NONE, .reg_addr_temp_alarm_ctrl = REG_TEMP_ALARM_CTRL, .reg_addr_temp_alarm_pwm = REG_TEMP_ALARM_PWM, .tm_name = "pm8821_tz", .irq_name_temp_stat = "pm8821_tempstat_irq", .irq_name_over_temp = "pm8821_overtemp_irq", .default_no_adc_temp = 37000, }; static struct mfd_cell thermal_alarm_cell __devinitdata = { .name = PM8XXX_TM_DEV_NAME,
return pmic->revision & PM8058_REVISION_MASK; } static struct pm8xxx_drvdata pm8058_drvdata = { .pmic_readb = pm8058_readb, .pmic_writeb = pm8058_writeb, .pmic_read_buf = pm8058_read_buf, .pmic_write_buf = pm8058_write_buf, .pmic_read_irq_stat = pm8058_read_irq_stat, .pmic_get_version = pm8058_get_version, .pmic_get_revision = pm8058_get_revision, }; static const struct resource pm8058_charger_resources[] __devinitconst = { SINGLE_IRQ_RESOURCE("CHGVAL", PM8058_CHGVAL_IRQ), SINGLE_IRQ_RESOURCE("CHGINVAL", PM8058_CHGINVAL_IRQ), SINGLE_IRQ_RESOURCE("CHGILIM", PM8058_CHGILIM_IRQ), SINGLE_IRQ_RESOURCE("VCP", PM8058_VCP_IRQ), SINGLE_IRQ_RESOURCE("ATC_DONE", PM8058_ATC_DONE_IRQ), SINGLE_IRQ_RESOURCE("ATCFAIL", PM8058_ATCFAIL_IRQ), SINGLE_IRQ_RESOURCE("AUTO_CHGDONE", PM8058_AUTO_CHGDONE_IRQ), SINGLE_IRQ_RESOURCE("AUTO_CHGFAIL", PM8058_AUTO_CHGFAIL_IRQ), SINGLE_IRQ_RESOURCE("CHGSTATE", PM8058_CHGSTATE_IRQ), SINGLE_IRQ_RESOURCE("FASTCHG", PM8058_FASTCHG_IRQ), SINGLE_IRQ_RESOURCE("CHG_END", PM8058_CHG_END_IRQ), SINGLE_IRQ_RESOURCE("BATTTEMP", PM8058_BATTTEMP_IRQ), SINGLE_IRQ_RESOURCE("CHGHOT", PM8058_CHGHOT_IRQ), SINGLE_IRQ_RESOURCE("CHGTLIMIT", PM8058_CHGTLIMIT_IRQ), SINGLE_IRQ_RESOURCE("CHG_GONE", PM8058_CHG_GONE_IRQ), SINGLE_IRQ_RESOURCE("VCPMAJOR", PM8058_VCPMAJOR_IRQ),
.start = PM8018_IRQ_BLOCK_BIT(PM8018_GPIO_BLOCK_START, 0), .end = PM8018_IRQ_BLOCK_BIT(PM8018_GPIO_BLOCK_START, 0) + PM8018_NR_GPIOS - 1, .flags = IORESOURCE_IRQ, }, }; static struct mfd_cell gpio_cell __devinitdata = { .name = PM8XXX_GPIO_DEV_NAME, .id = -1, .resources = gpio_cell_resources, .num_resources = ARRAY_SIZE(gpio_cell_resources), }; static const struct resource adc_cell_resources[] __devinitconst = { SINGLE_IRQ_RESOURCE(NULL, PM8018_ADC_EOC_USR_IRQ), SINGLE_IRQ_RESOURCE(NULL, PM8018_ADC_BATT_TEMP_WARM_IRQ), SINGLE_IRQ_RESOURCE(NULL, PM8018_ADC_BATT_TEMP_COLD_IRQ), }; static struct mfd_cell adc_cell __devinitdata = { .name = PM8XXX_ADC_DEV_NAME, .id = -1, .resources = adc_cell_resources, .num_resources = ARRAY_SIZE(adc_cell_resources), }; static const struct resource mpp_cell_resources[] __devinitconst = { { .start = PM8018_IRQ_BLOCK_BIT(PM8018_MPP_BLOCK_START, 0), .end = PM8018_IRQ_BLOCK_BIT(PM8018_MPP_BLOCK_START, 0)
.name = "pmic_rtc_base", .start = REG_RTC_BASE, .end = REG_RTC_BASE, .flags = IORESOURCE_IO, }, }; static struct mfd_cell rtc_cell __devinitdata = { .name = PM8XXX_RTC_DEV_NAME, .id = -1, .resources = rtc_cell_resources, .num_resources = ARRAY_SIZE(rtc_cell_resources), }; static const struct resource resources_pwrkey[] __devinitconst = { SINGLE_IRQ_RESOURCE(NULL, PM8038_PWRKEY_REL_IRQ), SINGLE_IRQ_RESOURCE(NULL, PM8038_PWRKEY_PRESS_IRQ), }; static struct mfd_cell pwrkey_cell __devinitdata = { .name = PM8XXX_PWRKEY_DEV_NAME, .id = -1, .num_resources = ARRAY_SIZE(resources_pwrkey), .resources = resources_pwrkey, }; static struct mfd_cell pwm_cell __devinitdata = { .name = PM8XXX_PWM_DEV_NAME, .id = -1, };
.start = PM8038_IRQ_BLOCK_BIT(PM8038_GPIO_BLOCK_START, 0), .end = PM8038_IRQ_BLOCK_BIT(PM8038_GPIO_BLOCK_START, 0) + PM8038_NR_GPIOS - 1, .flags = IORESOURCE_IRQ, }, }; static struct mfd_cell gpio_cell __devinitdata = { .name = PM8XXX_GPIO_DEV_NAME, .id = -1, .resources = gpio_cell_resources, .num_resources = ARRAY_SIZE(gpio_cell_resources), }; static const struct resource adc_cell_resources[] __devinitconst = { SINGLE_IRQ_RESOURCE(NULL, PM8038_ADC_EOC_USR_IRQ), SINGLE_IRQ_RESOURCE(NULL, PM8038_ADC_BATT_TEMP_WARM_IRQ), SINGLE_IRQ_RESOURCE(NULL, PM8038_ADC_BATT_TEMP_COLD_IRQ), }; static struct mfd_cell adc_cell __devinitdata = { .name = PM8XXX_ADC_DEV_NAME, .id = -1, .resources = adc_cell_resources, .num_resources = ARRAY_SIZE(adc_cell_resources), }; static const struct resource mpp_cell_resources[] __devinitconst = { { .start = PM8038_IRQ_BLOCK_BIT(PM8038_MPP_BLOCK_START, 0), .end = PM8038_IRQ_BLOCK_BIT(PM8038_MPP_BLOCK_START, 0)