|
|
|
@ -132,10 +132,10 @@ void setup_ventana_i2c(void) |
|
|
|
|
|
|
|
|
|
/* common to add baseboards */ |
|
|
|
|
static iomux_v3_cfg_t const gw_gpio_pads[] = { |
|
|
|
|
/* MSATA_EN */ |
|
|
|
|
IOMUX_PADS(PAD_SD4_DAT0__GPIO2_IO08 | DIO_PAD_CFG), |
|
|
|
|
/* RS232_EN# */ |
|
|
|
|
IOMUX_PADS(PAD_SD4_DAT3__GPIO2_IO11 | DIO_PAD_CFG), |
|
|
|
|
/* SD3_VSELECT */ |
|
|
|
|
IOMUX_PADS(PAD_NANDF_CS1__GPIO6_IO14 | DIO_PAD_CFG), |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/* prototype */ |
|
|
|
@ -183,6 +183,8 @@ static iomux_v3_cfg_t const gw51xx_gpio_pads[] = { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static iomux_v3_cfg_t const gw52xx_gpio_pads[] = { |
|
|
|
|
/* MSATA_EN */ |
|
|
|
|
IOMUX_PADS(PAD_SD4_DAT0__GPIO2_IO08 | DIO_PAD_CFG), |
|
|
|
|
/* PANLEDG# */ |
|
|
|
|
IOMUX_PADS(PAD_KEY_COL0__GPIO4_IO06 | DIO_PAD_CFG), |
|
|
|
|
/* PANLEDR# */ |
|
|
|
@ -212,6 +214,8 @@ static iomux_v3_cfg_t const gw52xx_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 */ |
|
|
|
|
IOMUX_PADS(PAD_GPIO_2__GPIO1_IO02 | DIO_PAD_CFG), |
|
|
|
|
/* USB_HUBRST# */ |
|
|
|
@ -241,6 +245,8 @@ static iomux_v3_cfg_t const gw53xx_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 */ |
|
|
|
|
IOMUX_PADS(PAD_GPIO_2__GPIO1_IO02 | DIO_PAD_CFG), |
|
|
|
|
/* PANLEDG# */ |
|
|
|
@ -283,6 +289,8 @@ static iomux_v3_cfg_t const gw551x_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 */ |
|
|
|
|
IOMUX_PADS(PAD_GPIO_7__GPIO1_IO07 | DIO_PAD_CFG), |
|
|
|
|
/* USB_HUBRST# */ |
|
|
|
@ -310,6 +318,20 @@ static iomux_v3_cfg_t const gw552x_gpio_pads[] = { |
|
|
|
|
IOMUX_PADS(PAD_GPIO_17__GPIO7_IO12 | DIO_PAD_CFG), |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
static iomux_v3_cfg_t const gw553x_gpio_pads[] = { |
|
|
|
|
/* PANLEDG# */ |
|
|
|
|
IOMUX_PADS(PAD_KEY_COL2__GPIO4_IO10 | DIO_PAD_CFG), |
|
|
|
|
/* PANLEDR# */ |
|
|
|
|
IOMUX_PADS(PAD_KEY_ROW2__GPIO4_IO11 | DIO_PAD_CFG), |
|
|
|
|
|
|
|
|
|
/* VID_PWR */ |
|
|
|
|
IOMUX_PADS(PAD_CSI0_DATA_EN__GPIO5_IO20 | DIO_PAD_CFG), |
|
|
|
|
/* PCI_RST# */ |
|
|
|
|
IOMUX_PADS(PAD_GPIO_0__GPIO1_IO00 | DIO_PAD_CFG), |
|
|
|
|
/* PCIESKT_WDIS# */ |
|
|
|
|
IOMUX_PADS(PAD_GPIO_17__GPIO7_IO12 | DIO_PAD_CFG), |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Board Specific GPIO |
|
|
|
@ -445,6 +467,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = { |
|
|
|
|
.vidin_en = IMX_GPIO_NR(3, 31), |
|
|
|
|
.usb_sel = IMX_GPIO_NR(1, 2), |
|
|
|
|
.wdis = IMX_GPIO_NR(7, 12), |
|
|
|
|
.msata_en = GP_MSATA_SEL, |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
/* GW53xx */ |
|
|
|
@ -489,6 +512,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = { |
|
|
|
|
.gps_shdn = IMX_GPIO_NR(1, 27), |
|
|
|
|
.vidin_en = IMX_GPIO_NR(3, 31), |
|
|
|
|
.wdis = IMX_GPIO_NR(7, 12), |
|
|
|
|
.msata_en = GP_MSATA_SEL, |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
/* GW54xx */ |
|
|
|
@ -535,6 +559,7 @@ struct ventana gpio_cfg[GW_UNKNOWN] = { |
|
|
|
|
.dioi2c_en = IMX_GPIO_NR(4, 5), |
|
|
|
|
.pcie_sson = IMX_GPIO_NR(1, 20), |
|
|
|
|
.wdis = IMX_GPIO_NR(5, 17), |
|
|
|
|
.msata_en = GP_MSATA_SEL, |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
/* GW551x */ |
|
|
|
@ -602,6 +627,47 @@ struct ventana gpio_cfg[GW_UNKNOWN] = { |
|
|
|
|
.pcie_rst = IMX_GPIO_NR(1, 29), |
|
|
|
|
.usb_sel = IMX_GPIO_NR(1, 7), |
|
|
|
|
.wdis = IMX_GPIO_NR(7, 12), |
|
|
|
|
.msata_en = GP_MSATA_SEL, |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
/* GW553x */ |
|
|
|
|
{ |
|
|
|
|
.gpio_pads = gw553x_gpio_pads, |
|
|
|
|
.num_pads = ARRAY_SIZE(gw553x_gpio_pads)/2, |
|
|
|
|
.dio_cfg = { |
|
|
|
|
{ |
|
|
|
|
{ IOMUX_PADS(PAD_SD1_DAT0__GPIO1_IO16) }, |
|
|
|
|
IMX_GPIO_NR(1, 16), |
|
|
|
|
{ 0, 0 }, |
|
|
|
|
0 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
{ IOMUX_PADS(PAD_SD1_DAT2__GPIO1_IO19) }, |
|
|
|
|
IMX_GPIO_NR(1, 19), |
|
|
|
|
{ IOMUX_PADS(PAD_SD1_DAT2__PWM2_OUT) }, |
|
|
|
|
2 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
{ IOMUX_PADS(PAD_SD1_DAT1__GPIO1_IO17) }, |
|
|
|
|
IMX_GPIO_NR(1, 17), |
|
|
|
|
{ IOMUX_PADS(PAD_SD1_DAT1__PWM3_OUT) }, |
|
|
|
|
3 |
|
|
|
|
}, |
|
|
|
|
{ |
|
|
|
|
{ IOMUX_PADS(PAD_SD1_CMD__GPIO1_IO18) }, |
|
|
|
|
IMX_GPIO_NR(1, 18), |
|
|
|
|
{ IOMUX_PADS(PAD_SD1_CMD__PWM4_OUT) }, |
|
|
|
|
4 |
|
|
|
|
}, |
|
|
|
|
}, |
|
|
|
|
.num_gpios = 4, |
|
|
|
|
.leds = { |
|
|
|
|
IMX_GPIO_NR(4, 10), |
|
|
|
|
IMX_GPIO_NR(4, 11), |
|
|
|
|
}, |
|
|
|
|
.pcie_rst = IMX_GPIO_NR(1, 0), |
|
|
|
|
.vidin_en = IMX_GPIO_NR(5, 20), |
|
|
|
|
.wdis = IMX_GPIO_NR(7, 12), |
|
|
|
|
}, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
@ -616,10 +682,6 @@ void setup_iomux_gpio(int board, struct ventana_board_info *info) |
|
|
|
|
gpio_request(GP_USB_OTG_PWR, "usbotg_pwr"); |
|
|
|
|
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# */ |
|
|
|
|
gpio_request(GP_RS232_EN, "rs232_en"); |
|
|
|
|
gpio_direction_output(GP_RS232_EN, 0); |
|
|
|
@ -649,6 +711,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 */ |
|
|
|
|
if (gpio_cfg[board].mezz_pwren) { |
|
|
|
|
gpio_request(gpio_cfg[board].mezz_pwren, "mezz_pwr"); |
|
|
|
@ -700,6 +768,11 @@ void setup_iomux_gpio(int board, struct ventana_board_info *info) |
|
|
|
|
gpio_request(gpio_cfg[board].wdis, "wlan_dis"); |
|
|
|
|
gpio_direction_output(gpio_cfg[board].wdis, 1); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* sense vselect pin to see if we support uhs-i */ |
|
|
|
|
gpio_request(GP_SD3_VSELECT, "sd3_vselect"); |
|
|
|
|
gpio_direction_input(GP_SD3_VSELECT); |
|
|
|
|
gpio_cfg[board].usd_vsel = !gpio_get_value(GP_SD3_VSELECT); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* setup GPIO pinmux and default configuration per baseboard and env */ |
|
|
|
@ -718,10 +791,9 @@ void setup_board_gpio(int board, struct ventana_board_info *info) |
|
|
|
|
gpio_direction_output(GP_RS232_EN, (hwconfig("rs232")) ? 0 : 1); |
|
|
|
|
|
|
|
|
|
/* MSATA Enable */ |
|
|
|
|
if (is_cpu_type(MXC_CPU_MX6Q) && |
|
|
|
|
test_bit(EECONFIG_SATA, info->config)) { |
|
|
|
|
if (gpio_cfg[board].msata_en && is_cpu_type(MXC_CPU_MX6Q)) { |
|
|
|
|
gpio_direction_output(GP_MSATA_SEL, |
|
|
|
|
(hwconfig("msata")) ? 1 : 0); |
|
|
|
|
(hwconfig("msata")) ? 1 : 0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/* USBOTG Select (PCISKT or FrontPanel) */ |
|
|
|
@ -760,8 +832,13 @@ void setup_board_gpio(int board, struct ventana_board_info *info) |
|
|
|
|
ctrl); |
|
|
|
|
gpio_requestf(cfg->gpio_param, "dio%d", i); |
|
|
|
|
gpio_direction_input(cfg->gpio_param); |
|
|
|
|
} else if (hwconfig_subarg_cmp("dio2", "mode", "pwm") && |
|
|
|
|
} else if (hwconfig_subarg_cmp(arg, "mode", "pwm") && |
|
|
|
|
cfg->pwm_padmux) { |
|
|
|
|
if (!cfg->pwm_param) { |
|
|
|
|
printf("DIO%d: Error: pwm config invalid\n", |
|
|
|
|
i); |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
if (!quiet) |
|
|
|
|
printf("DIO%d: pwm%d\n", i, cfg->pwm_param); |
|
|
|
|
imx_iomux_v3_setup_pad(cfg->pwm_padmux[cputype] | |
|
|
|
@ -770,8 +847,7 @@ void setup_board_gpio(int board, struct ventana_board_info *info) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!quiet) { |
|
|
|
|
if (is_cpu_type(MXC_CPU_MX6Q) && |
|
|
|
|
(test_bit(EECONFIG_SATA, info->config))) { |
|
|
|
|
if (gpio_cfg[board].msata_en && is_cpu_type(MXC_CPU_MX6Q)) { |
|
|
|
|
printf("MSATA: %s\n", (hwconfig("msata") ? |
|
|
|
|
"enabled" : "disabled")); |
|
|
|
|
} |
|
|
|
|