From 4730d3fa3170f564ee766448889da8b766cf4882 Mon Sep 17 00:00:00 2001 From: Praveenkumar I Date: Thu, 12 Aug 2021 00:23:55 +0530 Subject: [PATCH] ipq9574: Fix PCIE PCS COM offset Change-Id: Ifd0416940231b8923324aa0de1567a8cee5016f3 Signed-off-by: Praveenkumar I --- board/qca/arm/ipq9574/ipq9574.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/board/qca/arm/ipq9574/ipq9574.c b/board/qca/arm/ipq9574/ipq9574.c index 723d92a97e..c96abe0ee8 100644 --- a/board/qca/arm/ipq9574/ipq9574.c +++ b/board/qca/arm/ipq9574/ipq9574.c @@ -450,7 +450,7 @@ void board_pci_init(int id) void board_pci_deinit() { - int node, gpio_node, i, err, pci_no; + int node, gpio_node, i, err, pci_no, is_x2; char name[16]; struct fdt_resource parf; struct fdt_resource pci_phy; @@ -471,12 +471,19 @@ void board_pci_deinit() if (err < 0) continue; - writel(0x1, pci_phy.start + 800); - writel(0x0, pci_phy.start + 804); + pci_no = fdtdec_get_int(gd->fdt_blob, node, "id", 0); + if ((pci_no == 0) || (pci_no == 1)) + is_x2 = 0; + else + is_x2 = 1; + + writel(0x1, pci_phy.start + (0x800 + (0x800 * is_x2))); + writel(0x0, pci_phy.start + (0x804 + (0x800 * is_x2))); + gpio_node = fdt_subnode_offset(gd->fdt_blob, node, "pci_gpio"); if (gpio_node >= 0) qca_gpio_deinit(gpio_node); - pci_no = fdtdec_get_int(gd->fdt_blob, node, "id", 0); + pcie_v2_clock_deinit(pci_no); }