Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 41f63475 authored by Fabio Estevam's avatar Fabio Estevam Committed by Sascha Hauer
Browse files

mx31_3ds: Handle USB OTG GPIO Errors

parent f747847e
Loading
Loading
Loading
Loading
+20 −3
Original line number Diff line number Diff line
@@ -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);
@@ -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 = {