diff options
Diffstat (limited to 'patches/linux-3.7/0202-Beagle-expansion-add-LSR-COM6L-Adapter-Board.patch')
-rw-r--r-- | patches/linux-3.7/0202-Beagle-expansion-add-LSR-COM6L-Adapter-Board.patch | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/patches/linux-3.7/0202-Beagle-expansion-add-LSR-COM6L-Adapter-Board.patch b/patches/linux-3.7/0202-Beagle-expansion-add-LSR-COM6L-Adapter-Board.patch new file mode 100644 index 0000000..419c4dc --- /dev/null +++ b/patches/linux-3.7/0202-Beagle-expansion-add-LSR-COM6L-Adapter-Board.patch @@ -0,0 +1,119 @@ +From: Robert Nelson <robertcnelson@gmail.com> +Date: Tue, 11 Dec 2012 07:02:40 -0600 +Subject: [PATCH] Beagle: expansion: add LSR COM6L Adapter Board + +Signed-off-by: Robert Nelson <robertcnelson@gmail.com> +--- + arch/arm/mach-omap2/board-omap3beagle.c | 60 ++++++++++++++++++++++++++++--- + 1 file changed, 55 insertions(+), 5 deletions(-) + +diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c +index c64ea55..4fa880a 100644 +--- a/arch/arm/mach-omap2/board-omap3beagle.c ++++ b/arch/arm/mach-omap2/board-omap3beagle.c +@@ -169,6 +169,7 @@ static void __init omap3_beagle_init_rev(void) + char expansionboard_name[16]; + char expansionboard2_name[16]; + char camera_name[16]; ++char wl12xx_name[16]; + + enum { + EXPANSION_MMC_NONE = 0, +@@ -204,6 +205,10 @@ struct wl12xx_platform_data omap_beagle_wlan_data __initdata = { + .board_ref_clock = WL12XX_REFCLOCK_38, /* 38.4 MHz */ + }; + ++struct wl12xx_platform_data omap_beagle_wlan_data_26mhz __initdata = { ++ .board_ref_clock = WL12XX_REFCLOCK_26, /* 26 MHz */ ++}; ++ + static struct ti_st_plat_data wilink_platform_data = { + .nshutdown_gpio = OMAP_BEAGLE_BT_EN_GPIO, + .dev_name = "/dev/ttyO1", +@@ -951,6 +956,18 @@ static int __init camera_setup(char *str) + return 0; + } + ++static int __init wl12xx_setup(char *str) ++{ ++ if (!machine_is_omap3_beagle()) ++ return 0; ++ ++ if (!str) ++ return -EINVAL; ++ strncpy(wl12xx_name, str, 16); ++ pr_info("Beagle wl12xx clk: %s\n", wl12xx_name); ++ return 0; ++} ++ + static int __init beagle_opp_init(void) + { + int r = 0; +@@ -1078,9 +1095,29 @@ static void __init omap3_beagle_init(void) + omap_mux_init_gpio(OMAP3BEAGLE_GPIO_ZIPPY_MMC_CD, OMAP_PIN_INPUT); + } + +- if (!strcmp(expansionboard_name, "bbtoys-wifi")) ++ if ((!strcmp(expansionboard_name, "bbtoys-wifi")) || (!strcmp(expansionboard_name, "lsr-com6l-adpt"))) + { + #if defined(CONFIG_WL12XX) || defined(CONFIG_WL12XX_MODULE) ++ pr_info("Beagle expansion: wl12xx: setting up gpio pinmux\n"); ++ ++ omap_mux_init_gpio(OMAP_BEAGLE_FM_EN_BT_WU, OMAP_PIN_OUTPUT); ++ omap_mux_init_gpio(OMAP_BEAGLE_BT_EN_GPIO, OMAP_PIN_OUTPUT); ++ omap_mux_init_gpio(OMAP_BEAGLE_WLAN_EN_GPIO, OMAP_PIN_OUTPUT); ++ ++ omap_mux_init_gpio(OMAP_BEAGLE_WLAN_IRQ_GPIO, OMAP_PIN_INPUT_PULLUP); ++ ++ /* WLAN SDIO: MMC2 CLK */ ++ omap_mux_init_signal("sdmmc2_clk.sdmmc2_clk", OMAP_PIN_INPUT_PULLUP); ++ ++ /* WLAN SDIO: MMC2 CMD */ ++ omap_mux_init_signal("sdmmc2_cmd.sdmmc2_cmd", OMAP_PIN_INPUT_PULLUP); ++ ++ /* WLAN SDIO: MMC2 DAT[0-3] */ ++ omap_mux_init_signal("sdmmc2_dat0.sdmmc2_dat0", OMAP_PIN_INPUT_PULLUP); ++ omap_mux_init_signal("sdmmc2_dat1.sdmmc2_dat1", OMAP_PIN_INPUT_PULLUP); ++ omap_mux_init_signal("sdmmc2_dat2.sdmmc2_dat2", OMAP_PIN_INPUT_PULLUP); ++ omap_mux_init_signal("sdmmc2_dat3.sdmmc2_dat3", OMAP_PIN_INPUT_PULLUP); ++ + expansion_config.mmc_settings = EXPANSION_MMC_WIFI; + #endif + } +@@ -1172,12 +1209,24 @@ static void __init omap3_beagle_init(void) + gpio_export(162, 1); + } + +- if (!strcmp(expansionboard_name, "bbtoys-wifi")) ++ if ((!strcmp(expansionboard_name, "bbtoys-wifi")) || (!strcmp(expansionboard_name, "lsr-com6l-adpt"))) + { + #if defined(CONFIG_WL12XX) || defined(CONFIG_WL12XX_MODULE) +- omap_beagle_wlan_data.irq = gpio_to_irq(OMAP_BEAGLE_WLAN_IRQ_GPIO); +- if (wl12xx_set_platform_data(&omap_beagle_wlan_data)) +- pr_err("error setting wl12xx data\n"); ++ pr_info("Beagle expansionboard: initializing wl12xx platform\n"); ++ ++ if (!strcmp(wl12xx_name, "wl12xx_26mhz")) { ++ pr_info("wl12xx: 26Mhz reference clock (TiWi5)\n"); ++ omap_beagle_wlan_data_26mhz.irq = gpio_to_irq(OMAP_BEAGLE_WLAN_IRQ_GPIO); ++ if (wl12xx_set_platform_data(&omap_beagle_wlan_data_26mhz)) ++ pr_err("error setting wl12xx data\n"); ++ } else { ++ pr_info("wl12xx: 38.4Mhz reference clock (TiWi2/TiWi-BLE)\n"); ++ pr_info("wl12xx: for (TiWi5) support pass kernel [wl12xx_clk=wl12xx_26mhz]\n"); ++ omap_beagle_wlan_data.irq = gpio_to_irq(OMAP_BEAGLE_WLAN_IRQ_GPIO); ++ if (wl12xx_set_platform_data(&omap_beagle_wlan_data)) ++ pr_err("error setting wl12xx data\n"); ++ } ++ + pr_info("Beagle expansionboard: registering wl12xx bt platform device\n"); + platform_device_register(&wl12xx_device); + platform_device_register(&btwilink_device); +@@ -1261,6 +1310,7 @@ static int __init omap3_beagle_late_initcall(void) + early_param("buddy", expansionboard_setup); + early_param("buddy2", expansionboard2_setup); + early_param("camera", camera_setup); ++early_param("wl12xx_clk", wl12xx_setup); + + late_initcall(omap3_beagle_late_initcall); + |