1 From f2e2294733d926e627dcda6425f58611b185c7fc Mon Sep 17 00:00:00 2001
2 From: Robert Nelson <robertcnelson@gmail.com>
3 Date: Tue, 11 Dec 2012 07:02:40 -0600
4 Subject: [PATCH 10/10] Beagle: expansion: add LSR COM6L Adapter Board
6 Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
8 arch/arm/mach-omap2/board-omap3beagle.c | 60 ++++++++++++++++++++++++++++---
9 1 file changed, 55 insertions(+), 5 deletions(-)
11 diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
12 index 0ac1b49..5a7e7b5 100644
13 --- a/arch/arm/mach-omap2/board-omap3beagle.c
14 +++ b/arch/arm/mach-omap2/board-omap3beagle.c
15 @@ -202,6 +202,7 @@ static void __init omap3_beagle_init_rev(void)
16 char expansionboard_name[16];
17 char expansionboard2_name[16];
19 +char wl12xx_name[16];
22 EXPANSION_MMC_NONE = 0,
23 @@ -237,6 +238,10 @@ struct wl12xx_platform_data omap_beagle_wlan_data __initdata = {
24 .board_ref_clock = WL12XX_REFCLOCK_38, /* 38.4 MHz */
27 +struct wl12xx_platform_data omap_beagle_wlan_data_26mhz __initdata = {
28 + .board_ref_clock = WL12XX_REFCLOCK_26, /* 26 MHz */
31 static struct ti_st_plat_data wilink_platform_data = {
32 .nshutdown_gpio = OMAP_BEAGLE_BT_EN_GPIO,
33 .dev_name = "/dev/ttyO1",
34 @@ -987,6 +992,18 @@ static int __init camera_setup(char *str)
38 +static int __init wl12xx_setup(char *str)
40 + if (!machine_is_omap3_beagle())
45 + strncpy(wl12xx_name, str, 16);
46 + pr_info("Beagle wl12xx clk: %s\n", wl12xx_name);
50 static int __init beagle_opp_init(void)
53 @@ -1114,9 +1131,29 @@ static void __init omap3_beagle_init(void)
54 omap_mux_init_gpio(OMAP3BEAGLE_GPIO_ZIPPY_MMC_CD, OMAP_PIN_INPUT);
57 - if (!strcmp(expansionboard_name, "bbtoys-wifi"))
58 + if ((!strcmp(expansionboard_name, "bbtoys-wifi")) || (!strcmp(expansionboard_name, "lsr-com6l-adpt")))
60 #if IS_ENABLED(CONFIG_WL12XX)
61 + pr_info("Beagle expansion: wl12xx: setting up gpio pinmux\n");
63 + omap_mux_init_gpio(OMAP_BEAGLE_FM_EN_BT_WU, OMAP_PIN_OUTPUT);
64 + omap_mux_init_gpio(OMAP_BEAGLE_BT_EN_GPIO, OMAP_PIN_OUTPUT);
65 + omap_mux_init_gpio(OMAP_BEAGLE_WLAN_EN_GPIO, OMAP_PIN_OUTPUT);
67 + omap_mux_init_gpio(OMAP_BEAGLE_WLAN_IRQ_GPIO, OMAP_PIN_INPUT_PULLUP);
69 + /* WLAN SDIO: MMC2 CLK */
70 + omap_mux_init_signal("sdmmc2_clk.sdmmc2_clk", OMAP_PIN_INPUT_PULLUP);
72 + /* WLAN SDIO: MMC2 CMD */
73 + omap_mux_init_signal("sdmmc2_cmd.sdmmc2_cmd", OMAP_PIN_INPUT_PULLUP);
75 + /* WLAN SDIO: MMC2 DAT[0-3] */
76 + omap_mux_init_signal("sdmmc2_dat0.sdmmc2_dat0", OMAP_PIN_INPUT_PULLUP);
77 + omap_mux_init_signal("sdmmc2_dat1.sdmmc2_dat1", OMAP_PIN_INPUT_PULLUP);
78 + omap_mux_init_signal("sdmmc2_dat2.sdmmc2_dat2", OMAP_PIN_INPUT_PULLUP);
79 + omap_mux_init_signal("sdmmc2_dat3.sdmmc2_dat3", OMAP_PIN_INPUT_PULLUP);
81 expansion_config.mmc_settings = EXPANSION_MMC_WIFI;
84 @@ -1208,12 +1245,24 @@ static void __init omap3_beagle_init(void)
88 - if (!strcmp(expansionboard_name, "bbtoys-wifi"))
89 + if ((!strcmp(expansionboard_name, "bbtoys-wifi")) || (!strcmp(expansionboard_name, "lsr-com6l-adpt")))
91 #if IS_ENABLED(CONFIG_WL12XX)
92 - omap_beagle_wlan_data.irq = gpio_to_irq(OMAP_BEAGLE_WLAN_IRQ_GPIO);
93 - if (wl12xx_set_platform_data(&omap_beagle_wlan_data))
94 - pr_err("error setting wl12xx data\n");
95 + pr_info("Beagle expansionboard: initializing wl12xx platform\n");
97 + if (!strcmp(wl12xx_name, "wl12xx_26mhz")) {
98 + pr_info("wl12xx: 26Mhz reference clock (TiWi5)\n");
99 + omap_beagle_wlan_data_26mhz.irq = gpio_to_irq(OMAP_BEAGLE_WLAN_IRQ_GPIO);
100 + if (wl12xx_set_platform_data(&omap_beagle_wlan_data_26mhz))
101 + pr_err("error setting wl12xx data\n");
103 + pr_info("wl12xx: 38.4Mhz reference clock (TiWi2/TiWi-BLE)\n");
104 + pr_info("wl12xx: for (TiWi5) support pass kernel [wl12xx_clk=wl12xx_26mhz]\n");
105 + omap_beagle_wlan_data.irq = gpio_to_irq(OMAP_BEAGLE_WLAN_IRQ_GPIO);
106 + if (wl12xx_set_platform_data(&omap_beagle_wlan_data))
107 + pr_err("error setting wl12xx data\n");
110 pr_info("Beagle expansionboard: registering wl12xx bt platform device\n");
111 platform_device_register(&wl12xx_device);
112 platform_device_register(&btwilink_device);
113 @@ -1307,6 +1356,7 @@ static int __init omap3_beagle_late_initcall(void)
114 early_param("buddy", expansionboard_setup);
115 early_param("buddy2", expansionboard2_setup);
116 early_param("camera", camera_setup);
117 +early_param("wl12xx_clk", wl12xx_setup);
119 late_initcall(omap3_beagle_late_initcall);