From de6ff2e382aa4642226e3732c23dbcc07735da68 Mon Sep 17 00:00:00 2001 From: Praveenkumar I Date: Mon, 9 Jan 2023 18:56:48 +0530 Subject: [PATCH] ipq9574: Drive PCIe GPIOs to Low in deinit Change-Id: I0a2d02f7cd712d3d52082903fd352708c58c6e88 Signed-off-by: Praveenkumar I --- board/qca/arm/ipq9574/ipq9574.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/board/qca/arm/ipq9574/ipq9574.c b/board/qca/arm/ipq9574/ipq9574.c index 0a021005cf..67d11241e4 100644 --- a/board/qca/arm/ipq9574/ipq9574.c +++ b/board/qca/arm/ipq9574/ipq9574.c @@ -439,6 +439,18 @@ void board_pci_init(int id) return; } +static void pci_gpio_low(int offset) +{ + struct qca_gpio_config gpio_config; + + for (offset = fdt_first_subnode(gd->fdt_blob, offset); offset > 0; + offset = fdt_next_subnode(gd->fdt_blob, offset)) { + gpio_config.gpio = fdtdec_get_uint(gd->fdt_blob, + offset, "gpio", 0); + gpio_set_value(gpio_config.gpio, GPIO_OUT_LOW); + } +} + void board_pci_deinit() { int node, gpio_node, i, err, is_x2; @@ -474,7 +486,7 @@ void board_pci_deinit() gpio_node = fdt_subnode_offset(gd->fdt_blob, node, "pci_gpio"); if (gpio_node >= 0) - qca_gpio_deinit(gpio_node); + pci_gpio_low(gpio_node); pcie_v2_clock_deinit(i); }