diff options
author | Dong Aisheng <dong.aisheng@linaro.org> | 2012-09-04 22:57:15 -0400 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2012-09-17 09:27:31 -0400 |
commit | baa64151aecccedbafae1bbc0c167c8b2a711752 (patch) | |
tree | d911c782c77310848aa36fac6e32931458dcfc82 /arch/arm | |
parent | df37e0c0931ceeb159c8e017445c6d4799b7f345 (diff) |
regulator: anatop-regulator: Convert to use syscon to access anatop register
Using syscon to access anatop register.
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Dong Aisheng <dong.aisheng@linaro.org>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/boot/dts/imx6q.dtsi | 4 | ||||
-rw-r--r-- | arch/arm/mach-imx/Kconfig | 2 | ||||
-rw-r--r-- | arch/arm/mach-imx/mach-imx6q.c | 47 |
3 files changed, 21 insertions, 32 deletions
diff --git a/arch/arm/boot/dts/imx6q.dtsi b/arch/arm/boot/dts/imx6q.dtsi index bea21bc1aad..52ed4d1ff4e 100644 --- a/arch/arm/boot/dts/imx6q.dtsi +++ b/arch/arm/boot/dts/imx6q.dtsi | |||
@@ -378,8 +378,8 @@ | |||
378 | interrupts = <0 87 0x04 0 88 0x04>; | 378 | interrupts = <0 87 0x04 0 88 0x04>; |
379 | }; | 379 | }; |
380 | 380 | ||
381 | anatop@020c8000 { | 381 | anatop: anatop@020c8000 { |
382 | compatible = "fsl,imx6q-anatop"; | 382 | compatible = "fsl,imx6q-anatop", "syscon", "simple-bus"; |
383 | reg = <0x020c8000 0x1000>; | 383 | reg = <0x020c8000 0x1000>; |
384 | interrupts = <0 49 0x04 0 54 0x04 0 127 0x04>; | 384 | interrupts = <0 49 0x04 0 54 0x04 0 127 0x04>; |
385 | 385 | ||
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index afd542ad6f9..7bba253fd2b 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig | |||
@@ -839,7 +839,7 @@ config SOC_IMX6Q | |||
839 | select HAVE_IMX_MMDC | 839 | select HAVE_IMX_MMDC |
840 | select HAVE_IMX_SRC | 840 | select HAVE_IMX_SRC |
841 | select HAVE_SMP | 841 | select HAVE_SMP |
842 | select MFD_ANATOP | 842 | select MFD_SYSCON |
843 | select PINCTRL | 843 | select PINCTRL |
844 | select PINCTRL_IMX6Q | 844 | select PINCTRL_IMX6Q |
845 | 845 | ||
diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c index 5ec0608f2a7..8d7c1414074 100644 --- a/arch/arm/mach-imx/mach-imx6q.c +++ b/arch/arm/mach-imx/mach-imx6q.c | |||
@@ -24,8 +24,9 @@ | |||
24 | #include <linux/of_platform.h> | 24 | #include <linux/of_platform.h> |
25 | #include <linux/pinctrl/machine.h> | 25 | #include <linux/pinctrl/machine.h> |
26 | #include <linux/phy.h> | 26 | #include <linux/phy.h> |
27 | #include <linux/regmap.h> | ||
27 | #include <linux/micrel_phy.h> | 28 | #include <linux/micrel_phy.h> |
28 | #include <linux/mfd/anatop.h> | 29 | #include <linux/mfd/syscon.h> |
29 | #include <asm/cpuidle.h> | 30 | #include <asm/cpuidle.h> |
30 | #include <asm/smp_twd.h> | 31 | #include <asm/smp_twd.h> |
31 | #include <asm/hardware/cache-l2x0.h> | 32 | #include <asm/hardware/cache-l2x0.h> |
@@ -120,20 +121,7 @@ static void __init imx6q_sabrelite_init(void) | |||
120 | 121 | ||
121 | static void __init imx6q_usb_init(void) | 122 | static void __init imx6q_usb_init(void) |
122 | { | 123 | { |
123 | struct device_node *np; | 124 | struct regmap *anatop; |
124 | struct platform_device *pdev = NULL; | ||
125 | struct anatop *adata = NULL; | ||
126 | |||
127 | np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-anatop"); | ||
128 | if (np) | ||
129 | pdev = of_find_device_by_node(np); | ||
130 | if (pdev) | ||
131 | adata = platform_get_drvdata(pdev); | ||
132 | if (!adata) { | ||
133 | if (np) | ||
134 | of_node_put(np); | ||
135 | return; | ||
136 | } | ||
137 | 125 | ||
138 | #define HW_ANADIG_USB1_CHRG_DETECT 0x000001b0 | 126 | #define HW_ANADIG_USB1_CHRG_DETECT 0x000001b0 |
139 | #define HW_ANADIG_USB2_CHRG_DETECT 0x00000210 | 127 | #define HW_ANADIG_USB2_CHRG_DETECT 0x00000210 |
@@ -141,20 +129,21 @@ static void __init imx6q_usb_init(void) | |||
141 | #define BM_ANADIG_USB_CHRG_DETECT_EN_B 0x00100000 | 129 | #define BM_ANADIG_USB_CHRG_DETECT_EN_B 0x00100000 |
142 | #define BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B 0x00080000 | 130 | #define BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B 0x00080000 |
143 | 131 | ||
144 | /* | 132 | anatop = syscon_regmap_lookup_by_compatible("fsl,imx6q-anatop"); |
145 | * The external charger detector needs to be disabled, | 133 | if (!IS_ERR(anatop)) { |
146 | * or the signal at DP will be poor | 134 | /* |
147 | */ | 135 | * The external charger detector needs to be disabled, |
148 | anatop_write_reg(adata, HW_ANADIG_USB1_CHRG_DETECT, | 136 | * or the signal at DP will be poor |
149 | BM_ANADIG_USB_CHRG_DETECT_EN_B | 137 | */ |
150 | | BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B, | 138 | regmap_write(anatop, HW_ANADIG_USB1_CHRG_DETECT, |
151 | ~0); | 139 | BM_ANADIG_USB_CHRG_DETECT_EN_B |
152 | anatop_write_reg(adata, HW_ANADIG_USB2_CHRG_DETECT, | 140 | | BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B); |
153 | BM_ANADIG_USB_CHRG_DETECT_EN_B | | 141 | regmap_write(anatop, HW_ANADIG_USB2_CHRG_DETECT, |
154 | BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B, | 142 | BM_ANADIG_USB_CHRG_DETECT_EN_B | |
155 | ~0); | 143 | BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B); |
156 | 144 | } else { | |
157 | of_node_put(np); | 145 | pr_warn("failed to find fsl,imx6q-anatop regmap\n"); |
146 | } | ||
158 | } | 147 | } |
159 | 148 | ||
160 | static void __init imx6q_init_machine(void) | 149 | static void __init imx6q_init_machine(void) |