]> git.ipfire.org Git - ipfire-2.x.git/blob - src/patches/kernel/omap/beagle/expansion/0010-Beagle-expansion-add-LSR-COM6L-Adapter-Board.patch
asterisk addon: update to 11.13.1
[ipfire-2.x.git] / src / patches / kernel / omap / beagle / expansion / 0010-Beagle-expansion-add-LSR-COM6L-Adapter-Board.patch
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
5
6 Signed-off-by: Robert Nelson <robertcnelson@gmail.com>
7 ---
8 arch/arm/mach-omap2/board-omap3beagle.c | 60 ++++++++++++++++++++++++++++---
9 1 file changed, 55 insertions(+), 5 deletions(-)
10
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];
18 char camera_name[16];
19 +char wl12xx_name[16];
20
21 enum {
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 */
25 };
26
27 +struct wl12xx_platform_data omap_beagle_wlan_data_26mhz __initdata = {
28 + .board_ref_clock = WL12XX_REFCLOCK_26, /* 26 MHz */
29 +};
30 +
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)
35 return 0;
36 }
37
38 +static int __init wl12xx_setup(char *str)
39 +{
40 + if (!machine_is_omap3_beagle())
41 + return 0;
42 +
43 + if (!str)
44 + return -EINVAL;
45 + strncpy(wl12xx_name, str, 16);
46 + pr_info("Beagle wl12xx clk: %s\n", wl12xx_name);
47 + return 0;
48 +}
49 +
50 static int __init beagle_opp_init(void)
51 {
52 int r = 0;
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);
55 }
56
57 - if (!strcmp(expansionboard_name, "bbtoys-wifi"))
58 + if ((!strcmp(expansionboard_name, "bbtoys-wifi")) || (!strcmp(expansionboard_name, "lsr-com6l-adpt")))
59 {
60 #if IS_ENABLED(CONFIG_WL12XX)
61 + pr_info("Beagle expansion: wl12xx: setting up gpio pinmux\n");
62 +
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);
66 +
67 + omap_mux_init_gpio(OMAP_BEAGLE_WLAN_IRQ_GPIO, OMAP_PIN_INPUT_PULLUP);
68 +
69 + /* WLAN SDIO: MMC2 CLK */
70 + omap_mux_init_signal("sdmmc2_clk.sdmmc2_clk", OMAP_PIN_INPUT_PULLUP);
71 +
72 + /* WLAN SDIO: MMC2 CMD */
73 + omap_mux_init_signal("sdmmc2_cmd.sdmmc2_cmd", OMAP_PIN_INPUT_PULLUP);
74 +
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);
80 +
81 expansion_config.mmc_settings = EXPANSION_MMC_WIFI;
82 #endif
83 }
84 @@ -1208,12 +1245,24 @@ static void __init omap3_beagle_init(void)
85 gpio_export(162, 1);
86 }
87
88 - if (!strcmp(expansionboard_name, "bbtoys-wifi"))
89 + if ((!strcmp(expansionboard_name, "bbtoys-wifi")) || (!strcmp(expansionboard_name, "lsr-com6l-adpt")))
90 {
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");
96 +
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");
102 + } else {
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");
108 + }
109 +
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);
118
119 late_initcall(omap3_beagle_late_initcall);
120
121 --
122 1.7.10.4
123