diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-04 23:01:30 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-10-04 23:01:30 -0400 |
commit | 578f1ef91aa92beb571bfb9af8f4d18f405f3b9e (patch) | |
tree | 8ff59e772d09180b7e7f952a8c90a1bcf25e1d19 /arch/arm/mach-imx/mach-imx6q.c | |
parent | ecefbd94b834fa32559d854646d777c56749ef1c (diff) | |
parent | 74d8378159de16a0a1d1975d4778120d263d6000 (diff) |
Merge tag 'mfd-3.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6
Pull MFD changes from Samuel Ortiz:
"MFD bits for the 3.7 merge window.
As usual we have a few new drivers:
- TI LP8788
- TI OMAP USB TLL
- Maxim MAX8907
- SMSC ECE1099
- Dialog Semiconductor DA9055
- A simpler syscon driver that allow us to get rid of the anatop one.
Drivers are also gradually getting Device Tree and IRQ domain support.
The following drivers got DT support:
- palmas, 88pm860x, tc3589x and twl4030-audio
And those ones now use the IRQ domain APIs:
- 88pm860x, tc3589x, db8500_prcmu
Also some other interesting changes:
- Intel's ICH LPC now supports Lynx Point
- TI's twl4030-audio added a GPO child
- tps6527 enabled its backlight subdevice
- The twl6030 pwm driver moved to the new PWM subsystem
And finally a bunch of cleanup and casual fixes for mc13xxx, 88pm860x,
palmas, ab8500, wm8994, wm5110, max8907 and the tps65xxx family."
Fix up various annoying conflicts: the DT and IRQ domain support came in
twice and was already in 3.6. And then it was apparently rebased.
Guys, DON'T REBASE!
* tag 'mfd-3.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (89 commits)
ARM: dts: Enable 88pm860x pmic
mfd: 88pm860x: Move gpadc init into touch
mfd: 88pm860x: Device tree support
mfd: 88pm860x: Use irqdomain
mfd: smsc: Add support for smsc gpio io/keypad driver
backlight: tps65217_bl: Add missing platform_set_drvdata in tps65217_bl_probe
mfd: DA9055 core driver
mfd: tps65910: Add alarm interrupt of TPS65910 RTC to mfd device list
mfd: wm5110: Add register patches for revision B
mfd: wm5110: Disable control interface error report for WM5110 rev B
mfd: max8907: Remove regulator-compatible from DT docs
backlight: Add TPS65217 WLED driver
mfd: Add backlight as subdevice to the tps65217
mfd: Provide the PRCMU with its own IRQ domain
mfd: Fix max8907 sparse warning
mfd: Add lp8788 mfd driver
mfd: dbx500: Provide a more accurate smp_twd clock
mfd: rc5t583: Fix warning messages
regulator: palmas: Add DT support
mfd: palmas: Change regulator defns to better suite DT
...
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) |