diff options
Diffstat (limited to 'arch/arm/mach-omap2/twl-common.c')
| -rw-r--r-- | arch/arm/mach-omap2/twl-common.c | 43 | 
1 files changed, 12 insertions, 31 deletions
diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c index db5ff664237..45f77413c21 100644 --- a/arch/arm/mach-omap2/twl-common.c +++ b/arch/arm/mach-omap2/twl-common.c @@ -29,6 +29,7 @@  #include <plat/i2c.h>  #include <plat/usb.h> +#include "soc.h"  #include "twl-common.h"  #include "pm.h"  #include "voltage.h" @@ -39,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)  { @@ -78,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 = OMAP44XX_IRQ_SYS_1N; -	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) @@ -251,11 +237,6 @@ void __init omap3_pmic_get_config(struct twl4030_platform_data *pmic_data,  #if defined(CONFIG_ARCH_OMAP4)  static struct twl4030_usb_data omap4_usb_pdata = { -	.phy_init	= omap4430_phy_init, -	.phy_exit	= omap4430_phy_exit, -	.phy_power	= omap4430_phy_power, -	.phy_set_clock	= omap4430_phy_set_clk, -	.phy_suspend	= omap4430_phy_suspend,  };  static struct regulator_init_data omap4_vdac_idata = {  |