Message ID | 1489420274-2691-8-git-send-email-tharvey@gateworks.com |
---|---|
State | Accepted |
Commit | f938500f2c810b7535aa6d7ff6d70ff32608572e |
Delegated to: | Stefano Babic |
Headers | show |
On 13/03/2017 16:51, Tim Harvey wrote: > Signed-off-by: Tim Harvey <tharvey@gateworks.com> > --- > board/gateworks/gw_ventana/common.c | 16 ++++++++++++---- > board/gateworks/gw_ventana/common.h | 2 +- > board/gateworks/gw_ventana/gw_ventana.c | 8 +++++--- > 3 files changed, 18 insertions(+), 8 deletions(-) > > diff --git a/board/gateworks/gw_ventana/common.c b/board/gateworks/gw_ventana/common.c > index 49d6e52..a33c112 100644 > --- a/board/gateworks/gw_ventana/common.c > +++ b/board/gateworks/gw_ventana/common.c > @@ -586,6 +586,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = { > .rs485en = IMX_GPIO_NR(3, 24), > .dioi2c_en = IMX_GPIO_NR(4, 5), > .pcie_sson = IMX_GPIO_NR(1, 20), > + .otgpwr_en = IMX_GPIO_NR(3, 22), > }, > > /* GW51xx */ > @@ -604,6 +605,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = { > .gps_shdn = IMX_GPIO_NR(1, 2), > .vidin_en = IMX_GPIO_NR(5, 20), > .wdis = IMX_GPIO_NR(7, 12), > + .otgpwr_en = IMX_GPIO_NR(3, 22), > }, > > /* GW52xx */ > @@ -626,6 +628,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = { > .wdis = IMX_GPIO_NR(7, 12), > .msata_en = GP_MSATA_SEL, > .rs232_en = GP_RS232_EN, > + .otgpwr_en = IMX_GPIO_NR(3, 22), > }, > > /* GW53xx */ > @@ -647,6 +650,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = { > .wdis = IMX_GPIO_NR(7, 12), > .msata_en = GP_MSATA_SEL, > .rs232_en = GP_RS232_EN, > + .otgpwr_en = IMX_GPIO_NR(3, 22), > }, > > /* GW54xx */ > @@ -670,6 +674,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = { > .wdis = IMX_GPIO_NR(5, 17), > .msata_en = GP_MSATA_SEL, > .rs232_en = GP_RS232_EN, > + .otgpwr_en = IMX_GPIO_NR(3, 22), > }, > > /* GW551x */ > @@ -715,6 +720,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = { > .pcie_rst = IMX_GPIO_NR(1, 0), > .vidin_en = IMX_GPIO_NR(5, 20), > .wdis = IMX_GPIO_NR(7, 12), > + .otgpwr_en = IMX_GPIO_NR(3, 22), > }, > }; > > @@ -725,10 +731,6 @@ void setup_iomux_gpio(int board, struct ventana_board_info *info) > /* iomux common to all Ventana boards */ > SETUP_IOMUX_PADS(gw_gpio_pads); > > - /* OTG power off */ > - gpio_request(GP_USB_OTG_PWR, "usbotg_pwr"); > - gpio_direction_output(GP_USB_OTG_PWR, 0); > - > if (board >= GW_UNKNOWN) > return; > > @@ -818,6 +820,12 @@ void setup_iomux_gpio(int board, struct ventana_board_info *info) > gpio_direction_output(gpio_cfg[board].wdis, 1); > } > > + /* OTG power off */ > + if (gpio_cfg[board].otgpwr_en) { > + gpio_request(gpio_cfg[board].otgpwr_en, "usbotg_pwr"); > + gpio_direction_output(gpio_cfg[board].otgpwr_en, 0); > + } > + > /* sense vselect pin to see if we support uhs-i */ > gpio_request(GP_SD3_VSELECT, "sd3_vselect"); > gpio_direction_input(GP_SD3_VSELECT); > diff --git a/board/gateworks/gw_ventana/common.h b/board/gateworks/gw_ventana/common.h > index 3d7aff1..6939233 100644 > --- a/board/gateworks/gw_ventana/common.h > +++ b/board/gateworks/gw_ventana/common.h > @@ -13,7 +13,6 @@ > > /* GPIO's common to all baseboards */ > #define GP_PHY_RST IMX_GPIO_NR(1, 30) > -#define GP_USB_OTG_PWR IMX_GPIO_NR(3, 22) > #define GP_SD3_CD IMX_GPIO_NR(7, 0) > #define GP_RS232_EN IMX_GPIO_NR(2, 11) > #define GP_MSATA_SEL IMX_GPIO_NR(2, 8) > @@ -79,6 +78,7 @@ struct ventana { > int wdis; > int msata_en; > int rs232_en; > + int otgpwr_en; > /* various features */ > bool usd_vsel; > }; > diff --git a/board/gateworks/gw_ventana/gw_ventana.c b/board/gateworks/gw_ventana/gw_ventana.c > index 22a3c8e..3f9d2f7 100644 > --- a/board/gateworks/gw_ventana/gw_ventana.c > +++ b/board/gateworks/gw_ventana/gw_ventana.c > @@ -175,9 +175,11 @@ int board_ehci_hcd_init(int port) > > int board_ehci_power(int port, int on) > { > - if (port) > - return 0; > - gpio_set_value(GP_USB_OTG_PWR, on); > + /* enable OTG VBUS */ > + if (!port && board_type < GW_UNKNOWN) { > + if (gpio_cfg[board_type].otgpwr_en) > + gpio_set_value(gpio_cfg[board_type].otgpwr_en, on); > + } > return 0; > } > #endif /* CONFIG_USB_EHCI_MX6 */ > Reviewed-by: Stefano Babic <sbabic@denx.de> Best regards, Stefano Babic
diff --git a/board/gateworks/gw_ventana/common.c b/board/gateworks/gw_ventana/common.c index 49d6e52..a33c112 100644 --- a/board/gateworks/gw_ventana/common.c +++ b/board/gateworks/gw_ventana/common.c @@ -586,6 +586,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = { .rs485en = IMX_GPIO_NR(3, 24), .dioi2c_en = IMX_GPIO_NR(4, 5), .pcie_sson = IMX_GPIO_NR(1, 20), + .otgpwr_en = IMX_GPIO_NR(3, 22), }, /* GW51xx */ @@ -604,6 +605,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = { .gps_shdn = IMX_GPIO_NR(1, 2), .vidin_en = IMX_GPIO_NR(5, 20), .wdis = IMX_GPIO_NR(7, 12), + .otgpwr_en = IMX_GPIO_NR(3, 22), }, /* GW52xx */ @@ -626,6 +628,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = { .wdis = IMX_GPIO_NR(7, 12), .msata_en = GP_MSATA_SEL, .rs232_en = GP_RS232_EN, + .otgpwr_en = IMX_GPIO_NR(3, 22), }, /* GW53xx */ @@ -647,6 +650,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = { .wdis = IMX_GPIO_NR(7, 12), .msata_en = GP_MSATA_SEL, .rs232_en = GP_RS232_EN, + .otgpwr_en = IMX_GPIO_NR(3, 22), }, /* GW54xx */ @@ -670,6 +674,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = { .wdis = IMX_GPIO_NR(5, 17), .msata_en = GP_MSATA_SEL, .rs232_en = GP_RS232_EN, + .otgpwr_en = IMX_GPIO_NR(3, 22), }, /* GW551x */ @@ -715,6 +720,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = { .pcie_rst = IMX_GPIO_NR(1, 0), .vidin_en = IMX_GPIO_NR(5, 20), .wdis = IMX_GPIO_NR(7, 12), + .otgpwr_en = IMX_GPIO_NR(3, 22), }, }; @@ -725,10 +731,6 @@ void setup_iomux_gpio(int board, struct ventana_board_info *info) /* iomux common to all Ventana boards */ SETUP_IOMUX_PADS(gw_gpio_pads); - /* OTG power off */ - gpio_request(GP_USB_OTG_PWR, "usbotg_pwr"); - gpio_direction_output(GP_USB_OTG_PWR, 0); - if (board >= GW_UNKNOWN) return; @@ -818,6 +820,12 @@ void setup_iomux_gpio(int board, struct ventana_board_info *info) gpio_direction_output(gpio_cfg[board].wdis, 1); } + /* OTG power off */ + if (gpio_cfg[board].otgpwr_en) { + gpio_request(gpio_cfg[board].otgpwr_en, "usbotg_pwr"); + gpio_direction_output(gpio_cfg[board].otgpwr_en, 0); + } + /* sense vselect pin to see if we support uhs-i */ gpio_request(GP_SD3_VSELECT, "sd3_vselect"); gpio_direction_input(GP_SD3_VSELECT); diff --git a/board/gateworks/gw_ventana/common.h b/board/gateworks/gw_ventana/common.h index 3d7aff1..6939233 100644 --- a/board/gateworks/gw_ventana/common.h +++ b/board/gateworks/gw_ventana/common.h @@ -13,7 +13,6 @@ /* GPIO's common to all baseboards */ #define GP_PHY_RST IMX_GPIO_NR(1, 30) -#define GP_USB_OTG_PWR IMX_GPIO_NR(3, 22) #define GP_SD3_CD IMX_GPIO_NR(7, 0) #define GP_RS232_EN IMX_GPIO_NR(2, 11) #define GP_MSATA_SEL IMX_GPIO_NR(2, 8) @@ -79,6 +78,7 @@ struct ventana { int wdis; int msata_en; int rs232_en; + int otgpwr_en; /* various features */ bool usd_vsel; }; diff --git a/board/gateworks/gw_ventana/gw_ventana.c b/board/gateworks/gw_ventana/gw_ventana.c index 22a3c8e..3f9d2f7 100644 --- a/board/gateworks/gw_ventana/gw_ventana.c +++ b/board/gateworks/gw_ventana/gw_ventana.c @@ -175,9 +175,11 @@ int board_ehci_hcd_init(int port) int board_ehci_power(int port, int on) { - if (port) - return 0; - gpio_set_value(GP_USB_OTG_PWR, on); + /* enable OTG VBUS */ + if (!port && board_type < GW_UNKNOWN) { + if (gpio_cfg[board_type].otgpwr_en) + gpio_set_value(gpio_cfg[board_type].otgpwr_en, on); + } return 0; } #endif /* CONFIG_USB_EHCI_MX6 */
Signed-off-by: Tim Harvey <tharvey@gateworks.com> --- board/gateworks/gw_ventana/common.c | 16 ++++++++++++---- board/gateworks/gw_ventana/common.h | 2 +- board/gateworks/gw_ventana/gw_ventana.c | 8 +++++--- 3 files changed, 18 insertions(+), 8 deletions(-)