diff options
Diffstat (limited to 'arch/arm/mach-imx/mach-imx6q.c')
-rw-r--r-- | arch/arm/mach-imx/mach-imx6q.c | 47 |
1 files changed, 18 insertions, 29 deletions
diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c index 36979d3dfe34..47c91f7185d2 100644 --- a/arch/arm/mach-imx/mach-imx6q.c +++ b/arch/arm/mach-imx/mach-imx6q.c | |||
@@ -23,8 +23,9 @@ | |||
23 | #include <linux/of_irq.h> | 23 | #include <linux/of_irq.h> |
24 | #include <linux/of_platform.h> | 24 | #include <linux/of_platform.h> |
25 | #include <linux/phy.h> | 25 | #include <linux/phy.h> |
26 | #include <linux/regmap.h> | ||
26 | #include <linux/micrel_phy.h> | 27 | #include <linux/micrel_phy.h> |
27 | #include <linux/mfd/anatop.h> | 28 | #include <linux/mfd/syscon.h> |
28 | #include <asm/cpuidle.h> | 29 | #include <asm/cpuidle.h> |
29 | #include <asm/smp_twd.h> | 30 | #include <asm/smp_twd.h> |
30 | #include <asm/hardware/cache-l2x0.h> | 31 | #include <asm/hardware/cache-l2x0.h> |
@@ -118,20 +119,7 @@ static void __init imx6q_sabrelite_init(void) | |||
118 | 119 | ||
119 | static void __init imx6q_usb_init(void) | 120 | static void __init imx6q_usb_init(void) |
120 | { | 121 | { |
121 | struct device_node *np; | 122 | struct regmap *anatop; |
122 | struct platform_device *pdev = NULL; | ||
123 | struct anatop *adata = NULL; | ||
124 | |||
125 | np = of_find_compatible_node(NULL, NULL, "fsl,imx6q-anatop"); | ||
126 | if (np) | ||
127 | pdev = of_find_device_by_node(np); | ||
128 | if (pdev) | ||
129 | adata = platform_get_drvdata(pdev); | ||
130 | if (!adata) { | ||
131 | if (np) | ||
132 | of_node_put(np); | ||
133 | return; | ||
134 | } | ||
135 | 123 | ||
136 | #define HW_ANADIG_USB1_CHRG_DETECT 0x000001b0 | 124 | #define HW_ANADIG_USB1_CHRG_DETECT 0x000001b0 |
137 | #define HW_ANADIG_USB2_CHRG_DETECT 0x00000210 | 125 | #define HW_ANADIG_USB2_CHRG_DETECT 0x00000210 |
@@ -139,20 +127,21 @@ static void __init imx6q_usb_init(void) | |||
139 | #define BM_ANADIG_USB_CHRG_DETECT_EN_B 0x00100000 | 127 | #define BM_ANADIG_USB_CHRG_DETECT_EN_B 0x00100000 |
140 | #define BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B 0x00080000 | 128 | #define BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B 0x00080000 |
141 | 129 | ||
142 | /* | 130 | anatop = syscon_regmap_lookup_by_compatible("fsl,imx6q-anatop"); |
143 | * The external charger detector needs to be disabled, | 131 | if (!IS_ERR(anatop)) { |
144 | * or the signal at DP will be poor | 132 | /* |
145 | */ | 133 | * The external charger detector needs to be disabled, |
146 | anatop_write_reg(adata, HW_ANADIG_USB1_CHRG_DETECT, | 134 | * or the signal at DP will be poor |
147 | BM_ANADIG_USB_CHRG_DETECT_EN_B | 135 | */ |
148 | | BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B, | 136 | regmap_write(anatop, HW_ANADIG_USB1_CHRG_DETECT, |
149 | ~0); | 137 | BM_ANADIG_USB_CHRG_DETECT_EN_B |
150 | anatop_write_reg(adata, HW_ANADIG_USB2_CHRG_DETECT, | 138 | | BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B); |
151 | BM_ANADIG_USB_CHRG_DETECT_EN_B | | 139 | regmap_write(anatop, HW_ANADIG_USB2_CHRG_DETECT, |
152 | BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B, | 140 | BM_ANADIG_USB_CHRG_DETECT_EN_B | |
153 | ~0); | 141 | BM_ANADIG_USB_CHRG_DETECT_CHK_CHRG_B); |
154 | 142 | } else { | |
155 | of_node_put(np); | 143 | pr_warn("failed to find fsl,imx6q-anatop regmap\n"); |
144 | } | ||
156 | } | 145 | } |
157 | 146 | ||
158 | static void __init imx6q_init_machine(void) | 147 | static void __init imx6q_init_machine(void) |