ARM: shmobile: mackerel: Use pinconf API to configure pin pull-down
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Thu, 28 Nov 2013 15:17:58 +0000 (16:17 +0100)
committerSimon Horman <horms+renesas@verge.net.au>
Tue, 10 Dec 2013 08:24:49 +0000 (17:24 +0900)
The USB0 and USB1 VBUS pins must be pulled down. Add corresponding
configuration entries in the pinctrl map table instead of manually
poking the pin control registers.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
arch/arm/mach-shmobile/board-mackerel.c
arch/arm/mach-shmobile/sh-gpio.h

index d90d2f11071b9bb13aab3b2a611a545d16e38578..207acf0e07dac2476ca85f32ec0def8eb04aaad4 100644 (file)
@@ -41,6 +41,7 @@
 #include <linux/mtd/physmap.h>
 #include <linux/mtd/sh_flctl.h>
 #include <linux/pinctrl/machine.h>
+#include <linux/pinctrl/pinconf-generic.h>
 #include <linux/platform_data/gpio_backlight.h>
 #include <linux/pm_clock.h>
 #include <linux/regulator/fixed.h>
@@ -1311,6 +1312,10 @@ static struct i2c_board_info i2c1_devices[] = {
        },
 };
 
+static unsigned long pin_pulldown_conf[] = {
+       PIN_CONF_PACKED(PIN_CONFIG_BIAS_PULL_DOWN, 0),
+};
+
 static const struct pinctrl_map mackerel_pinctrl_map[] = {
        /* ADXL34X */
        PIN_MAP_MUX_GROUP_DEFAULT("1-0053", "pfc-sh7372",
@@ -1396,17 +1401,19 @@ static const struct pinctrl_map mackerel_pinctrl_map[] = {
        /* USBHS0 */
        PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs.0", "pfc-sh7372",
                                  "usb0_vbus", "usb0"),
+       PIN_MAP_CONFIGS_GROUP_DEFAULT("renesas_usbhs.0", "pfc-sh7372",
+                                     "usb0_vbus", pin_pulldown_conf),
        /* USBHS1 */
        PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs.1", "pfc-sh7372",
                                  "usb1_vbus", "usb1"),
+       PIN_MAP_CONFIGS_GROUP_DEFAULT("renesas_usbhs.&", "pfc-sh7372",
+                                     "usb1_vbus", pin_pulldown_conf),
        PIN_MAP_MUX_GROUP_DEFAULT("renesas_usbhs.1", "pfc-sh7372",
                                  "usb1_otg_id_0", "usb1"),
 };
 
 #define GPIO_PORT9CR   IOMEM(0xE6051009)
 #define GPIO_PORT10CR  IOMEM(0xE605100A)
-#define GPIO_PORT167CR IOMEM(0xE60520A7)
-#define GPIO_PORT168CR IOMEM(0xE60520A8)
 #define SRCR4          IOMEM(0xe61580bc)
 #define USCCR1         IOMEM(0xE6058144)
 static void __init mackerel_init(void)
@@ -1446,12 +1453,6 @@ static void __init mackerel_init(void)
 
        gpio_request_one(151, GPIOF_OUT_INIT_HIGH, NULL); /* LCDDON */
 
-       /* USBHS0 */
-       gpio_request_pulldown(GPIO_PORT168CR); /* VBUS0_0 pull down */
-
-       /* USBHS1 */
-       gpio_request_pulldown(GPIO_PORT167CR); /* VBUS0_1 pull down */
-
        /* FSI2 port A (ak4643) */
        gpio_request_one(161, GPIOF_OUT_INIT_LOW, NULL); /* slave */
 
index e834763ac2a521bd02ff6a7704d30576657cd10c..2c4141413db92ebbd0e39f43fef95a53ca6a034f 100644 (file)
@@ -26,23 +26,4 @@ static inline void __init gpio_direction_none(void __iomem * addr)
        __raw_writeb(0x00, addr);
 }
 
-static inline void __init gpio_request_pullup(void __iomem * addr)
-{
-       u8 data = __raw_readb(addr);
-
-       data &= 0x0F;
-       data |= 0xC0;
-       __raw_writeb(data, addr);
-}
-
-static inline void __init gpio_request_pulldown(void __iomem * addr)
-{
-       u8 data = __raw_readb(addr);
-
-       data &= 0x0F;
-       data |= 0xA0;
-
-       __raw_writeb(data, addr);
-}
-
 #endif /* __ASM_ARCH_GPIO_H */