Loading arch/arm/mach-pxa/cm-x300.c +38 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ #include <linux/kernel.h> #include <linux/interrupt.h> #include <linux/init.h> #include <linux/delay.h> #include <linux/platform_device.h> #include <linux/gpio.h> Loading Loading @@ -513,6 +514,42 @@ static void __init cm_x300_init_rtc(void) static inline void cm_x300_init_rtc(void) {} #endif static void __init cm_x300_init_wi2wi(void) { int bt_reset, wlan_en; int err; if (system_rev < 130) { wlan_en = 77; bt_reset = 78; } else { wlan_en = 71; bt_reset = 70; } /* Libertas and CSR reset */ err = gpio_request(wlan_en, "wlan en"); if (err) { pr_err("CM-X300: failed to request wlan en gpio: %d\n", err); } else { gpio_direction_output(wlan_en, 1); gpio_free(wlan_en); } err = gpio_request(bt_reset, "bt reset"); if (err) { pr_err("CM-X300: failed to request bt reset gpio: %d\n", err); } else { gpio_direction_output(bt_reset, 1); udelay(10); gpio_set_value(bt_reset, 0); udelay(10); gpio_set_value(bt_reset, 1); gpio_free(bt_reset); } } /* MFP */ static void __init cm_x300_init_mfp(void) { /* board-processor specific GPIO initialization */ Loading Loading @@ -542,6 +579,7 @@ static void __init cm_x300_init(void) cm_x300_init_spi(); cm_x300_init_rtc(); cm_x300_init_ac97(); cm_x300_init_wi2wi(); } static void __init cm_x300_fixup(struct machine_desc *mdesc, struct tag *tags, Loading Loading
arch/arm/mach-pxa/cm-x300.c +38 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ #include <linux/kernel.h> #include <linux/interrupt.h> #include <linux/init.h> #include <linux/delay.h> #include <linux/platform_device.h> #include <linux/gpio.h> Loading Loading @@ -513,6 +514,42 @@ static void __init cm_x300_init_rtc(void) static inline void cm_x300_init_rtc(void) {} #endif static void __init cm_x300_init_wi2wi(void) { int bt_reset, wlan_en; int err; if (system_rev < 130) { wlan_en = 77; bt_reset = 78; } else { wlan_en = 71; bt_reset = 70; } /* Libertas and CSR reset */ err = gpio_request(wlan_en, "wlan en"); if (err) { pr_err("CM-X300: failed to request wlan en gpio: %d\n", err); } else { gpio_direction_output(wlan_en, 1); gpio_free(wlan_en); } err = gpio_request(bt_reset, "bt reset"); if (err) { pr_err("CM-X300: failed to request bt reset gpio: %d\n", err); } else { gpio_direction_output(bt_reset, 1); udelay(10); gpio_set_value(bt_reset, 0); udelay(10); gpio_set_value(bt_reset, 1); gpio_free(bt_reset); } } /* MFP */ static void __init cm_x300_init_mfp(void) { /* board-processor specific GPIO initialization */ Loading Loading @@ -542,6 +579,7 @@ static void __init cm_x300_init(void) cm_x300_init_spi(); cm_x300_init_rtc(); cm_x300_init_ac97(); cm_x300_init_wi2wi(); } static void __init cm_x300_fixup(struct machine_desc *mdesc, struct tag *tags, Loading