diff --git a/board/qca/arm/ipq806x/ipq806x.c b/board/qca/arm/ipq806x/ipq806x.c index 8f1c6408e0..ef8178a8de 100644 --- a/board/qca/arm/ipq806x/ipq806x.c +++ b/board/qca/arm/ipq806x/ipq806x.c @@ -419,8 +419,9 @@ void board_pcie_clock_init(int id) void board_pci_init(int id) { - int node, gpio_node; + int node, gpio_node, offset; char name[16]; + u32 gpio; sprintf(name, "pci%d", id); node = fdt_path_offset(gd->fdt_blob, name); @@ -429,8 +430,16 @@ void board_pci_init(int id) return; } gpio_node = fdt_subnode_offset(gd->fdt_blob, node, "pci_gpio"); - if (gpio_node >= 0) + if (gpio_node >= 0) { qca_gpio_init(gpio_node); + offset = fdt_first_subnode(gd->fdt_blob, gpio_node); + if (offset) { + gpio = fdtdec_get_uint(gd->fdt_blob, + offset, "gpio", 0); + gpio_set_value(gpio, 1); + udelay(3000); + } + } return; }