|
@@ -250,3 +250,55 @@ static struct twl6040_codec_data twl6040_codec = {
|
|
|
.hs_left_step = 0x0f,
|
|
|
.hs_right_step = 0x0f,
|
|
|
.hf_left_step = 0x1d,
|
|
|
+ .hf_right_step = 0x1d,
|
|
|
+};
|
|
|
+
|
|
|
+static struct twl6040_platform_data twl6040_data = {
|
|
|
+ .codec = &twl6040_codec,
|
|
|
+ .audpwron_gpio = 127,
|
|
|
+};
|
|
|
+
|
|
|
+static struct i2c_board_info __initdata panda_i2c_1_boardinfo[] = {
|
|
|
+ {
|
|
|
+ I2C_BOARD_INFO("twl6040", 0x4b),
|
|
|
+ .irq = 119 + OMAP44XX_IRQ_GIC_START,
|
|
|
+ .platform_data = &twl6040_data,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+/* Panda board uses the common PMIC configuration */
|
|
|
+static struct twl4030_platform_data omap4_panda_twldata;
|
|
|
+
|
|
|
+/*
|
|
|
+ * Display monitor features are burnt in their EEPROM as EDID data. The EEPROM
|
|
|
+ * is connected as I2C slave device, and can be accessed at address 0x50
|
|
|
+ */
|
|
|
+static struct i2c_board_info __initdata panda_i2c_eeprom[] = {
|
|
|
+ {
|
|
|
+ I2C_BOARD_INFO("eeprom", 0x50),
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+static int __init omap4_panda_i2c_init(void)
|
|
|
+{
|
|
|
+ omap4_pmic_get_config(&omap4_panda_twldata, TWL_COMMON_PDATA_USB,
|
|
|
+ TWL_COMMON_REGULATOR_VDAC |
|
|
|
+ TWL_COMMON_REGULATOR_VAUX2 |
|
|
|
+ TWL_COMMON_REGULATOR_VAUX3 |
|
|
|
+ TWL_COMMON_REGULATOR_VMMC |
|
|
|
+ TWL_COMMON_REGULATOR_VPP |
|
|
|
+ TWL_COMMON_REGULATOR_VANA |
|
|
|
+ TWL_COMMON_REGULATOR_VCXIO |
|
|
|
+ TWL_COMMON_REGULATOR_VUSB |
|
|
|
+ TWL_COMMON_REGULATOR_CLK32KG |
|
|
|
+ TWL_COMMON_REGULATOR_V1V8 |
|
|
|
+ TWL_COMMON_REGULATOR_V2V1);
|
|
|
+ omap4_pmic_init("twl6030", &omap4_panda_twldata, panda_i2c_1_boardinfo,
|
|
|
+ ARRAY_SIZE(panda_i2c_1_boardinfo));
|
|
|
+ omap_register_i2c_bus(2, 400, NULL, 0);
|
|
|
+ /*
|
|
|
+ * Bus 3 is attached to the DVI port where devices like the pico DLP
|
|
|
+ * projector don't work reliably with 400kHz
|
|
|
+ */
|
|
|
+ omap_register_i2c_bus(3, 100, panda_i2c_eeprom,
|
|
|
+ ARRAY_SIZE(panda_i2c_eeprom));
|