From: Linus Torvalds Date: Fri, 5 Oct 2012 03:01:30 +0000 (+0900) Subject: Merge tag 'mfd-3.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6 X-Git-Tag: MMI-PSA29.97-13-9~15837 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=578f1ef91aa92beb571bfb9af8f4d18f405f3b9e;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git Merge tag 'mfd-3.7-1' of git://git./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 ... --- 578f1ef91aa92beb571bfb9af8f4d18f405f3b9e diff --cc Documentation/devicetree/bindings/regulator/tps6586x.txt index 07b9ef6e49d5,03dfa4e0aa75..8b40cac24d93 --- a/Documentation/devicetree/bindings/regulator/tps6586x.txt +++ b/Documentation/devicetree/bindings/regulator/tps6586x.txt @@@ -22,11 -18,12 +22,15 @@@ Required properties - vinldo678-supply: The input supply for the LDO6, LDO7 and LDO8 - vinldo9-supply: The input supply for the LDO9 + Optional properties: + - ti,system-power-controller: Telling whether or not this pmic is controlling + the system power. + Each regulator is defined using the standard binding for regulators. +Note: LDO5 and LDO_RTC is supplied by SYS regulator internally and driver + take care of making proper parent child relationship. + Example: pmu: tps6586x@34 { @@@ -37,10 -34,11 +41,12 @@@ #gpio-cells = <2>; gpio-controller; + ti,system-power-controller; + - sm0-supply = <&some_reg>; - sm1-supply = <&some_reg>; - sm2-supply = <&some_reg>; + sys-supply = <&some_reg>; + vin-sm0-supply = <&some_reg>; + vin-sm1-supply = <&some_reg>; + vin-sm2-supply = <&some_reg>; vinldo01-supply = <...>; vinldo23-supply = <...>; vinldo4-supply = <...>; diff --cc arch/arm/boot/dts/imx6q.dtsi index 35e5895ba3df,52ed4d1ff4ed..f3990b04fecf --- a/arch/arm/boot/dts/imx6q.dtsi +++ b/arch/arm/boot/dts/imx6q.dtsi @@@ -397,11 -376,10 +397,11 @@@ compatible = "fsl,imx6q-ccm"; reg = <0x020c4000 0x4000>; interrupts = <0 87 0x04 0 88 0x04>; + #clock-cells = <1>; }; - anatop@020c8000 { - compatible = "fsl,imx6q-anatop"; + anatop: anatop@020c8000 { + compatible = "fsl,imx6q-anatop", "syscon", "simple-bus"; reg = <0x020c8000 0x1000>; interrupts = <0 49 0x04 0 54 0x04 0 127 0x04>; diff --cc arch/arm/mach-imx/mach-imx6q.c index 36979d3dfe34,8d7c14140744..47c91f7185d2 --- a/arch/arm/mach-imx/mach-imx6q.c +++ b/arch/arm/mach-imx/mach-imx6q.c @@@ -22,9 -22,11 +22,10 @@@ #include #include #include -#include #include + #include #include - #include + #include #include #include #include diff --cc arch/arm/plat-omap/include/plat/usb.h index bd20588c356b,e68d0998d55f..87ee140fefaa --- a/arch/arm/plat-omap/include/plat/usb.h +++ b/arch/arm/plat-omap/include/plat/usb.h @@@ -4,7 -4,9 +4,8 @@@ #define __ASM_ARCH_OMAP_USB_H #include + #include #include -#include #define OMAP3_HS_USB_PORTS 3 diff --cc drivers/gpio/Makefile index 0ffaa8423e87,f857b463af0f..b2c109d1303d --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile @@@ -68,9 -67,9 +68,10 @@@ obj-$(CONFIG_GPIO_TPS6586X) += gpio-tps obj-$(CONFIG_GPIO_TPS65910) += gpio-tps65910.o obj-$(CONFIG_GPIO_TPS65912) += gpio-tps65912.o obj-$(CONFIG_GPIO_TWL4030) += gpio-twl4030.o + obj-$(CONFIG_GPIO_TWL6040) += gpio-twl6040.o obj-$(CONFIG_GPIO_UCB1400) += gpio-ucb1400.o obj-$(CONFIG_GPIO_VR41XX) += gpio-vr41xx.o +obj-$(CONFIG_GPIO_VT8500) += gpio-vt8500.o obj-$(CONFIG_GPIO_VX855) += gpio-vx855.o obj-$(CONFIG_GPIO_WM831X) += gpio-wm831x.o obj-$(CONFIG_GPIO_WM8350) += gpio-wm8350.o diff --cc drivers/regulator/Kconfig index e98a5e7827df,2ae1d97fac1e..67d47b59a66d --- a/drivers/regulator/Kconfig +++ b/drivers/regulator/Kconfig @@@ -109,20 -110,9 +109,20 @@@ config REGULATOR_DA905 This driver supports the voltage regulators of DA9052-BC and DA9053-AA/Bx PMIC. +config REGULATOR_FAN53555 + tristate "Fairchild FAN53555 Regulator" + depends on I2C + select REGMAP_I2C + help + This driver supports Fairchild FAN53555 Digitally Programmable + TinyBuck Regulator. The FAN53555 is a step-down switching voltage + regulator that delivers a digitally programmable output from an + input voltage supply of 2.5V to 5.5V. The output voltage is + programmed through an I2C interface. + config REGULATOR_ANATOP tristate "Freescale i.MX on-chip ANATOP LDO regulators" - depends on MFD_ANATOP + depends on MFD_SYSCON help Say y here to support Freescale i.MX on-chip ANATOP LDOs regulators. It is recommended that this option be diff --cc drivers/regulator/anatop-regulator.c index ce0fe72a428e,596535dd917a..1af97686f444 --- a/drivers/regulator/anatop-regulator.c +++ b/drivers/regulator/anatop-regulator.c @@@ -61,18 -64,17 +64,18 @@@ static int anatop_regmap_set_voltage_se return 0; } - static int anatop_get_voltage_sel(struct regulator_dev *reg) + static int anatop_regmap_get_voltage_sel(struct regulator_dev *reg) { struct anatop_regulator *anatop_reg = rdev_get_drvdata(reg); - u32 val; + u32 val, mask; if (!anatop_reg->control_reg) return -ENOTSUPP; - val = anatop_read_reg(anatop_reg->mfd, anatop_reg->control_reg); + regmap_read(anatop_reg->anatop, anatop_reg->control_reg, &val); - val = (val & ((1 << anatop_reg->vol_bit_width) - 1)) >> + mask = ((1 << anatop_reg->vol_bit_width) - 1) << anatop_reg->vol_bit_shift; + val = (val & mask) >> anatop_reg->vol_bit_shift; return val - anatop_reg->min_bit_val; } diff --cc include/linux/mfd/twl6040.h index ba43d4806b83,8991532d4391..a8eff4ad9be5 --- a/include/linux/mfd/twl6040.h +++ b/include/linux/mfd/twl6040.h @@@ -192,8 -194,13 +194,12 @@@ struct twl6040_vibra_data int vddvibr_uV; /* VDDVIBR volt, set 0 for fixed reg */ }; + struct twl6040_gpo_data { + int gpio_base; + }; + struct twl6040_platform_data { int audpwron_gpio; /* audio power-on gpio */ - unsigned int irq_base; struct twl6040_codec_data *codec; struct twl6040_vibra_data *vibra;