|
@@ -919,3 +919,171 @@ static struct twl4030_resconfig twl4030_rconfig[] __initdata = {
|
|
|
{ .resource = RES_VINTDIG, .devgroup = DEV_GRP_P1 | DEV_GRP_P3,
|
|
|
.type = -1, .type2 = -1, .remap_off = -1, .remap_sleep = -1
|
|
|
},
|
|
|
+ { .resource = RES_VIO, .devgroup = DEV_GRP_P3,
|
|
|
+ .type = 1, .type2 = -1, .remap_off = -1, .remap_sleep = -1
|
|
|
+ },
|
|
|
+ { .resource = RES_CLKEN, .devgroup = DEV_GRP_P1 | DEV_GRP_P3,
|
|
|
+ .type = 1, .type2 = -1 , .remap_off = -1, .remap_sleep = -1
|
|
|
+ },
|
|
|
+ { .resource = RES_REGEN, .devgroup = DEV_GRP_P1 | DEV_GRP_P3,
|
|
|
+ .type = 1, .type2 = -1, .remap_off = -1, .remap_sleep = -1
|
|
|
+ },
|
|
|
+ { .resource = RES_NRES_PWRON, .devgroup = DEV_GRP_P1 | DEV_GRP_P3,
|
|
|
+ .type = 1, .type2 = -1, .remap_off = -1, .remap_sleep = -1
|
|
|
+ },
|
|
|
+ { .resource = RES_SYSEN, .devgroup = DEV_GRP_P1 | DEV_GRP_P3,
|
|
|
+ .type = 1, .type2 = -1, .remap_off = -1, .remap_sleep = -1
|
|
|
+ },
|
|
|
+ { .resource = RES_HFCLKOUT, .devgroup = DEV_GRP_P3,
|
|
|
+ .type = 1, .type2 = -1, .remap_off = -1, .remap_sleep = -1
|
|
|
+ },
|
|
|
+ { .resource = RES_32KCLKOUT, .devgroup = -1,
|
|
|
+ .type = 1, .type2 = -1, .remap_off = -1, .remap_sleep = -1
|
|
|
+ },
|
|
|
+ { .resource = RES_RESET, .devgroup = -1,
|
|
|
+ .type = 1, .type2 = -1, .remap_off = -1, .remap_sleep = -1
|
|
|
+ },
|
|
|
+ { .resource = RES_MAIN_REF, .devgroup = -1,
|
|
|
+ .type = 1, .type2 = -1, .remap_off = -1, .remap_sleep = -1
|
|
|
+ },
|
|
|
+ { 0, 0},
|
|
|
+};
|
|
|
+
|
|
|
+static struct twl4030_power_data rx51_t2scripts_data __initdata = {
|
|
|
+ .scripts = twl4030_scripts,
|
|
|
+ .num = ARRAY_SIZE(twl4030_scripts),
|
|
|
+ .resource_config = twl4030_rconfig,
|
|
|
+};
|
|
|
+
|
|
|
+static struct twl4030_vibra_data rx51_vibra_data __initdata = {
|
|
|
+ .coexist = 0,
|
|
|
+};
|
|
|
+
|
|
|
+static struct twl4030_audio_data rx51_audio_data __initdata = {
|
|
|
+ .audio_mclk = 26000000,
|
|
|
+ .vibra = &rx51_vibra_data,
|
|
|
+};
|
|
|
+
|
|
|
+static struct twl4030_platform_data rx51_twldata __initdata = {
|
|
|
+ /* platform_data for children goes here */
|
|
|
+ .gpio = &rx51_gpio_data,
|
|
|
+ .keypad = &rx51_kp_data,
|
|
|
+ .power = &rx51_t2scripts_data,
|
|
|
+ .audio = &rx51_audio_data,
|
|
|
+
|
|
|
+ .vaux1 = &rx51_vaux1,
|
|
|
+ .vaux2 = &rx51_vaux2,
|
|
|
+ .vaux4 = &rx51_vaux4,
|
|
|
+ .vmmc1 = &rx51_vmmc1,
|
|
|
+ .vpll1 = &rx51_vpll1,
|
|
|
+ .vpll2 = &rx51_vpll2,
|
|
|
+ .vsim = &rx51_vsim,
|
|
|
+ .vintana1 = &rx51_vintana1,
|
|
|
+ .vintana2 = &rx51_vintana2,
|
|
|
+ .vintdig = &rx51_vintdig,
|
|
|
+ .vio = &rx51_vio,
|
|
|
+};
|
|
|
+
|
|
|
+static struct tpa6130a2_platform_data rx51_tpa6130a2_data __initdata_or_module = {
|
|
|
+ .power_gpio = 98,
|
|
|
+};
|
|
|
+
|
|
|
+/* Audio setup data */
|
|
|
+static struct aic3x_setup_data rx51_aic34_setup = {
|
|
|
+ .gpio_func[0] = AIC3X_GPIO1_FUNC_DISABLED,
|
|
|
+ .gpio_func[1] = AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT,
|
|
|
+};
|
|
|
+
|
|
|
+static struct aic3x_pdata rx51_aic3x_data = {
|
|
|
+ .setup = &rx51_aic34_setup,
|
|
|
+ .gpio_reset = 60,
|
|
|
+};
|
|
|
+
|
|
|
+static struct aic3x_pdata rx51_aic3x_data2 = {
|
|
|
+ .gpio_reset = 60,
|
|
|
+};
|
|
|
+
|
|
|
+static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_2[] = {
|
|
|
+ {
|
|
|
+ I2C_BOARD_INFO("tlv320aic3x", 0x18),
|
|
|
+ .platform_data = &rx51_aic3x_data,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ I2C_BOARD_INFO("tlv320aic3x", 0x19),
|
|
|
+ .platform_data = &rx51_aic3x_data2,
|
|
|
+ },
|
|
|
+#if defined(CONFIG_SENSORS_TSL2563) || defined(CONFIG_SENSORS_TSL2563_MODULE)
|
|
|
+ {
|
|
|
+ I2C_BOARD_INFO("tsl2563", 0x29),
|
|
|
+ .platform_data = &rx51_tsl2563_platform_data,
|
|
|
+ },
|
|
|
+#endif
|
|
|
+#if defined(CONFIG_LEDS_LP5523) || defined(CONFIG_LEDS_LP5523_MODULE)
|
|
|
+ {
|
|
|
+ I2C_BOARD_INFO("lp5523", 0x32),
|
|
|
+ .platform_data = &rx51_lp5523_platform_data,
|
|
|
+ },
|
|
|
+#endif
|
|
|
+ {
|
|
|
+ I2C_BOARD_INFO("bq27200", 0x55),
|
|
|
+ },
|
|
|
+ {
|
|
|
+ I2C_BOARD_INFO("tpa6130a2", 0x60),
|
|
|
+ .platform_data = &rx51_tpa6130a2_data,
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_3[] = {
|
|
|
+#if defined(CONFIG_SENSORS_LIS3_I2C) || defined(CONFIG_SENSORS_LIS3_I2C_MODULE)
|
|
|
+ {
|
|
|
+ I2C_BOARD_INFO("lis3lv02d", 0x1d),
|
|
|
+ .platform_data = &rx51_lis3lv02d_data,
|
|
|
+ },
|
|
|
+#endif
|
|
|
+};
|
|
|
+
|
|
|
+static int __init rx51_i2c_init(void)
|
|
|
+{
|
|
|
+ if ((system_rev >= SYSTEM_REV_S_USES_VAUX3 && system_rev < 0x100) ||
|
|
|
+ system_rev >= SYSTEM_REV_B_USES_VAUX3) {
|
|
|
+ rx51_twldata.vaux3 = &rx51_vaux3_mmc;
|
|
|
+ /* Only older boards use VMMC2 for internal MMC */
|
|
|
+ rx51_vmmc2.num_consumer_supplies--;
|
|
|
+ } else {
|
|
|
+ rx51_twldata.vaux3 = &rx51_vaux3_cam;
|
|
|
+ }
|
|
|
+ rx51_twldata.vmmc2 = &rx51_vmmc2;
|
|
|
+ omap3_pmic_get_config(&rx51_twldata,
|
|
|
+ TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_MADC,
|
|
|
+ TWL_COMMON_REGULATOR_VDAC);
|
|
|
+
|
|
|
+ rx51_twldata.vdac->constraints.apply_uV = true;
|
|
|
+ rx51_twldata.vdac->constraints.name = "VDAC";
|
|
|
+
|
|
|
+ omap_pmic_init(1, 2200, "twl5030", 7 + OMAP_INTC_START, &rx51_twldata);
|
|
|
+ omap_register_i2c_bus(2, 100, rx51_peripherals_i2c_board_info_2,
|
|
|
+ ARRAY_SIZE(rx51_peripherals_i2c_board_info_2));
|
|
|
+#if defined(CONFIG_SENSORS_LIS3_I2C) || defined(CONFIG_SENSORS_LIS3_I2C_MODULE)
|
|
|
+ rx51_lis3lv02d_data.irq2 = gpio_to_irq(LIS302_IRQ2_GPIO);
|
|
|
+ rx51_peripherals_i2c_board_info_3[0].irq = gpio_to_irq(LIS302_IRQ1_GPIO);
|
|
|
+#endif
|
|
|
+ omap_register_i2c_bus(3, 400, rx51_peripherals_i2c_board_info_3,
|
|
|
+ ARRAY_SIZE(rx51_peripherals_i2c_board_info_3));
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+#if defined(CONFIG_MTD_ONENAND_OMAP2) || \
|
|
|
+ defined(CONFIG_MTD_ONENAND_OMAP2_MODULE)
|
|
|
+
|
|
|
+static struct mtd_partition onenand_partitions[] = {
|
|
|
+ {
|
|
|
+ .name = "bootloader",
|
|
|
+ .offset = 0,
|
|
|
+ .size = 0x20000,
|
|
|
+ .mask_flags = MTD_WRITEABLE, /* Force read-only */
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "config",
|
|
|
+ .offset = MTDPART_OFS_APPEND,
|
|
|
+ .size = 0x60000,
|
|
|
+ },
|