imx: ventana: add DT fixup for GW522x to change PCIE_RST# GPIO

The GW522x is functionally the same as a GW52xx except for PCIE_RST#
GPIO. Add a DT fixup to change this gpio upon bootup.

Signed-off-by: Pushpal Sidhu <psidhu@gateworks.com>
Signed-off-by: Tim Harvey <tharvey@gateworks.com>
master
Pushpal Sidhu 9 years ago committed by Stefano Babic
parent ee5931d488
commit e9fc6d137b
  1. 28
      board/gateworks/gw_ventana/gw_ventana.c

@ -669,6 +669,8 @@ static iomux_v3_cfg_t const gw52xx_gpio_pads[] = {
IOMUX_PADS(PAD_EIM_D31__GPIO3_IO31 | DIO_PAD_CFG),
/* PCI_RST# */
IOMUX_PADS(PAD_ENET_TXD1__GPIO1_IO29 | DIO_PAD_CFG),
/* PCI_RST# (GW522x) */
IOMUX_PADS(PAD_EIM_D23__GPIO3_IO23 | DIO_PAD_CFG),
/* PCIESKT_WDIS# */
IOMUX_PADS(PAD_GPIO_17__GPIO7_IO12 | DIO_PAD_CFG),
};
@ -1168,6 +1170,10 @@ static void setup_board_gpio(int board)
}
#if !defined(CONFIG_CMD_PCI)
/* GW522x Uses GPIO3_IO23 for PCIE_RST# */
if (board_type == GW52xx && info->model[4] == '2')
gpio_cfg[board].pcie_rst = IMX_GPIO_NR(3, 23);
/* assert PCI_RST# (released by OS when clock is valid) */
gpio_direction_output(gpio_cfg[board].pcie_rst, 0);
#endif
@ -1656,6 +1662,28 @@ int ft_board_setup(void *blob, bd_t *bd)
fdt_status_disabled(blob, i);
}
/* GW522x Uses GPIO3_IO23 instead of GPIO1_IO29 */
else if (board_type == GW52xx && info->model[4] == '2') {
u32 handle = 0;
u32 *range = NULL;
i = fdt_node_offset_by_compatible(blob, -1, "fsl,imx6q-pcie");
if (i)
range = (u32 *)fdt_getprop(blob, i, "reset-gpio",
NULL);
if (range) {
i = fdt_path_offset(blob,
"/soc/aips-bus@02000000/gpio@020a4000");
if (i)
handle = fdt_get_phandle(blob, i);
if (handle) {
range[0] = cpu_to_fdt32(handle);
range[1] = cpu_to_fdt32(23);
}
}
}
/*
* isolate CSI0_DATA_EN for GW551x below revB to work around
* errata causing non functional digital video in (it is not hooked up)

Loading…
Cancel
Save