|
@@ -447,3 +447,114 @@ static struct regulator_init_data omap3evm_vio = {
|
|
|
| REGULATOR_CHANGE_STATUS,
|
|
|
},
|
|
|
.num_consumer_supplies = ARRAY_SIZE(omap3evm_vio_supply),
|
|
|
+ .consumer_supplies = omap3evm_vio_supply,
|
|
|
+};
|
|
|
+
|
|
|
+#ifdef CONFIG_WL12XX_PLATFORM_DATA
|
|
|
+
|
|
|
+#define OMAP3EVM_WLAN_PMENA_GPIO (150)
|
|
|
+#define OMAP3EVM_WLAN_IRQ_GPIO (149)
|
|
|
+
|
|
|
+static struct regulator_consumer_supply omap3evm_vmmc2_supply[] = {
|
|
|
+ REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1"),
|
|
|
+};
|
|
|
+
|
|
|
+/* VMMC2 for driving the WL12xx module */
|
|
|
+static struct regulator_init_data omap3evm_vmmc2 = {
|
|
|
+ .constraints = {
|
|
|
+ .valid_ops_mask = REGULATOR_CHANGE_STATUS,
|
|
|
+ },
|
|
|
+ .num_consumer_supplies = ARRAY_SIZE(omap3evm_vmmc2_supply),
|
|
|
+ .consumer_supplies = omap3evm_vmmc2_supply,
|
|
|
+};
|
|
|
+
|
|
|
+static struct fixed_voltage_config omap3evm_vwlan = {
|
|
|
+ .supply_name = "vwl1271",
|
|
|
+ .microvolts = 1800000, /* 1.80V */
|
|
|
+ .gpio = OMAP3EVM_WLAN_PMENA_GPIO,
|
|
|
+ .startup_delay = 70000, /* 70ms */
|
|
|
+ .enable_high = 1,
|
|
|
+ .enabled_at_boot = 0,
|
|
|
+ .init_data = &omap3evm_vmmc2,
|
|
|
+};
|
|
|
+
|
|
|
+static struct platform_device omap3evm_wlan_regulator = {
|
|
|
+ .name = "reg-fixed-voltage",
|
|
|
+ .id = 1,
|
|
|
+ .dev = {
|
|
|
+ .platform_data = &omap3evm_vwlan,
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+struct wl12xx_platform_data omap3evm_wlan_data __initdata = {
|
|
|
+ .board_ref_clock = WL12XX_REFCLOCK_38, /* 38.4 MHz */
|
|
|
+};
|
|
|
+#endif
|
|
|
+
|
|
|
+/* VAUX2 for USB */
|
|
|
+static struct regulator_consumer_supply omap3evm_vaux2_supplies[] = {
|
|
|
+ REGULATOR_SUPPLY("VDD_CSIPHY1", "omap3isp"), /* OMAP ISP */
|
|
|
+ REGULATOR_SUPPLY("VDD_CSIPHY2", "omap3isp"), /* OMAP ISP */
|
|
|
+ REGULATOR_SUPPLY("hsusb1", "ehci-omap.0"),
|
|
|
+ REGULATOR_SUPPLY("vaux2", NULL),
|
|
|
+};
|
|
|
+
|
|
|
+static struct regulator_init_data omap3evm_vaux2 = {
|
|
|
+ .constraints = {
|
|
|
+ .min_uV = 2800000,
|
|
|
+ .max_uV = 2800000,
|
|
|
+ .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(omap3evm_vaux2_supplies),
|
|
|
+ .consumer_supplies = omap3evm_vaux2_supplies,
|
|
|
+};
|
|
|
+
|
|
|
+static struct twl4030_platform_data omap3evm_twldata = {
|
|
|
+ /* platform_data for children goes here */
|
|
|
+ .keypad = &omap3evm_kp_data,
|
|
|
+ .gpio = &omap3evm_gpio_data,
|
|
|
+ .vio = &omap3evm_vio,
|
|
|
+ .vmmc1 = &omap3evm_vmmc1,
|
|
|
+ .vsim = &omap3evm_vsim,
|
|
|
+};
|
|
|
+
|
|
|
+static int __init omap3_evm_i2c_init(void)
|
|
|
+{
|
|
|
+ omap3_pmic_get_config(&omap3evm_twldata,
|
|
|
+ TWL_COMMON_PDATA_USB | TWL_COMMON_PDATA_MADC |
|
|
|
+ TWL_COMMON_PDATA_AUDIO,
|
|
|
+ TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2);
|
|
|
+
|
|
|
+ omap3evm_twldata.vdac->constraints.apply_uV = true;
|
|
|
+ omap3evm_twldata.vpll2->constraints.apply_uV = true;
|
|
|
+
|
|
|
+ omap3_pmic_init("twl4030", &omap3evm_twldata);
|
|
|
+ omap_register_i2c_bus(2, 400, NULL, 0);
|
|
|
+ omap_register_i2c_bus(3, 400, NULL, 0);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+static struct usbhs_omap_board_data usbhs_bdata __initdata = {
|
|
|
+
|
|
|
+ .port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED,
|
|
|
+ .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY,
|
|
|
+ .port_mode[2] = OMAP_USBHS_PORT_MODE_UNUSED,
|
|
|
+
|
|
|
+ .phy_reset = true,
|
|
|
+ /* PHY reset GPIO will be runtime programmed based on EVM version */
|
|
|
+ .reset_gpio_port[0] = -EINVAL,
|
|
|
+ .reset_gpio_port[1] = -EINVAL,
|
|
|
+ .reset_gpio_port[2] = -EINVAL
|
|
|
+};
|
|
|
+
|
|
|
+#ifdef CONFIG_OMAP_MUX
|
|
|
+static struct omap_board_mux omap35x_board_mux[] __initdata = {
|
|
|
+ OMAP3_MUX(SYS_NIRQ, OMAP_MUX_MODE0 | OMAP_PIN_INPUT_PULLUP |
|
|
|
+ OMAP_PIN_OFF_INPUT_PULLUP | OMAP_PIN_OFF_OUTPUT_LOW |
|
|
|
+ OMAP_PIN_OFF_WAKEUPENABLE),
|
|
|
+ OMAP3_MUX(MCSPI1_CS1, OMAP_MUX_MODE4 | OMAP_PIN_INPUT_PULLUP |
|
|
|
+ OMAP_PIN_OFF_INPUT_PULLUP | OMAP_PIN_OFF_OUTPUT_LOW |
|