Patch "ARM: imx27: Retrieve the SYSCTRL base address from devicetree" has been added to the 5.4-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ARM: imx27: Retrieve the SYSCTRL base address from devicetree

to the 5.4-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     arm-imx27-retrieve-the-sysctrl-base-address-from-dev.patch
and it can be found in the queue-5.4 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 35623037c1d16d98b72dfad0669d6244fd090d6f
Author: Fabio Estevam <festevam@xxxxxxxxx>
Date:   Wed Sep 16 21:41:15 2020 -0300

    ARM: imx27: Retrieve the SYSCTRL base address from devicetree
    
    [ Upstream commit 94b2bec1b0e054b27b0a0b5f52a0cd55c83340f4 ]
    
    Now that imx27 has been converted to a devicetree-only platform,
    retrieve the SYSCTRL base address from devicetree.
    
    To keep devicetree compatibilty the SYSCTRL base address will be
    retrieved from the CCM base address plus an 0x800 offset.
    
    This is not a problem as the imx27.dtsi describes the CCM register
    range as 0x1000.
    
    Signed-off-by: Fabio Estevam <festevam@xxxxxxxxx>
    Acked-by: Arnd Bergmann <arnd@xxxxxxxx>
    Signed-off-by: Shawn Guo <shawnguo@xxxxxxxxxx>
    Stable-dep-of: 87b30c4b0efb ("ARM: imx: add missing of_node_put()")
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/arch/arm/mach-imx/cpu-imx27.c b/arch/arm/mach-imx/cpu-imx27.c
index a969aa71b60f..bf70e13bbe9e 100644
--- a/arch/arm/mach-imx/cpu-imx27.c
+++ b/arch/arm/mach-imx/cpu-imx27.c
@@ -9,6 +9,7 @@
  */
 
 #include <linux/io.h>
+#include <linux/of_address.h>
 #include <linux/module.h>
 
 #include "hardware.h"
@@ -17,16 +18,23 @@ static int mx27_cpu_rev = -1;
 static int mx27_cpu_partnumber;
 
 #define SYS_CHIP_ID             0x00    /* The offset of CHIP ID register */
+#define SYSCTRL_OFFSET		0x800	/* Offset from CCM base address */
 
 static int mx27_read_cpu_rev(void)
 {
+	void __iomem *ccm_base;
+	struct device_node *np;
 	u32 val;
+
+	np = of_find_compatible_node(NULL, NULL, "fsl,imx27-ccm");
+	ccm_base = of_iomap(np, 0);
+	BUG_ON(!ccm_base);
 	/*
 	 * now we have access to the IO registers. As we need
 	 * the silicon revision very early we read it here to
 	 * avoid any further hooks
 	*/
-	val = imx_readl(MX27_IO_ADDRESS(MX27_SYSCTRL_BASE_ADDR + SYS_CHIP_ID));
+	val = imx_readl(ccm_base + SYSCTRL_OFFSET + SYS_CHIP_ID);
 
 	mx27_cpu_partnumber = (int)((val >> 12) & 0xFFFF);
 



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux