Skip to content

Commit

Permalink
mx31_3ds: Handle USB OTG GPIO Errors
Browse files Browse the repository at this point in the history
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
  • Loading branch information
Fabio Estevam authored and Sascha Hauer committed Jul 26, 2010
1 parent f747847 commit 41f6347
Showing 1 changed file with 20 additions and 3 deletions.
23 changes: 20 additions & 3 deletions arch/arm/mach-mx3/mach-mx31_3ds.c
Original file line number Diff line number Diff line change
Expand Up @@ -182,8 +182,10 @@ static struct mxc_nand_platform_data imx31_3ds_nand_flash_pdata = {

#define USBOTG_RST_B IOMUX_TO_GPIO(MX31_PIN_USB_PWR)

static void mx31_3ds_usbotg_init(void)
static int mx31_3ds_usbotg_init(void)
{
int err;

mxc_iomux_set_pad(MX31_PIN_USBOTG_DATA0, USB_PAD_CFG);
mxc_iomux_set_pad(MX31_PIN_USBOTG_DATA1, USB_PAD_CFG);
mxc_iomux_set_pad(MX31_PIN_USBOTG_DATA2, USB_PAD_CFG);
Expand All @@ -197,10 +199,25 @@ static void mx31_3ds_usbotg_init(void)
mxc_iomux_set_pad(MX31_PIN_USBOTG_NXT, USB_PAD_CFG);
mxc_iomux_set_pad(MX31_PIN_USBOTG_STP, USB_PAD_CFG);

gpio_request(USBOTG_RST_B, "otgusb-reset");
gpio_direction_output(USBOTG_RST_B, 0);
err = gpio_request(USBOTG_RST_B, "otgusb-reset");
if (err) {
pr_err("Failed to request the USB OTG reset gpio\n");
return err;
}

err = gpio_direction_output(USBOTG_RST_B, 0);
if (err) {
pr_err("Failed to drive the USB OTG reset gpio\n");
goto usbotg_free_reset;
}

mdelay(1);
gpio_set_value(USBOTG_RST_B, 1);
return 0;

usbotg_free_reset:
gpio_free(USBOTG_RST_B);
return err;
}

static struct fsl_usb2_platform_data usbotg_pdata = {
Expand Down

0 comments on commit 41f6347

Please sign in to comment.