From 60dd4429b71227cbecf22892b26e125fedd4159d Mon Sep 17 00:00:00 2001 From: Luka Perkov Date: Thu, 3 Oct 2013 13:06:42 +0000 Subject: [PATCH] imx6: update upstream pcie patches Signed-off-by: Luka Perkov SVN-Revision: 38298 --- .../0001-usb-chipidea-improve-kconfig.patch | 2 - ...-fix-the-build-error-with-randconfig.patch | 2 - ...003-usb-chipidea-improve-kconfig-2.0.patch | 2 - .../0004-i2c-imx-retry-on-NAK.patch | 2 - ...d-ahci-sata-support-on-imx-platforms.patch | 2 - ...e-the-sata-bits-definitions-of-gpr13.patch | 2 - ...-enable-ahci-sata-on-imx6q-platforms.patch | 2 - ...ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch | 2 - ...-PCIe-bits-to-GPR-syscon-definition.patch} | 6 +- ...d-support-for-i.MX6-PCIe-controller.patch} | 92 ++++--------------- ...DS-general-purpose-clocks-to-i.MX6Q.patch} | 19 +++- ...-and-Kconfig-update-for-PCIe-support.patch | 38 ++++++++ ...ARM-dts-imx6qdl-add-pcie-device-node.patch | 38 ++++++++ ...ermal-add-imx-thermal-driver-support.patch | 17 +--- .../010-pcie-backport-fixes.patch | 11 +++ .../imx6/patches-3.10/011-pci-tweaks.patch | 11 --- 16 files changed, 130 insertions(+), 118 deletions(-) rename target/linux/imx6/patches-3.10/{0011-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch => 0010-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch} (82%) rename target/linux/imx6/patches-3.10/{0012-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch => 0011-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch} (85%) rename target/linux/imx6/patches-3.10/{0010-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch => 0012-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch} (81%) create mode 100644 target/linux/imx6/patches-3.10/0013-ARM-imx6q-clock-and-Kconfig-update-for-PCIe-support.patch create mode 100644 target/linux/imx6/patches-3.10/0014-ARM-dts-imx6qdl-add-pcie-device-node.patch diff --git a/target/linux/imx6/patches-3.10/0001-usb-chipidea-improve-kconfig.patch b/target/linux/imx6/patches-3.10/0001-usb-chipidea-improve-kconfig.patch index da46405f73..f8229d06b1 100644 --- a/target/linux/imx6/patches-3.10/0001-usb-chipidea-improve-kconfig.patch +++ b/target/linux/imx6/patches-3.10/0001-usb-chipidea-improve-kconfig.patch @@ -1,6 +1,4 @@ -From 20a677fd63c57edd5b0c463baa44f133b2f2d4a0 Mon Sep 17 00:00:00 2001 From: Peter Chen -Date: Thu, 13 Jun 2013 17:59:52 +0300 Subject: [PATCH] usb: chipidea: improve kconfig Randy Dunlap reported this problem diff --git a/target/linux/imx6/patches-3.10/0002-usb-chipidea-fix-the-build-error-with-randconfig.patch b/target/linux/imx6/patches-3.10/0002-usb-chipidea-fix-the-build-error-with-randconfig.patch index b921dfd9e0..e44682c3d7 100644 --- a/target/linux/imx6/patches-3.10/0002-usb-chipidea-fix-the-build-error-with-randconfig.patch +++ b/target/linux/imx6/patches-3.10/0002-usb-chipidea-fix-the-build-error-with-randconfig.patch @@ -1,6 +1,4 @@ -From 972a6c5d56b42d6dd326867d5974ffa58383ec53 Mon Sep 17 00:00:00 2001 From: Peter Chen -Date: Mon, 29 Jul 2013 13:09:57 +0300 Subject: [PATCH] usb: chipidea: fix the build error with randconfig Using below configs, the compile will have error: diff --git a/target/linux/imx6/patches-3.10/0003-usb-chipidea-improve-kconfig-2.0.patch b/target/linux/imx6/patches-3.10/0003-usb-chipidea-improve-kconfig-2.0.patch index 40968ab4da..f90e7365ec 100644 --- a/target/linux/imx6/patches-3.10/0003-usb-chipidea-improve-kconfig-2.0.patch +++ b/target/linux/imx6/patches-3.10/0003-usb-chipidea-improve-kconfig-2.0.patch @@ -1,6 +1,4 @@ -From a0cfdc6bc73bc47b63b05b850cf66cf67f2487bf Mon Sep 17 00:00:00 2001 From: Lothar Waßmann -Date: Wed, 14 Aug 2013 12:43:58 +0300 Subject: [PATCH] usb: chipidea: improve kconfig 2.0 This patch provides a cleaner solution to the problem described in diff --git a/target/linux/imx6/patches-3.10/0004-i2c-imx-retry-on-NAK.patch b/target/linux/imx6/patches-3.10/0004-i2c-imx-retry-on-NAK.patch index aea87eaa5f..e876c6ed49 100644 --- a/target/linux/imx6/patches-3.10/0004-i2c-imx-retry-on-NAK.patch +++ b/target/linux/imx6/patches-3.10/0004-i2c-imx-retry-on-NAK.patch @@ -1,6 +1,4 @@ -From 0d1ee1f265cf9730feb214ddd18bc430c0800e8b Mon Sep 17 00:00:00 2001 From: Tim Harvey -Date: Tue, 10 Sep 2013 21:42:29 +0200 Subject: [PATCH] i2c: imx: retry on NAK In case of busy i2c try again to get ACK. diff --git a/target/linux/imx6/patches-3.10/0005-ahci_imx-add-ahci-sata-support-on-imx-platforms.patch b/target/linux/imx6/patches-3.10/0005-ahci_imx-add-ahci-sata-support-on-imx-platforms.patch index 1adb41d25f..c735517c7a 100644 --- a/target/linux/imx6/patches-3.10/0005-ahci_imx-add-ahci-sata-support-on-imx-platforms.patch +++ b/target/linux/imx6/patches-3.10/0005-ahci_imx-add-ahci-sata-support-on-imx-platforms.patch @@ -1,6 +1,4 @@ -From 9e54eae23bc9cca0d8a955018c35b1250e09a73a Mon Sep 17 00:00:00 2001 From: Richard Zhu -Date: Wed, 24 Jul 2013 14:15:29 +0800 Subject: [PATCH] ahci_imx: add ahci sata support on imx platforms imx6q contains one Synopsys AHCI SATA controller, But it can't share diff --git a/target/linux/imx6/patches-3.10/0006-ARM-imx6q-update-the-sata-bits-definitions-of-gpr13.patch b/target/linux/imx6/patches-3.10/0006-ARM-imx6q-update-the-sata-bits-definitions-of-gpr13.patch index 11ce9ccbc8..646273af0f 100644 --- a/target/linux/imx6/patches-3.10/0006-ARM-imx6q-update-the-sata-bits-definitions-of-gpr13.patch +++ b/target/linux/imx6/patches-3.10/0006-ARM-imx6q-update-the-sata-bits-definitions-of-gpr13.patch @@ -1,6 +1,4 @@ -From 6a6c21ef487be47b300a0b24cd6afeb69d8b9a1a Mon Sep 17 00:00:00 2001 From: Richard Zhu -Date: Wed, 24 Jul 2013 14:15:28 +0800 Subject: [PATCH] ARM: imx6q: update the sata bits definitions of gpr13 Replace the SATA_PHY_# by the more readable definitons. diff --git a/target/linux/imx6/patches-3.10/0007-ARM-dtsi-enable-ahci-sata-on-imx6q-platforms.patch b/target/linux/imx6/patches-3.10/0007-ARM-dtsi-enable-ahci-sata-on-imx6q-platforms.patch index 72d41eeb0b..5371524237 100644 --- a/target/linux/imx6/patches-3.10/0007-ARM-dtsi-enable-ahci-sata-on-imx6q-platforms.patch +++ b/target/linux/imx6/patches-3.10/0007-ARM-dtsi-enable-ahci-sata-on-imx6q-platforms.patch @@ -1,6 +1,4 @@ -From 0fb1f804269e549b556b475c8655bc862c220622 Mon Sep 17 00:00:00 2001 From: Richard Zhu -Date: Tue, 16 Jul 2013 11:28:46 +0800 Subject: [PATCH] ARM: dtsi: enable ahci sata on imx6q platforms Only imx6q has the ahci sata controller, enable diff --git a/target/linux/imx6/patches-3.10/0008-ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch b/target/linux/imx6/patches-3.10/0008-ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch index 7115a6ce73..86e7d8f0cd 100644 --- a/target/linux/imx6/patches-3.10/0008-ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch +++ b/target/linux/imx6/patches-3.10/0008-ahci_imx-depend-on-CONFIG_MFD_SYSCON.patch @@ -1,6 +1,4 @@ -From 867974fc09f93bdd7f98d46ac3733934486bbf4a Mon Sep 17 00:00:00 2001 From: Tejun Heo -Date: Fri, 26 Jul 2013 08:57:56 -0400 Subject: [PATCH] ahci_imx: depend on CONFIG_MFD_SYSCON ahci_imx makes use of regmap but the dependency wasn't specified in diff --git a/target/linux/imx6/patches-3.10/0011-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch b/target/linux/imx6/patches-3.10/0010-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch similarity index 82% rename from target/linux/imx6/patches-3.10/0011-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch rename to target/linux/imx6/patches-3.10/0010-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch index df9d9fa961..19ca079dc9 100644 --- a/target/linux/imx6/patches-3.10/0011-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch +++ b/target/linux/imx6/patches-3.10/0010-ARM-imx6q-Add-PCIe-bits-to-GPR-syscon-definition.patch @@ -1,11 +1,13 @@ -Subject: [v6,2/3] ARM: imx6q: Add PCIe bits to GPR syscon definition From: Sean Cross +Subject: [PATCH 1/2] ARM: imx6q: Add PCIe bits to GPR syscon definition PCIe requires additional bits be defined for GPR8 and GPR12. Signed-off-by: Sean Cross +Signed-off-by: Shawn Guo +Signed-off-by: Bjorn Helgaas --- - include/linux/mfd/syscon/imx6q-iomuxc-gpr.h | 8 ++++++++ + include/linux/mfd/syscon/imx6q-iomuxc-gpr.h | 8 ++++++++ 1 file changed, 8 insertions(+) --- a/include/linux/mfd/syscon/imx6q-iomuxc-gpr.h diff --git a/target/linux/imx6/patches-3.10/0012-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch b/target/linux/imx6/patches-3.10/0011-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch similarity index 85% rename from target/linux/imx6/patches-3.10/0012-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch rename to target/linux/imx6/patches-3.10/0011-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch index 37d26eabf1..599cd0e084 100644 --- a/target/linux/imx6/patches-3.10/0012-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch +++ b/target/linux/imx6/patches-3.10/0011-PCI-imx6-Add-support-for-i.MX6-PCIe-controller.patch @@ -1,79 +1,28 @@ -Subject: [v6,3/3] PCI: imx6: Add support for i.MX6 PCIe controller +Subject: [PATCH 2/2] PCI: imx6: Add support for i.MX6 PCIe controller From: Sean Cross Add support for the PCIe port present on the i.MX6 family of controllers. These use the Synopsis Designware core tied to their own PHY. Signed-off-by: Sean Cross -Acked-by: Bjorn Helgaas +Signed-off-by: Shawn Guo +Signed-off-by: Bjorn Helgaas Acked-by: Sascha Hauer --- - arch/arm/boot/dts/imx6qdl.dtsi | 16 + - arch/arm/mach-imx/Kconfig | 2 + - arch/arm/mach-imx/clk-imx6q.c | 4 + - drivers/pci/host/Kconfig | 6 + - drivers/pci/host/Makefile | 1 + - drivers/pci/host/pci-imx6.c | 576 ++++++++++++++++++++ - 7 files changed, 611 insertions(+), 1 deletion(-) + drivers/pci/host/Kconfig | 6 + + drivers/pci/host/Makefile | 1 + + drivers/pci/host/pci-imx6.c | 575 +++++++++++++++++++++ + 4 files changed, 588 insertions(+), 1 deletion(-) create mode 100644 drivers/pci/host/pci-imx6.c ---- a/arch/arm/boot/dts/imx6qdl.dtsi -+++ b/arch/arm/boot/dts/imx6qdl.dtsi -@@ -108,6 +108,22 @@ - cache-level = <2>; - }; - -+ pcie: pcie@0x01000000 { -+ compatible = "fsl,imx6q-pcie", "snps,dw-pcie"; -+ reg = <0x01ffc000 0x4000>; /* DBI */ -+ #address-cells = <3>; -+ #size-cells = <2>; -+ device_type = "pci"; -+ ranges = <0x00000800 0 0x01f00000 0x01f00000 0 0x00080000 /* configuration space */ -+ 0x81000000 0 0 0x01f80000 0 0x00010000 /* downstream I/O */ -+ 0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */ -+ num-lanes = <1>; -+ interrupts = <0 123 0x04>; -+ clocks = <&clks 189>, <&clks 187>, <&clks 205>, <&clks 144>; -+ clock-names = "pcie_ref_125m", "sata_ref_100m", "lvds_gate", "pcie_axi"; -+ status = "disabled"; -+ }; -+ - pmu { - compatible = "arm,cortex-a9-pmu"; - interrupts = <0 94 0x04>; ---- a/arch/arm/mach-imx/Kconfig -+++ b/arch/arm/mach-imx/Kconfig -@@ -806,6 +806,8 @@ config SOC_IMX6Q - select HAVE_IMX_SRC - select HAVE_SMP - select MFD_SYSCON -+ select MIGHT_HAVE_PCI -+ select PCI_DOMAINS if PCI - select PINCTRL - select PINCTRL_IMX6Q - select PL310_ERRATA_588369 if CACHE_PL310 ---- a/arch/arm/mach-imx/clk-imx6q.c -+++ b/arch/arm/mach-imx/clk-imx6q.c -@@ -586,6 +586,10 @@ int __init mx6q_clocks_init(void) - clk_prepare_enable(clk[usbphy2_gate]); - } - -+ /* All existing boards with PCIe use LVDS1 */ -+ if (IS_ENABLED(CONFIG_PCI_IMX6)) -+ clk_set_parent(clk[lvds1_sel], clk[sata_ref]); -+ - /* Set initial power mode */ - imx6q_set_lpm(WAIT_CLOCKED); - --- /dev/null +++ b/drivers/pci/host/Kconfig @@ -0,0 +1,13 @@ +menu "PCI host controller drivers" -+ depends on PCI ++ depends on PCI + +config PCIE_DW -+ bool ++ bool + +config PCI_IMX6 + bool "Freescale i.MX6 PCIe controller" @@ -89,7 +38,7 @@ Acked-by: Sascha Hauer +obj-$(CONFIG_PCI_IMX6) += pci-imx6.o --- /dev/null +++ b/drivers/pci/host/pci-imx6.c -@@ -0,0 +1,576 @@ +@@ -0,0 +1,575 @@ +/* + * PCIe host controller driver for Freescale i.MX6 SoCs + * @@ -173,7 +122,7 @@ Acked-by: Sascha Hauer + return 0; + + udelay(1); -+ } while ((wait_counter < max_iterations) && (val != exp_val)); ++ } while (wait_counter < max_iterations); + + return -ETIMEDOUT; +} @@ -260,7 +209,7 @@ Acked-by: Sascha Hauer + var = data << PCIE_PHY_CTRL_DATA_LOC; + writel(var, dbi_base + PCIE_PHY_CTRL); + -+ /* wait for ack de-assetion */ ++ /* wait for ack de-assertion */ + ret = pcie_phy_poll_ack(dbi_base, 0); + if (ret) + return ret; @@ -278,7 +227,7 @@ Acked-by: Sascha Hauer + var = data << PCIE_PHY_CTRL_DATA_LOC; + writel(var, dbi_base + PCIE_PHY_CTRL); + -+ /* wait for ack de-assetion */ ++ /* wait for ack de-assertion */ + ret = pcie_phy_poll_ack(dbi_base, 0); + if (ret) + return ret; @@ -454,8 +403,7 @@ Acked-by: Sascha Hauer + if (ltssm != 0x0d) + return 0; + -+ dev_err(pp->dev, -+ "transition to gen2 is stuck, reset PHY!\n"); ++ dev_err(pp->dev, "transition to gen2 is stuck, reset PHY!\n"); + + pcie_phy_read(pp->dbi_base, + PHY_RX_OVRD_IN_LO, &temp); @@ -589,7 +537,7 @@ Acked-by: Sascha Hauer + } + + /* Fetch clocks */ -+ imx6_pcie->lvds_gate = clk_get(&pdev->dev, "lvds_gate"); ++ imx6_pcie->lvds_gate = devm_clk_get(&pdev->dev, "lvds_gate"); + if (IS_ERR(imx6_pcie->lvds_gate)) { + dev_err(&pdev->dev, + "lvds_gate clock select missing or invalid\n"); @@ -597,7 +545,7 @@ Acked-by: Sascha Hauer + goto err; + } + -+ imx6_pcie->sata_ref_100m = clk_get(&pdev->dev, "sata_ref_100m"); ++ imx6_pcie->sata_ref_100m = devm_clk_get(&pdev->dev, "sata_ref_100m"); + if (IS_ERR(imx6_pcie->sata_ref_100m)) { + dev_err(&pdev->dev, + "sata_ref_100m clock source missing or invalid\n"); @@ -605,7 +553,7 @@ Acked-by: Sascha Hauer + goto err; + } + -+ imx6_pcie->pcie_ref_125m = clk_get(&pdev->dev, "pcie_ref_125m"); ++ imx6_pcie->pcie_ref_125m = devm_clk_get(&pdev->dev, "pcie_ref_125m"); + if (IS_ERR(imx6_pcie->pcie_ref_125m)) { + dev_err(&pdev->dev, + "pcie_ref_125m clock source missing or invalid\n"); @@ -613,7 +561,7 @@ Acked-by: Sascha Hauer + goto err; + } + -+ imx6_pcie->pcie_axi = clk_get(&pdev->dev, "pcie_axi"); ++ imx6_pcie->pcie_axi = devm_clk_get(&pdev->dev, "pcie_axi"); + if (IS_ERR(imx6_pcie->pcie_axi)) { + dev_err(&pdev->dev, + "pcie_axi clock source missing or invalid\n"); @@ -657,11 +605,11 @@ Acked-by: Sascha Hauer + +/* Freescale PCIe driver does not allow module unload */ + -+static int __init imx6_init(void) ++static int __init imx6_pcie_init(void) +{ + return platform_driver_probe(&imx6_pcie_driver, imx6_pcie_probe); +} -+module_init(imx6_init); ++module_init(imx6_pcie_init); + +MODULE_AUTHOR("Sean Cross "); +MODULE_DESCRIPTION("Freescale i.MX6 PCIe host controller driver"); diff --git a/target/linux/imx6/patches-3.10/0010-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch b/target/linux/imx6/patches-3.10/0012-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch similarity index 81% rename from target/linux/imx6/patches-3.10/0010-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch rename to target/linux/imx6/patches-3.10/0012-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch index bd86fadc33..3f1b6ebfde 100644 --- a/target/linux/imx6/patches-3.10/0010-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch +++ b/target/linux/imx6/patches-3.10/0012-ARM-imx-Add-LVDS-general-purpose-clocks-to-i.MX6Q.patch @@ -1,15 +1,30 @@ -Subject: [v6,1/3] ARM: imx: Add LVDS general-purpose clocks to i.MX6Q From: Sean Cross +Subject: [PATCH 1/3] ARM: imx: Add LVDS general-purpose clocks to i.MX6Q The i.MX6 has two general-purpose LVDS clocks that can be driven from a variety of sources. This patch adds a mux and a gate for both of these clocks. Signed-off-by: Sean Cross +Signed-off-by: Shawn Guo --- - arch/arm/mach-imx/clk-imx6q.c | 20 +++++++++++++++++++- + .../devicetree/bindings/clock/imx6q-clock.txt | 4 ++++ + arch/arm/mach-imx/clk-imx6q.c | 20 +++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) +--- a/Documentation/devicetree/bindings/clock/imx6q-clock.txt ++++ b/Documentation/devicetree/bindings/clock/imx6q-clock.txt +@@ -208,6 +208,10 @@ clocks and IDs. + pll4_post_div 193 + pll5_post_div 194 + pll5_video_div 195 ++ lvds1_sel 204 ++ lvds2_sel 205 ++ lvds1_gate 206 ++ lvds2_gate 207 + + Examples: + --- a/arch/arm/mach-imx/clk-imx6q.c +++ b/arch/arm/mach-imx/clk-imx6q.c @@ -205,6 +205,11 @@ static const char *vpu_axi_sels[] = { "a diff --git a/target/linux/imx6/patches-3.10/0013-ARM-imx6q-clock-and-Kconfig-update-for-PCIe-support.patch b/target/linux/imx6/patches-3.10/0013-ARM-imx6q-clock-and-Kconfig-update-for-PCIe-support.patch new file mode 100644 index 0000000000..25f207af07 --- /dev/null +++ b/target/linux/imx6/patches-3.10/0013-ARM-imx6q-clock-and-Kconfig-update-for-PCIe-support.patch @@ -0,0 +1,38 @@ +From 4f6723e8ff497e35c8f2fb20886fccc533c58cdb Mon Sep 17 00:00:00 2001 +From: Sean Cross +Date: Thu, 26 Sep 2013 10:45:35 +0800 +Subject: [PATCH] ARM: imx6q: clock and Kconfig update for PCIe support + +Update imx6q clock initialization and Kconfig for PCIe support. + +Signed-off-by: Sean Cross +Signed-off-by: Shawn Guo +--- + arch/arm/mach-imx/Kconfig | 2 ++ + arch/arm/mach-imx/clk-imx6q.c | 4 ++++ + 2 files changed, 6 insertions(+) + +--- a/arch/arm/mach-imx/Kconfig ++++ b/arch/arm/mach-imx/Kconfig +@@ -806,6 +806,8 @@ config SOC_IMX6Q + select HAVE_IMX_SRC + select HAVE_SMP + select MFD_SYSCON ++ select MIGHT_HAVE_PCI ++ select PCI_DOMAINS if PCI + select PINCTRL + select PINCTRL_IMX6Q + select PL310_ERRATA_588369 if CACHE_PL310 +--- a/arch/arm/mach-imx/clk-imx6q.c ++++ b/arch/arm/mach-imx/clk-imx6q.c +@@ -586,6 +586,10 @@ int __init mx6q_clocks_init(void) + clk_prepare_enable(clk[usbphy2_gate]); + } + ++ /* All existing boards with PCIe use LVDS1 */ ++ if (IS_ENABLED(CONFIG_PCI_IMX6)) ++ clk_set_parent(clk[lvds1_sel], clk[sata_ref]); ++ + /* Set initial power mode */ + imx6q_set_lpm(WAIT_CLOCKED); + diff --git a/target/linux/imx6/patches-3.10/0014-ARM-dts-imx6qdl-add-pcie-device-node.patch b/target/linux/imx6/patches-3.10/0014-ARM-dts-imx6qdl-add-pcie-device-node.patch new file mode 100644 index 0000000000..e78d9ba8b0 --- /dev/null +++ b/target/linux/imx6/patches-3.10/0014-ARM-dts-imx6qdl-add-pcie-device-node.patch @@ -0,0 +1,38 @@ +From 3a57291fa4ca7f7647d826f5b47082ef306d839f Mon Sep 17 00:00:00 2001 +From: Sean Cross +Date: Thu, 26 Sep 2013 10:51:09 +0800 +Subject: [PATCH] ARM: dts: imx6qdl: add pcie device node + +Add pcie device node for imx6qdl. + +Signed-off-by: Sean Cross +Signed-off-by: Shawn Guo +--- + arch/arm/boot/dts/imx6qdl.dtsi | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +--- a/arch/arm/boot/dts/imx6qdl.dtsi ++++ b/arch/arm/boot/dts/imx6qdl.dtsi +@@ -108,6 +108,22 @@ + cache-level = <2>; + }; + ++ pcie: pcie@0x01000000 { ++ compatible = "fsl,imx6q-pcie", "snps,dw-pcie"; ++ reg = <0x01ffc000 0x4000>; /* DBI */ ++ #address-cells = <3>; ++ #size-cells = <2>; ++ device_type = "pci"; ++ ranges = <0x00000800 0 0x01f00000 0x01f00000 0 0x00080000 /* configuration space */ ++ 0x81000000 0 0 0x01f80000 0 0x00010000 /* downstream I/O */ ++ 0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */ ++ num-lanes = <1>; ++ interrupts = <0 123 0x04>; ++ clocks = <&clks 189>, <&clks 187>, <&clks 206>, <&clks 144>; ++ clock-names = "pcie_ref_125m", "sata_ref_100m", "lvds_gate", "pcie_axi"; ++ status = "disabled"; ++ }; ++ + pmu { + compatible = "arm,cortex-a9-pmu"; + interrupts = <0 94 0x04>; diff --git a/target/linux/imx6/patches-3.10/0015-thermal-add-imx-thermal-driver-support.patch b/target/linux/imx6/patches-3.10/0015-thermal-add-imx-thermal-driver-support.patch index bd20d2d25c..0b7ac7d308 100644 --- a/target/linux/imx6/patches-3.10/0015-thermal-add-imx-thermal-driver-support.patch +++ b/target/linux/imx6/patches-3.10/0015-thermal-add-imx-thermal-driver-support.patch @@ -25,9 +25,6 @@ Signed-off-by: Eduardo Valentin create mode 100644 Documentation/devicetree/bindings/thermal/imx-thermal.txt create mode 100644 drivers/thermal/imx_thermal.c -diff --git a/Documentation/devicetree/bindings/thermal/imx-thermal.txt b/Documentation/devicetree/bindings/thermal/imx-thermal.txt -new file mode 100644 -index 0000000..541c25e --- /dev/null +++ b/Documentation/devicetree/bindings/thermal/imx-thermal.txt @@ -0,0 +1,17 @@ @@ -48,8 +45,6 @@ index 0000000..541c25e + fsl,tempmon = <&anatop>; + fsl,tempmon-data = <&ocotp>; +}; -diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig -index e988c81..69eed55 100644 --- a/drivers/thermal/Kconfig +++ b/drivers/thermal/Kconfig @@ -91,6 +91,17 @@ config THERMAL_EMULATION @@ -70,21 +65,16 @@ index e988c81..69eed55 100644 config SPEAR_THERMAL bool "SPEAr thermal sensor driver" depends on PLAT_SPEAR -diff --git a/drivers/thermal/Makefile b/drivers/thermal/Makefile -index 67184a2..dff19c6 100644 --- a/drivers/thermal/Makefile +++ b/drivers/thermal/Makefile -@@ -21,6 +21,7 @@ obj-$(CONFIG_EXYNOS_THERMAL) += exynos_thermal.o +@@ -21,6 +21,7 @@ obj-$(CONFIG_EXYNOS_THERMAL) += exynos_t obj-$(CONFIG_DOVE_THERMAL) += dove_thermal.o obj-$(CONFIG_DB8500_THERMAL) += db8500_thermal.o obj-$(CONFIG_ARMADA_THERMAL) += armada_thermal.o +obj-$(CONFIG_IMX_THERMAL) += imx_thermal.o obj-$(CONFIG_DB8500_CPUFREQ_COOLING) += db8500_cpufreq_cooling.o obj-$(CONFIG_INTEL_POWERCLAMP) += intel_powerclamp.o - obj-$(CONFIG_X86_PKG_TEMP_THERMAL) += x86_pkg_temp_thermal.o -diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c -new file mode 100644 -index 0000000..d16c33c + --- /dev/null +++ b/drivers/thermal/imx_thermal.c @@ -0,0 +1,397 @@ @@ -485,6 +475,3 @@ index 0000000..d16c33c +MODULE_DESCRIPTION("Thermal driver for Freescale i.MX SoCs"); +MODULE_LICENSE("GPL v2"); +MODULE_ALIAS("platform:imx-thermal"); --- -1.8.4 - diff --git a/target/linux/imx6/patches-3.10/010-pcie-backport-fixes.patch b/target/linux/imx6/patches-3.10/010-pcie-backport-fixes.patch index aef6b05f48..2aea7084c7 100644 --- a/target/linux/imx6/patches-3.10/010-pcie-backport-fixes.patch +++ b/target/linux/imx6/patches-3.10/010-pcie-backport-fixes.patch @@ -1,3 +1,14 @@ +--- a/arch/arm/boot/dts/imx6qdl.dtsi ++++ b/arch/arm/boot/dts/imx6qdl.dtsi +@@ -119,7 +119,7 @@ + 0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */ + num-lanes = <1>; + interrupts = <0 123 0x04>; +- clocks = <&clks 189>, <&clks 187>, <&clks 206>, <&clks 144>; ++ clocks = <&clks 189>, <&clks 187>, <&clks 198>, <&clks 144>; + clock-names = "pcie_ref_125m", "sata_ref_100m", "lvds_gate", "pcie_axi"; + status = "disabled"; + }; --- a/drivers/pci/Kconfig +++ b/drivers/pci/Kconfig @@ -125,3 +125,5 @@ config PCI_IOAPIC diff --git a/target/linux/imx6/patches-3.10/011-pci-tweaks.patch b/target/linux/imx6/patches-3.10/011-pci-tweaks.patch index 08a08fb43f..eda007eb6d 100644 --- a/target/linux/imx6/patches-3.10/011-pci-tweaks.patch +++ b/target/linux/imx6/patches-3.10/011-pci-tweaks.patch @@ -1,14 +1,3 @@ ---- a/arch/arm/boot/dts/imx6qdl.dtsi -+++ b/arch/arm/boot/dts/imx6qdl.dtsi -@@ -119,7 +119,7 @@ - 0x82000000 0 0x01000000 0x01000000 0 0x00f00000>; /* non-prefetchable memory */ - num-lanes = <1>; - interrupts = <0 123 0x04>; -- clocks = <&clks 189>, <&clks 187>, <&clks 205>, <&clks 144>; -+ clocks = <&clks 189>, <&clks 187>, <&clks 198>, <&clks 144>; - clock-names = "pcie_ref_125m", "sata_ref_100m", "lvds_gate", "pcie_axi"; - status = "disabled"; - }; --- a/drivers/pci/host/pci-imx6.c +++ b/drivers/pci/host/pci-imx6.c @@ -200,12 +200,6 @@ static int pcie_phy_write(void __iomem *