Thread (9 messages) flat view 9 messages, 2 authors, 2011-05-19
STALE5595d

[PATCH 2/4] arm: pxa3xx: cm-x300: GPIO cleanup

From: Eric Miao <hidden>
Date: 2011-05-17 13:22:14

On Mon, May 9, 2011 at 7:41 PM, Igor Grinberg [off-list ref] wrote:
use gpio_request_<one|array>() instead of multiple gpiolib calls

Signed-off-by: Igor Grinberg <redacted>
Applied.
quoted hunk ↗ jump to hunk
---
?arch/arm/mach-pxa/cm-x300.c | ? 43 ++++++++++++++++++++-----------------------
?1 files changed, 20 insertions(+), 23 deletions(-)
diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c
index 8a03487..880df33 100644
--- a/arch/arm/mach-pxa/cm-x300.c
+++ b/arch/arm/mach-pxa/cm-x300.c
@@ -484,14 +484,14 @@ static int cm_x300_ulpi_phy_reset(void)
? ? ? ?int err;

? ? ? ?/* reset the PHY */
- ? ? ? err = gpio_request(GPIO_ULPI_PHY_RST, "ulpi reset");
+ ? ? ? err = gpio_request_one(GPIO_ULPI_PHY_RST, GPIOF_OUT_INIT_LOW,
+ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"ulpi reset");
? ? ? ?if (err) {
? ? ? ? ? ? ? ?pr_err("%s: failed to request ULPI reset GPIO: %d\n",
? ? ? ? ? ? ? ? ? ? ? __func__, err);
? ? ? ? ? ? ? ?return err;
? ? ? ?}

- ? ? ? gpio_direction_output(GPIO_ULPI_PHY_RST, 0);
? ? ? ?msleep(10);
? ? ? ?gpio_set_value(GPIO_ULPI_PHY_RST, 1);
? ? ? ?msleep(10);
@@ -768,39 +768,36 @@ static void __init cm_x300_init_da9030(void)
? ? ? ?irq_set_irq_wake(IRQ_WAKEUP0, 1);
?}

+/* wi2wi gpio setting for system_rev >= 130 */
+static struct gpio cm_x300_wi2wi_gpios[] __initdata = {
+ ? ? ? { 71, GPIOF_OUT_INIT_HIGH, "wlan en" },
+ ? ? ? { 70, GPIOF_OUT_INIT_HIGH, "bt reset" },
+};
+
?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;
+ ? ? ? ? ? ? ? cm_x300_wi2wi_gpios[0].gpio = 77; ? ? ? /* wlan en */
+ ? ? ? ? ? ? ? cm_x300_wi2wi_gpios[1].gpio = 78; ? ? ? /* bt reset */
? ? ? ?}

? ? ? ?/* Libertas and CSR reset */
- ? ? ? err = gpio_request(wlan_en, "wlan en");
+ ? ? ? err = gpio_request_array(ARRAY_AND_SIZE(cm_x300_wi2wi_gpios));
? ? ? ?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);
+ ? ? ? ? ? ? ? pr_err("CM-X300: failed to request wifi/bt gpios: %d\n", err);
+ ? ? ? ? ? ? ? return;
? ? ? ?}

- ? ? ? 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);
- ? ? ? }
+ ? ? ? udelay(10);
+ ? ? ? gpio_set_value(bt_reset, 0);
+ ? ? ? udelay(10);
+ ? ? ? gpio_set_value(bt_reset, 1);
+
+ ? ? ? gpio_free(wlan_en);
+ ? ? ? gpio_free(bt_reset);
?}

?/* MFP */
--
1.7.3.4
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help