imx: ventana: make OTG VBUS power enable board specific

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
Reviewed-by: Stefano Babic <sbabic@denx.de>
This commit is contained in:
Tim Harvey 2017-03-13 08:51:07 -07:00 committed by Stefano Babic
parent db1964cad7
commit f938500f2c
3 changed files with 18 additions and 8 deletions

View File

@ -586,6 +586,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = {
.rs485en = IMX_GPIO_NR(3, 24), .rs485en = IMX_GPIO_NR(3, 24),
.dioi2c_en = IMX_GPIO_NR(4, 5), .dioi2c_en = IMX_GPIO_NR(4, 5),
.pcie_sson = IMX_GPIO_NR(1, 20), .pcie_sson = IMX_GPIO_NR(1, 20),
.otgpwr_en = IMX_GPIO_NR(3, 22),
}, },
/* GW51xx */ /* GW51xx */
@ -604,6 +605,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = {
.gps_shdn = IMX_GPIO_NR(1, 2), .gps_shdn = IMX_GPIO_NR(1, 2),
.vidin_en = IMX_GPIO_NR(5, 20), .vidin_en = IMX_GPIO_NR(5, 20),
.wdis = IMX_GPIO_NR(7, 12), .wdis = IMX_GPIO_NR(7, 12),
.otgpwr_en = IMX_GPIO_NR(3, 22),
}, },
/* GW52xx */ /* GW52xx */
@ -626,6 +628,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = {
.wdis = IMX_GPIO_NR(7, 12), .wdis = IMX_GPIO_NR(7, 12),
.msata_en = GP_MSATA_SEL, .msata_en = GP_MSATA_SEL,
.rs232_en = GP_RS232_EN, .rs232_en = GP_RS232_EN,
.otgpwr_en = IMX_GPIO_NR(3, 22),
}, },
/* GW53xx */ /* GW53xx */
@ -647,6 +650,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = {
.wdis = IMX_GPIO_NR(7, 12), .wdis = IMX_GPIO_NR(7, 12),
.msata_en = GP_MSATA_SEL, .msata_en = GP_MSATA_SEL,
.rs232_en = GP_RS232_EN, .rs232_en = GP_RS232_EN,
.otgpwr_en = IMX_GPIO_NR(3, 22),
}, },
/* GW54xx */ /* GW54xx */
@ -670,6 +674,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = {
.wdis = IMX_GPIO_NR(5, 17), .wdis = IMX_GPIO_NR(5, 17),
.msata_en = GP_MSATA_SEL, .msata_en = GP_MSATA_SEL,
.rs232_en = GP_RS232_EN, .rs232_en = GP_RS232_EN,
.otgpwr_en = IMX_GPIO_NR(3, 22),
}, },
/* GW551x */ /* GW551x */
@ -715,6 +720,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = {
.pcie_rst = IMX_GPIO_NR(1, 0), .pcie_rst = IMX_GPIO_NR(1, 0),
.vidin_en = IMX_GPIO_NR(5, 20), .vidin_en = IMX_GPIO_NR(5, 20),
.wdis = IMX_GPIO_NR(7, 12), .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 */ /* iomux common to all Ventana boards */
SETUP_IOMUX_PADS(gw_gpio_pads); 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) if (board >= GW_UNKNOWN)
return; return;
@ -818,6 +820,12 @@ void setup_iomux_gpio(int board, struct ventana_board_info *info)
gpio_direction_output(gpio_cfg[board].wdis, 1); 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 */ /* sense vselect pin to see if we support uhs-i */
gpio_request(GP_SD3_VSELECT, "sd3_vselect"); gpio_request(GP_SD3_VSELECT, "sd3_vselect");
gpio_direction_input(GP_SD3_VSELECT); gpio_direction_input(GP_SD3_VSELECT);

View File

@ -13,7 +13,6 @@
/* GPIO's common to all baseboards */ /* GPIO's common to all baseboards */
#define GP_PHY_RST IMX_GPIO_NR(1, 30) #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_SD3_CD IMX_GPIO_NR(7, 0)
#define GP_RS232_EN IMX_GPIO_NR(2, 11) #define GP_RS232_EN IMX_GPIO_NR(2, 11)
#define GP_MSATA_SEL IMX_GPIO_NR(2, 8) #define GP_MSATA_SEL IMX_GPIO_NR(2, 8)
@ -79,6 +78,7 @@ struct ventana {
int wdis; int wdis;
int msata_en; int msata_en;
int rs232_en; int rs232_en;
int otgpwr_en;
/* various features */ /* various features */
bool usd_vsel; bool usd_vsel;
}; };

View File

@ -175,9 +175,11 @@ int board_ehci_hcd_init(int port)
int board_ehci_power(int port, int on) int board_ehci_power(int port, int on)
{ {
if (port) /* enable OTG VBUS */
return 0; if (!port && board_type < GW_UNKNOWN) {
gpio_set_value(GP_USB_OTG_PWR, on); if (gpio_cfg[board_type].otgpwr_en)
gpio_set_value(gpio_cfg[board_type].otgpwr_en, on);
}
return 0; return 0;
} }
#endif /* CONFIG_USB_EHCI_MX6 */ #endif /* CONFIG_USB_EHCI_MX6 */