From 3203599a7d8be39bb01e1dc425bfee14cc74aa00 Mon Sep 17 00:00:00 2001 From: Luka Perkov Date: Wed, 12 Feb 2014 00:46:00 +0000 Subject: imx6: add initial 3.13 support Signed-off-by: Luka Perkov SVN-Revision: 39573 --- ...-PCI-fixup-for-PEX860X-on-Gateworks-board.patch | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 target/linux/imx6/patches-3.13/0004-imx-add-PCI-fixup-for-PEX860X-on-Gateworks-board.patch (limited to 'target/linux/imx6/patches-3.13/0004-imx-add-PCI-fixup-for-PEX860X-on-Gateworks-board.patch') diff --git a/target/linux/imx6/patches-3.13/0004-imx-add-PCI-fixup-for-PEX860X-on-Gateworks-board.patch b/target/linux/imx6/patches-3.13/0004-imx-add-PCI-fixup-for-PEX860X-on-Gateworks-board.patch new file mode 100644 index 0000000000..93f1ee4e28 --- /dev/null +++ b/target/linux/imx6/patches-3.13/0004-imx-add-PCI-fixup-for-PEX860X-on-Gateworks-board.patch @@ -0,0 +1,68 @@ +From 4bb1d09fe48f51efac2f51b9280796e2d00a6c4a Mon Sep 17 00:00:00 2001 +From: Tim Harvey +Date: Tue, 22 Oct 2013 21:51:28 -0700 +Subject: [PATCH] ARM: imx: add PCI fixup for PEX860X on Gateworks board + +The PEX860X has GPIO's which are used for PCI Reset lines on the +Gateworks Ventana boards. The GPIO's need to be set as output +level high so as to allow the PCIe devices to come out of reset. + +Signed-off-by: Tim Harvey +Signed-off-by: Shawn Guo +--- + arch/arm/mach-imx/mach-imx6q.c | 30 ++++++++++++++++++++++++++++++ + 1 file changed, 30 insertions(+) + +--- a/arch/arm/mach-imx/mach-imx6q.c ++++ b/arch/arm/mach-imx/mach-imx6q.c +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -23,6 +24,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -78,6 +80,34 @@ static int ksz9031rn_phy_fixup(struct ph + return 0; + } + ++/* ++ * fixup for PLX PEX8909 bridge to configure GPIO1-7 as output High ++ * as they are used for slots1-7 PERST# ++ */ ++static void ventana_pciesw_early_fixup(struct pci_dev *dev) ++{ ++ u32 dw; ++ ++ if (!of_machine_is_compatible("gw,ventana")) ++ return; ++ ++ if (dev->devfn != 0) ++ return; ++ ++ pci_read_config_dword(dev, 0x62c, &dw); ++ dw |= 0xaaa8; // GPIO1-7 outputs ++ pci_write_config_dword(dev, 0x62c, dw); ++ ++ pci_read_config_dword(dev, 0x644, &dw); ++ dw |= 0xfe; // GPIO1-7 output high ++ pci_write_config_dword(dev, 0x644, dw); ++ ++ msleep(100); ++} ++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_PLX, 0x8609, ventana_pciesw_early_fixup); ++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_PLX, 0x8606, ventana_pciesw_early_fixup); ++DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_PLX, 0x8604, ventana_pciesw_early_fixup); ++ + static int ar8031_phy_fixup(struct phy_device *dev) + { + u16 val; -- cgit v1.2.3