|
@@ -301,3 +301,140 @@ static struct regulator_consumer_supply ldp_vaux1_supplies[] = {
|
|
|
static struct regulator_init_data ldp_vaux1 = {
|
|
|
.constraints = {
|
|
|
.min_uV = 3000000,
|
|
|
+ .max_uV = 3000000,
|
|
|
+ .apply_uV = true,
|
|
|
+ .valid_modes_mask = REGULATOR_MODE_NORMAL
|
|
|
+ | REGULATOR_MODE_STANDBY,
|
|
|
+ .valid_ops_mask = REGULATOR_CHANGE_MODE
|
|
|
+ | REGULATOR_CHANGE_STATUS,
|
|
|
+ },
|
|
|
+ .num_consumer_supplies = ARRAY_SIZE(ldp_vaux1_supplies),
|
|
|
+ .consumer_supplies = ldp_vaux1_supplies,
|
|
|
+};
|
|
|
+
|
|
|
+static struct regulator_consumer_supply ldp_vpll2_supplies[] = {
|
|
|
+ REGULATOR_SUPPLY("vdds_dsi", "omapdss"),
|
|
|
+ REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),
|
|
|
+};
|
|
|
+
|
|
|
+static struct regulator_init_data ldp_vpll2 = {
|
|
|
+ .constraints = {
|
|
|
+ .name = "VDVI",
|
|
|
+ .min_uV = 1800000,
|
|
|
+ .max_uV = 1800000,
|
|
|
+ .apply_uV = true,
|
|
|
+ .valid_modes_mask = REGULATOR_MODE_NORMAL
|
|
|
+ | REGULATOR_MODE_STANDBY,
|
|
|
+ .valid_ops_mask = REGULATOR_CHANGE_MODE
|
|
|
+ | REGULATOR_CHANGE_STATUS,
|
|
|
+ },
|
|
|
+ .num_consumer_supplies = ARRAY_SIZE(ldp_vpll2_supplies),
|
|
|
+ .consumer_supplies = ldp_vpll2_supplies,
|
|
|
+};
|
|
|
+
|
|
|
+static struct twl4030_platform_data ldp_twldata = {
|
|
|
+ /* platform_data for children goes here */
|
|
|
+ .vmmc1 = &ldp_vmmc1,
|
|
|
+ .vaux1 = &ldp_vaux1,
|
|
|
+ .vpll2 = &ldp_vpll2,
|
|
|
+ .gpio = &ldp_gpio_data,
|
|
|
+ .keypad = &ldp_kp_twl4030_data,
|
|
|
+};
|
|
|
+
|
|
|
+static int __init omap_i2c_init(void)
|
|
|
+{
|
|
|
+ omap3_pmic_get_config(&ldp_twldata,
|
|
|
+ TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_MADC, 0);
|
|
|
+ omap3_pmic_init("twl4030", &ldp_twldata);
|
|
|
+ omap_register_i2c_bus(2, 400, NULL, 0);
|
|
|
+ omap_register_i2c_bus(3, 400, NULL, 0);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+static struct omap2_hsmmc_info mmc[] __initdata = {
|
|
|
+ {
|
|
|
+ .mmc = 1,
|
|
|
+ .caps = MMC_CAP_4_BIT_DATA,
|
|
|
+ .gpio_cd = -EINVAL,
|
|
|
+ .gpio_wp = -EINVAL,
|
|
|
+ },
|
|
|
+ {} /* Terminator */
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device *ldp_devices[] __initdata = {
|
|
|
+ &ldp_gpio_keys_device,
|
|
|
+};
|
|
|
+
|
|
|
+#ifdef CONFIG_OMAP_MUX
|
|
|
+static struct omap_board_mux board_mux[] __initdata = {
|
|
|
+ { .reg_offset = OMAP_MUX_TERMINATOR },
|
|
|
+};
|
|
|
+#endif
|
|
|
+
|
|
|
+static struct mtd_partition ldp_nand_partitions[] = {
|
|
|
+ /* All the partition sizes are listed in terms of NAND block size */
|
|
|
+ {
|
|
|
+ .name = "X-Loader-NAND",
|
|
|
+ .offset = 0,
|
|
|
+ .size = 4 * (64 * 2048), /* 512KB, 0x80000 */
|
|
|
+ .mask_flags = MTD_WRITEABLE, /* force read-only */
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "U-Boot-NAND",
|
|
|
+ .offset = MTDPART_OFS_APPEND, /* Offset = 0x80000 */
|
|
|
+ .size = 10 * (64 * 2048), /* 1.25MB, 0x140000 */
|
|
|
+ .mask_flags = MTD_WRITEABLE, /* force read-only */
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "Boot Env-NAND",
|
|
|
+ .offset = MTDPART_OFS_APPEND, /* Offset = 0x1c0000 */
|
|
|
+ .size = 2 * (64 * 2048), /* 256KB, 0x40000 */
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "Kernel-NAND",
|
|
|
+ .offset = MTDPART_OFS_APPEND, /* Offset = 0x0200000*/
|
|
|
+ .size = 240 * (64 * 2048), /* 30M, 0x1E00000 */
|
|
|
+ },
|
|
|
+ {
|
|
|
+ .name = "File System - NAND",
|
|
|
+ .offset = MTDPART_OFS_APPEND, /* Offset = 0x2000000 */
|
|
|
+ .size = MTDPART_SIZ_FULL, /* 96MB, 0x6000000 */
|
|
|
+ },
|
|
|
+
|
|
|
+};
|
|
|
+
|
|
|
+static struct regulator_consumer_supply dummy_supplies[] = {
|
|
|
+ REGULATOR_SUPPLY("vddvario", "smsc911x.0"),
|
|
|
+ REGULATOR_SUPPLY("vdd33a", "smsc911x.0"),
|
|
|
+};
|
|
|
+
|
|
|
+static void __init omap_ldp_init(void)
|
|
|
+{
|
|
|
+ regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies));
|
|
|
+ omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
|
|
|
+ ldp_init_smsc911x();
|
|
|
+ omap_i2c_init();
|
|
|
+ platform_add_devices(ldp_devices, ARRAY_SIZE(ldp_devices));
|
|
|
+ omap_ads7846_init(1, 54, 310, NULL);
|
|
|
+ omap_serial_init();
|
|
|
+ omap_sdrc_init(NULL, NULL);
|
|
|
+ usb_musb_init(NULL);
|
|
|
+ board_nand_init(ldp_nand_partitions, ARRAY_SIZE(ldp_nand_partitions),
|
|
|
+ ZOOM_NAND_CS, 0, nand_default_timings);
|
|
|
+
|
|
|
+ omap_hsmmc_init(mmc);
|
|
|
+ ldp_display_init();
|
|
|
+}
|
|
|
+
|
|
|
+MACHINE_START(OMAP_LDP, "OMAP LDP board")
|
|
|
+ .atag_offset = 0x100,
|
|
|
+ .reserve = omap_reserve,
|
|
|
+ .map_io = omap3_map_io,
|
|
|
+ .init_early = omap3430_init_early,
|
|
|
+ .init_irq = omap3_init_irq,
|
|
|
+ .handle_irq = omap3_intc_handle_irq,
|
|
|
+ .init_machine = omap_ldp_init,
|
|
|
+ .init_late = omap3430_init_late,
|
|
|
+ .timer = &omap3_timer,
|
|
|
+ .restart = omap3xxx_restart,
|
|
|
+MACHINE_END
|