|
@@ -1298,3 +1298,87 @@ static struct vpif_display_config da850_vpif_display_config = {
|
|
|
.output_count = ARRAY_SIZE(da850_ch0_outputs),
|
|
|
},
|
|
|
.card_name = "DA850/OMAP-L138 Video Display",
|
|
|
+};
|
|
|
+
|
|
|
+static __init void da850_vpif_init(void)
|
|
|
+{
|
|
|
+ int ret;
|
|
|
+
|
|
|
+ ret = da850_register_vpif();
|
|
|
+ if (ret)
|
|
|
+ pr_warn("da850_evm_init: VPIF setup failed: %d\n", ret);
|
|
|
+
|
|
|
+ ret = davinci_cfg_reg_list(da850_vpif_capture_pins);
|
|
|
+ if (ret)
|
|
|
+ pr_warn("da850_evm_init: VPIF capture mux setup failed: %d\n",
|
|
|
+ ret);
|
|
|
+
|
|
|
+ ret = da850_register_vpif_capture(&da850_vpif_capture_config);
|
|
|
+ if (ret)
|
|
|
+ pr_warn("da850_evm_init: VPIF capture setup failed: %d\n", ret);
|
|
|
+
|
|
|
+ ret = davinci_cfg_reg_list(da850_vpif_display_pins);
|
|
|
+ if (ret)
|
|
|
+ pr_warn("da850_evm_init: VPIF display mux setup failed: %d\n",
|
|
|
+ ret);
|
|
|
+
|
|
|
+ ret = da850_register_vpif_display(&da850_vpif_display_config);
|
|
|
+ if (ret)
|
|
|
+ pr_warn("da850_evm_init: VPIF display setup failed: %d\n", ret);
|
|
|
+}
|
|
|
+
|
|
|
+#else
|
|
|
+static __init void da850_vpif_init(void) {}
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifdef CONFIG_DA850_WL12XX
|
|
|
+
|
|
|
+static void wl12xx_set_power(int index, bool power_on)
|
|
|
+{
|
|
|
+ static bool power_state;
|
|
|
+
|
|
|
+ pr_debug("Powering %s wl12xx", power_on ? "on" : "off");
|
|
|
+
|
|
|
+ if (power_on == power_state)
|
|
|
+ return;
|
|
|
+ power_state = power_on;
|
|
|
+
|
|
|
+ if (power_on) {
|
|
|
+ /* Power up sequence required for wl127x devices */
|
|
|
+ gpio_set_value(DA850_WLAN_EN, 1);
|
|
|
+ usleep_range(15000, 15000);
|
|
|
+ gpio_set_value(DA850_WLAN_EN, 0);
|
|
|
+ usleep_range(1000, 1000);
|
|
|
+ gpio_set_value(DA850_WLAN_EN, 1);
|
|
|
+ msleep(70);
|
|
|
+ } else {
|
|
|
+ gpio_set_value(DA850_WLAN_EN, 0);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+static struct davinci_mmc_config da850_wl12xx_mmc_config = {
|
|
|
+ .set_power = wl12xx_set_power,
|
|
|
+ .wires = 4,
|
|
|
+ .max_freq = 25000000,
|
|
|
+ .caps = MMC_CAP_4_BIT_DATA | MMC_CAP_NONREMOVABLE |
|
|
|
+ MMC_CAP_POWER_OFF_CARD,
|
|
|
+ .version = MMC_CTLR_VERSION_2,
|
|
|
+};
|
|
|
+
|
|
|
+static const short da850_wl12xx_pins[] __initconst = {
|
|
|
+ DA850_MMCSD1_DAT_0, DA850_MMCSD1_DAT_1, DA850_MMCSD1_DAT_2,
|
|
|
+ DA850_MMCSD1_DAT_3, DA850_MMCSD1_CLK, DA850_MMCSD1_CMD,
|
|
|
+ DA850_GPIO6_9, DA850_GPIO6_10,
|
|
|
+ -1
|
|
|
+};
|
|
|
+
|
|
|
+static struct wl12xx_platform_data da850_wl12xx_wlan_data __initdata = {
|
|
|
+ .irq = -1,
|
|
|
+ .board_ref_clock = WL12XX_REFCLOCK_38,
|
|
|
+ .platform_quirks = WL12XX_PLATFORM_QUIRK_EDGE_IRQ,
|
|
|
+};
|
|
|
+
|
|
|
+static __init int da850_wl12xx_init(void)
|
|
|
+{
|
|
|
+ int ret;
|
|
|
+
|