|
@@ -40,16 +40,6 @@ static struct i2c_board_info __initdata pmic_i2c_board_info = {
|
|
|
.flags = I2C_CLIENT_WAKE,
|
|
|
};
|
|
|
|
|
|
-static struct i2c_board_info __initdata omap4_i2c1_board_info[] = {
|
|
|
- {
|
|
|
- .addr = 0x48,
|
|
|
- .flags = I2C_CLIENT_WAKE,
|
|
|
- },
|
|
|
- {
|
|
|
- I2C_BOARD_INFO("twl6040", 0x4b),
|
|
|
- },
|
|
|
-};
|
|
|
-
|
|
|
#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
|
|
|
static int twl_set_voltage(void *data, int target_uV)
|
|
|
{
|
|
@@ -79,30 +69,25 @@ void __init omap_pmic_init(int bus, u32 clkrate,
|
|
|
|
|
|
void __init omap4_pmic_init(const char *pmic_type,
|
|
|
struct twl4030_platform_data *pmic_data,
|
|
|
- struct twl6040_platform_data *twl6040_data, int twl6040_irq)
|
|
|
+ struct i2c_board_info *devices, int nr_devices)
|
|
|
{
|
|
|
/* PMIC part*/
|
|
|
omap_mux_init_signal("sys_nirq1", OMAP_PIN_INPUT_PULLUP | OMAP_PIN_OFF_WAKEUPENABLE);
|
|
|
- strncpy(omap4_i2c1_board_info[0].type, pmic_type,
|
|
|
- sizeof(omap4_i2c1_board_info[0].type));
|
|
|
- omap4_i2c1_board_info[0].irq = 7 + OMAP44XX_IRQ_GIC_START;
|
|
|
- omap4_i2c1_board_info[0].platform_data = pmic_data;
|
|
|
-
|
|
|
- /* TWL6040 audio IC part */
|
|
|
- omap4_i2c1_board_info[1].irq = twl6040_irq;
|
|
|
- omap4_i2c1_board_info[1].platform_data = twl6040_data;
|
|
|
-
|
|
|
- omap_register_i2c_bus(1, 400, omap4_i2c1_board_info, 2);
|
|
|
+ omap_pmic_init(1, 400, pmic_type, 7 + OMAP44XX_IRQ_GIC_START, pmic_data);
|
|
|
|
|
|
+ /* Register additional devices on i2c1 bus if needed */
|
|
|
+ if (devices)
|
|
|
+ i2c_register_board_info(1, devices, nr_devices);
|
|
|
}
|
|
|
|
|
|
void __init omap_pmic_late_init(void)
|
|
|
{
|
|
|
- /* Init the OMAP TWL parameters (if PMIC has been registered) */
|
|
|
- if (pmic_i2c_board_info.irq)
|
|
|
- omap3_twl_init();
|
|
|
- if (omap4_i2c1_board_info[0].irq)
|
|
|
- omap4_twl_init();
|
|
|
+ /* Init the OMAP TWL parameters (if PMIC has been registerd) */
|
|
|
+ if (!pmic_i2c_board_info.irq)
|
|
|
+ return;
|
|
|
+
|
|
|
+ omap3_twl_init();
|
|
|
+ omap4_twl_init();
|
|
|
}
|
|
|
|
|
|
#if defined(CONFIG_ARCH_OMAP3)
|