On 2015-06-01 10:51, Bhuvanchandra DV wrote: > From: Sanchayan Maity <maitysancha...@gmail.com> > > Add IOMUX for the pad used as USB pen. This needs to be driven low for > the Iris and Viola boards where it is pulled up high by default. This is > required for the USB host functionality to work on these boards. Use the > board specific weak initialisation function, to drive the pin low which > would be called on "usb start". > > Signed-off-by: Sanchayan Maity <maitysancha...@gmail.com> > --- > arch/arm/include/asm/arch-vf610/iomux-vf610.h | 1 + > board/toradex/colibri_vf/colibri_vf.c | 25 +++++++++++++++++++++++++ > 2 files changed, 26 insertions(+) > > diff --git a/arch/arm/include/asm/arch-vf610/iomux-vf610.h > b/arch/arm/include/asm/arch-vf610/iomux-vf610.h > index b8b22b1..019307b 100644 > --- a/arch/arm/include/asm/arch-vf610/iomux-vf610.h > +++ b/arch/arm/include/asm/arch-vf610/iomux-vf610.h > @@ -131,6 +131,7 @@ enum { > VF610_PAD_PTD1__QSPI0_A_CS0 = IOMUX_PAD(0x0140, 0x0140, 1, > __NA_, > 0, VF610_QSPI_PAD_CTRL), > VF610_PAD_PTD2__QSPI0_A_DATA3 = IOMUX_PAD(0x0144, 0x0144, 1, > __NA_, > 0, VF610_QSPI_PAD_CTRL), > VF610_PAD_PTD3__QSPI0_A_DATA2 = IOMUX_PAD(0x0148, 0x0148, 1, > __NA_, > 0, VF610_QSPI_PAD_CTRL), > + VF610_PAD_PTD4__GPIO_83 = IOMUX_PAD(0x014C, 0x014C, 0, > __NA_, 0, VF610_GPIO_PAD_CTRL), > VF610_PAD_PTD4__QSPI0_A_DATA1 = IOMUX_PAD(0x014c, 0x014c, 1, > __NA_, > 0, VF610_QSPI_PAD_CTRL), > VF610_PAD_PTD5__QSPI0_A_DATA0 = IOMUX_PAD(0x0150, 0x0150, 1, > __NA_, > 0, VF610_QSPI_PAD_CTRL), > VF610_PAD_PTD7__QSPI0_B_QSCK = IOMUX_PAD(0x0158, 0x0158, 1, > __NA_, > 0, VF610_QSPI_PAD_CTRL), > diff --git a/board/toradex/colibri_vf/colibri_vf.c > b/board/toradex/colibri_vf/colibri_vf.c > index 7173022..8618fd0 100644 > --- a/board/toradex/colibri_vf/colibri_vf.c > +++ b/board/toradex/colibri_vf/colibri_vf.c > @@ -20,6 +20,7 @@ > #include <netdev.h> > #include <i2c.h> > #include <g_dnl.h> > +#include <asm/gpio.h> > > DECLARE_GLOBAL_DATA_PTR; > > @@ -32,6 +33,12 @@ DECLARE_GLOBAL_DATA_PTR; > #define ENET_PAD_CTRL (PAD_CTL_PUS_47K_UP | PAD_CTL_SPEED_HIGH | \ > PAD_CTL_DSE_50ohm | PAD_CTL_OBE_IBE_ENABLE) > > +#define USB_PEN_GPIO 83 > + > +static const iomux_v3_cfg_t usb_pads[] = { > + VF610_PAD_PTD4__GPIO_83, > +}; > + > int dram_init(void) > { > static const struct ddr3_jedec_timings timings = { > @@ -464,3 +471,21 @@ int g_dnl_bind_fixup(struct usb_device_descriptor > *dev, const char *name) > > return 0; > } > + > +#ifdef CONFIG_USB_EHCI_VF > +int board_ehci_hcd_init(int port) > +{ > + imx_iomux_v3_setup_multiple_pads(usb_pads, ARRAY_SIZE(usb_pads)); > + > + switch (port) { > + case 0: > + /* USBC does not have PEN, also configured as USB client only */ > + break; > + case 1: > + gpio_request(USB_PEN_GPIO, "usb-pen-gpio"); > + gpio_direction_output(USB_PEN_GPIO, 0); > + break; > + } > + return 0; > +} > +#endif
Acked-by: Stefan Agner <ste...@agner.ch> -- Stefan _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot