diff options
Diffstat (limited to 'arch/arm/mach-imx/anatop.c')
-rw-r--r-- | arch/arm/mach-imx/anatop.c | 33 |
1 files changed, 7 insertions, 26 deletions
diff --git a/arch/arm/mach-imx/anatop.c b/arch/arm/mach-imx/anatop.c index 4a40bbb..ad3b755 100644 --- a/arch/arm/mach-imx/anatop.c +++ b/arch/arm/mach-imx/anatop.c @@ -16,7 +16,6 @@ #include <linux/mfd/syscon.h> #include <linux/regmap.h> #include "common.h" -#include "hardware.h" #define REG_SET 0x4 #define REG_CLR 0x8 @@ -27,7 +26,6 @@ #define ANADIG_USB1_CHRG_DETECT 0x1b0 #define ANADIG_USB2_CHRG_DETECT 0x210 #define ANADIG_DIGPROG 0x260 -#define ANADIG_DIGPROG_IMX6SL 0x280 #define BM_ANADIG_REG_2P5_ENABLE_WEAK_LINREG 0x40000 #define BM_ANADIG_REG_CORE_FET_ODRIVE 0x20000000 @@ -78,38 +76,21 @@ static void imx_anatop_usb_chrg_detect_disable(void) BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B); } -void __init imx_init_revision_from_anatop(void) +u32 imx_anatop_get_digprog(void) { struct device_node *np; void __iomem *anatop_base; - unsigned int revision; - u32 digprog; - u16 offset = ANADIG_DIGPROG; + static u32 digprog; + + if (digprog) + return digprog; np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-anatop"); anatop_base = of_iomap(np, 0); WARN_ON(!anatop_base); - if (of_device_is_compatible(np, "fsl,imx6sl-anatop")) - offset = ANADIG_DIGPROG_IMX6SL; - digprog = readl_relaxed(anatop_base + offset); - iounmap(anatop_base); - - switch (digprog & 0xff) { - case 0: - revision = IMX_CHIP_REVISION_1_0; - break; - case 1: - revision = IMX_CHIP_REVISION_1_1; - break; - case 2: - revision = IMX_CHIP_REVISION_1_2; - break; - default: - revision = IMX_CHIP_REVISION_UNKNOWN; - } + digprog = readl_relaxed(anatop_base + ANADIG_DIGPROG); - mxc_set_cpu_type(digprog >> 16 & 0xff); - imx_set_soc_revision(revision); + return digprog; } void __init imx_anatop_init(void) |