mirror of
https://github.com/u-boot/u-boot.git
synced 2024-12-11 21:53:29 +08:00
imx: ventana: remove dependence on EECONFIG_SATA eeprom feature bit
The MSATA feature is a board-specific feature on Gateworks Ventana boards. In most cases a 2:1 mux will steer either PCIe or SATA to a miniPCIe socket through an MSATA_EN gpio. In these such cases assign the gpio in the board specific struct and use its presence to determine if we default the GPIO to PCIe and if we later steer it according to hwconfig. Signed-off-by: Tim Harvey <tharvey@gateworks.com>
This commit is contained in:
parent
f17a9af846
commit
5c55572ff7
@ -132,8 +132,6 @@ void setup_ventana_i2c(void)
|
|||||||
|
|
||||||
/* common to add baseboards */
|
/* common to add baseboards */
|
||||||
static iomux_v3_cfg_t const gw_gpio_pads[] = {
|
static iomux_v3_cfg_t const gw_gpio_pads[] = {
|
||||||
/* MSATA_EN */
|
|
||||||
IOMUX_PADS(PAD_SD4_DAT0__GPIO2_IO08 | DIO_PAD_CFG),
|
|
||||||
/* RS232_EN# */
|
/* RS232_EN# */
|
||||||
IOMUX_PADS(PAD_SD4_DAT3__GPIO2_IO11 | DIO_PAD_CFG),
|
IOMUX_PADS(PAD_SD4_DAT3__GPIO2_IO11 | DIO_PAD_CFG),
|
||||||
};
|
};
|
||||||
@ -183,6 +181,8 @@ static iomux_v3_cfg_t const gw51xx_gpio_pads[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static iomux_v3_cfg_t const gw52xx_gpio_pads[] = {
|
static iomux_v3_cfg_t const gw52xx_gpio_pads[] = {
|
||||||
|
/* MSATA_EN */
|
||||||
|
IOMUX_PADS(PAD_SD4_DAT0__GPIO2_IO08 | DIO_PAD_CFG),
|
||||||
/* PANLEDG# */
|
/* PANLEDG# */
|
||||||
IOMUX_PADS(PAD_KEY_COL0__GPIO4_IO06 | DIO_PAD_CFG),
|
IOMUX_PADS(PAD_KEY_COL0__GPIO4_IO06 | DIO_PAD_CFG),
|
||||||
/* PANLEDR# */
|
/* PANLEDR# */
|
||||||
@ -212,6 +212,8 @@ static iomux_v3_cfg_t const gw52xx_gpio_pads[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static iomux_v3_cfg_t const gw53xx_gpio_pads[] = {
|
static iomux_v3_cfg_t const gw53xx_gpio_pads[] = {
|
||||||
|
/* MSATA_EN */
|
||||||
|
IOMUX_PADS(PAD_SD4_DAT0__GPIO2_IO08 | DIO_PAD_CFG),
|
||||||
/* CAN_STBY */
|
/* CAN_STBY */
|
||||||
IOMUX_PADS(PAD_GPIO_2__GPIO1_IO02 | DIO_PAD_CFG),
|
IOMUX_PADS(PAD_GPIO_2__GPIO1_IO02 | DIO_PAD_CFG),
|
||||||
/* USB_HUBRST# */
|
/* USB_HUBRST# */
|
||||||
@ -241,6 +243,8 @@ static iomux_v3_cfg_t const gw53xx_gpio_pads[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static iomux_v3_cfg_t const gw54xx_gpio_pads[] = {
|
static iomux_v3_cfg_t const gw54xx_gpio_pads[] = {
|
||||||
|
/* MSATA_EN */
|
||||||
|
IOMUX_PADS(PAD_SD4_DAT0__GPIO2_IO08 | DIO_PAD_CFG),
|
||||||
/* CAN_STBY */
|
/* CAN_STBY */
|
||||||
IOMUX_PADS(PAD_GPIO_2__GPIO1_IO02 | DIO_PAD_CFG),
|
IOMUX_PADS(PAD_GPIO_2__GPIO1_IO02 | DIO_PAD_CFG),
|
||||||
/* PANLEDG# */
|
/* PANLEDG# */
|
||||||
@ -283,6 +287,8 @@ static iomux_v3_cfg_t const gw551x_gpio_pads[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static iomux_v3_cfg_t const gw552x_gpio_pads[] = {
|
static iomux_v3_cfg_t const gw552x_gpio_pads[] = {
|
||||||
|
/* MSATA_EN */
|
||||||
|
IOMUX_PADS(PAD_SD4_DAT0__GPIO2_IO08 | DIO_PAD_CFG),
|
||||||
/* USBOTG_SEL */
|
/* USBOTG_SEL */
|
||||||
IOMUX_PADS(PAD_GPIO_7__GPIO1_IO07 | DIO_PAD_CFG),
|
IOMUX_PADS(PAD_GPIO_7__GPIO1_IO07 | DIO_PAD_CFG),
|
||||||
/* USB_HUBRST# */
|
/* USB_HUBRST# */
|
||||||
@ -445,6 +451,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = {
|
|||||||
.vidin_en = IMX_GPIO_NR(3, 31),
|
.vidin_en = IMX_GPIO_NR(3, 31),
|
||||||
.usb_sel = IMX_GPIO_NR(1, 2),
|
.usb_sel = IMX_GPIO_NR(1, 2),
|
||||||
.wdis = IMX_GPIO_NR(7, 12),
|
.wdis = IMX_GPIO_NR(7, 12),
|
||||||
|
.msata_en = GP_MSATA_SEL,
|
||||||
},
|
},
|
||||||
|
|
||||||
/* GW53xx */
|
/* GW53xx */
|
||||||
@ -489,6 +496,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = {
|
|||||||
.gps_shdn = IMX_GPIO_NR(1, 27),
|
.gps_shdn = IMX_GPIO_NR(1, 27),
|
||||||
.vidin_en = IMX_GPIO_NR(3, 31),
|
.vidin_en = IMX_GPIO_NR(3, 31),
|
||||||
.wdis = IMX_GPIO_NR(7, 12),
|
.wdis = IMX_GPIO_NR(7, 12),
|
||||||
|
.msata_en = GP_MSATA_SEL,
|
||||||
},
|
},
|
||||||
|
|
||||||
/* GW54xx */
|
/* GW54xx */
|
||||||
@ -535,6 +543,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = {
|
|||||||
.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),
|
||||||
.wdis = IMX_GPIO_NR(5, 17),
|
.wdis = IMX_GPIO_NR(5, 17),
|
||||||
|
.msata_en = GP_MSATA_SEL,
|
||||||
},
|
},
|
||||||
|
|
||||||
/* GW551x */
|
/* GW551x */
|
||||||
@ -602,6 +611,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = {
|
|||||||
.pcie_rst = IMX_GPIO_NR(1, 29),
|
.pcie_rst = IMX_GPIO_NR(1, 29),
|
||||||
.usb_sel = IMX_GPIO_NR(1, 7),
|
.usb_sel = IMX_GPIO_NR(1, 7),
|
||||||
.wdis = IMX_GPIO_NR(7, 12),
|
.wdis = IMX_GPIO_NR(7, 12),
|
||||||
|
.msata_en = GP_MSATA_SEL,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -616,10 +626,6 @@ void setup_iomux_gpio(int board, struct ventana_board_info *info)
|
|||||||
gpio_request(GP_USB_OTG_PWR, "usbotg_pwr");
|
gpio_request(GP_USB_OTG_PWR, "usbotg_pwr");
|
||||||
gpio_direction_output(GP_USB_OTG_PWR, 0);
|
gpio_direction_output(GP_USB_OTG_PWR, 0);
|
||||||
|
|
||||||
/* MSATA Enable - default to PCI */
|
|
||||||
gpio_request(GP_MSATA_SEL, "msata_en");
|
|
||||||
gpio_direction_output(GP_MSATA_SEL, 0);
|
|
||||||
|
|
||||||
/* RS232_EN# */
|
/* RS232_EN# */
|
||||||
gpio_request(GP_RS232_EN, "rs232_en");
|
gpio_request(GP_RS232_EN, "rs232_en");
|
||||||
gpio_direction_output(GP_RS232_EN, 0);
|
gpio_direction_output(GP_RS232_EN, 0);
|
||||||
@ -649,6 +655,12 @@ void setup_iomux_gpio(int board, struct ventana_board_info *info)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* MSATA Enable - default to PCI */
|
||||||
|
if (gpio_cfg[board].msata_en) {
|
||||||
|
gpio_request(gpio_cfg[board].msata_en, "msata_en");
|
||||||
|
gpio_direction_output(gpio_cfg[board].msata_en, 0);
|
||||||
|
}
|
||||||
|
|
||||||
/* Expansion Mezzanine IO */
|
/* Expansion Mezzanine IO */
|
||||||
if (gpio_cfg[board].mezz_pwren) {
|
if (gpio_cfg[board].mezz_pwren) {
|
||||||
gpio_request(gpio_cfg[board].mezz_pwren, "mezz_pwr");
|
gpio_request(gpio_cfg[board].mezz_pwren, "mezz_pwr");
|
||||||
@ -718,10 +730,9 @@ void setup_board_gpio(int board, struct ventana_board_info *info)
|
|||||||
gpio_direction_output(GP_RS232_EN, (hwconfig("rs232")) ? 0 : 1);
|
gpio_direction_output(GP_RS232_EN, (hwconfig("rs232")) ? 0 : 1);
|
||||||
|
|
||||||
/* MSATA Enable */
|
/* MSATA Enable */
|
||||||
if (is_cpu_type(MXC_CPU_MX6Q) &&
|
if (gpio_cfg[board].msata_en && is_cpu_type(MXC_CPU_MX6Q)) {
|
||||||
test_bit(EECONFIG_SATA, info->config)) {
|
|
||||||
gpio_direction_output(GP_MSATA_SEL,
|
gpio_direction_output(GP_MSATA_SEL,
|
||||||
(hwconfig("msata")) ? 1 : 0);
|
(hwconfig("msata")) ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* USBOTG Select (PCISKT or FrontPanel) */
|
/* USBOTG Select (PCISKT or FrontPanel) */
|
||||||
@ -775,8 +786,7 @@ void setup_board_gpio(int board, struct ventana_board_info *info)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!quiet) {
|
if (!quiet) {
|
||||||
if (is_cpu_type(MXC_CPU_MX6Q) &&
|
if (gpio_cfg[board].msata_en && is_cpu_type(MXC_CPU_MX6Q)) {
|
||||||
(test_bit(EECONFIG_SATA, info->config))) {
|
|
||||||
printf("MSATA: %s\n", (hwconfig("msata") ?
|
printf("MSATA: %s\n", (hwconfig("msata") ?
|
||||||
"enabled" : "disabled"));
|
"enabled" : "disabled"));
|
||||||
}
|
}
|
||||||
|
@ -76,6 +76,7 @@ struct ventana {
|
|||||||
int pcie_sson;
|
int pcie_sson;
|
||||||
int usb_sel;
|
int usb_sel;
|
||||||
int wdis;
|
int wdis;
|
||||||
|
int msata_en;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct ventana gpio_cfg[GW_UNKNOWN];
|
extern struct ventana gpio_cfg[GW_UNKNOWN];
|
||||||
|
Loading…
Reference in New Issue
Block a user