Skip to content

Commit

Permalink
ARM: shmobile: mackerel: Use pinconf API to configure pin pull-down
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Laurent Pinchart authored and Simon Horman committed Dec 10, 2013
1 parent 24cf82f commit 3a8067f
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 27 deletions.
17 changes: 9 additions & 8 deletions arch/arm/mach-shmobile/board-mackerel.c
Original file line number Diff line number Diff line change
Expand Up @@ -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>
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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 */

Expand Down
19 changes: 0 additions & 19 deletions arch/arm/mach-shmobile/sh-gpio.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 */

0 comments on commit 3a8067f

Please sign in to comment.