Skip to content

Commit 12e7b0a

Browse files
committed
Merge tag 'mfd-for-linus-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd
Pull MFD updates from Lee Jones: "New Drivers: - Freescale Touch Screen ADC - X-Powers AXP PMIC with RSB - TI TPS65086 Power Management IC (PMIC) New Device Support: - Supply device PCI IDs for Intel Broxton Fix-ups: - Move to clkdev_create() API; intel_quark_i2c_gpio - Complete re-write of TI's TPS65912 Power Management IC (PMIC) - Remove unnecessary function argument; axp20x - Separate out bus related code; axp20x - Coding Style changes; axp20x - Allow more drivers to be compiled as modules - Work around false positive 'used uninitialised' warning; db8500-prcmu Bug Fixes: - Remove do_div(); fsl-imx25-gcq - Fix driver init when built-in; tps65010 - Fix clock-unregister leak; intel-lpss" * tag 'mfd-for-linus-4.6' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (53 commits) mfd: intel-lpss: Pass I2C configuration via properties on BXT mfd: imx6sx: Add PCIe register definitions for iomuxc gpr mfd: ipaq-micro: Use __maybe_unused to hide pm functions mfd: max77686: Add max77802 to I2C device ID table mfd: max77686: Export OF module alias information mfd: max77686: Allow driver to be built as a module mfd: stmpe: Add the proper PWM resources mfd: tps65090: Set regmap config reg counts properly mfd: syscon: Return ENOTSUPP instead of ENOSYS when disabled mfd: as3711: Set regmap config reg counts properly mfd: rc5t583: Set regmap config reg counts properly gpio: tps65086: Add GPO driver for the TPS65086 PMIC mfd: mt6397: Add platform device ID table mfd: da9063: Fix missing volatile registers in the core regmap_range volatile lists mfd: mt6397: Add MT6323 support to MT6397 driver mfd: mt6397: Add support for different Slave types mfd: mt6397: int_con and int_status may vary in location dt-bindings: mfd: Add bindings for the MediaTek MT6323 PMIC mfd: da9062: Fix missing volatile registers in the core regmap_range volatile lists mfd: Add documentation for ACT8945A DT bindings ...
2 parents 021f163 + 0343b2f commit 12e7b0a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+3256
-277
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
Freescale i.MX25 ADC GCQ device
2+
3+
This is a generic conversion queue device that can convert any of the
4+
analog inputs using the ADC unit of the i.MX25.
5+
6+
Required properties:
7+
- compatible: Should be "fsl,imx25-gcq".
8+
- reg: Should be the register range of the module.
9+
- interrupts: Should be the interrupt number of the module.
10+
Typically this is <1>.
11+
- interrupt-parent: phandle to the tsadc module of the i.MX25.
12+
- #address-cells: Should be <1> (setting for the subnodes)
13+
- #size-cells: Should be <0> (setting for the subnodes)
14+
15+
Optional properties:
16+
- vref-ext-supply: The regulator supplying the ADC reference voltage.
17+
Required when at least one subnode uses the this reference.
18+
- vref-xp-supply: The regulator supplying the ADC reference voltage on pin XP.
19+
Required when at least one subnode uses this reference.
20+
- vref-yp-supply: The regulator supplying the ADC reference voltage on pin YP.
21+
Required when at least one subnode uses this reference.
22+
23+
Sub-nodes:
24+
Optionally you can define subnodes which define the reference voltage
25+
for the analog inputs.
26+
27+
Required properties for subnodes:
28+
- reg: Should be the number of the analog input.
29+
0: xp
30+
1: yp
31+
2: xn
32+
3: yn
33+
4: wiper
34+
5: inaux0
35+
6: inaux1
36+
7: inaux2
37+
Optional properties for subnodes:
38+
- fsl,adc-refp: specifies the positive reference input as defined in
39+
<dt-bindings/iio/adc/fsl-imx25-gcq.h>
40+
- fsl,adc-refn: specifies the negative reference input as defined in
41+
<dt-bindings/iio/adc/fsl-imx25-gcq.h>
42+
43+
Example:
44+
45+
adc: adc@50030800 {
46+
compatible = "fsl,imx25-gcq";
47+
reg = <0x50030800 0x60>;
48+
interrupt-parent = <&tscadc>;
49+
interrupts = <1>;
50+
#address-cells = <1>;
51+
#size-cells = <0>;
52+
53+
inaux@5 {
54+
reg = <5>;
55+
fsl,adc-refp = <MX25_ADC_REFP_INT>;
56+
fsl,adc-refn = <MX25_ADC_REFN_NGND>;
57+
};
58+
};
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
Freescale mx25 TS conversion queue module
2+
3+
mx25 touchscreen conversion queue module which controls the ADC unit of the
4+
mx25 for attached touchscreens.
5+
6+
Required properties:
7+
- compatible: Should be "fsl,imx25-tcq".
8+
- reg: Memory range of the device.
9+
- interrupts: Should be the interrupt number associated with this module within
10+
the tscadc unit (<0>).
11+
- interrupt-parent: Should be a phandle to the tscadc unit.
12+
- fsl,wires: Should be '<4>' or '<5>'
13+
14+
Optional properties:
15+
- fsl,pen-debounce-ns: Pen debounce time in nanoseconds.
16+
- fsl,pen-threshold: Pen-down threshold for the touchscreen. This is a value
17+
between 1 and 4096. It is the ratio between the internal reference voltage
18+
and the measured voltage after the plate was precharged. Resistence between
19+
plates and therefore the voltage decreases with pressure so that a smaller
20+
value is equivalent to a higher pressure.
21+
- fsl,settling-time-ns: Settling time in nanoseconds. The settling time is before
22+
the actual touch detection to wait for an even charge distribution in the
23+
plate.
24+
25+
This device includes two conversion queues which can be added as subnodes.
26+
The first queue is for the touchscreen, the second for general purpose ADC.
27+
28+
Example:
29+
tsc: tcq@50030400 {
30+
compatible = "fsl,imx25-tcq";
31+
reg = <0x50030400 0x60>;
32+
interrupt-parent = <&tscadc>;
33+
interrupts = <0>;
34+
fsl,wires = <4>;
35+
};
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
Device-Tree bindings for Active-semi ACT8945A MFD driver
2+
3+
Required properties:
4+
- compatible: "active-semi,act8945a".
5+
- reg: the I2C slave address for the ACT8945A chip
6+
7+
The chip exposes two subdevices:
8+
- a regulators: see ../regulator/act8945a-regulator.txt
9+
- a charger: see ../power/act8945a-charger.txt
10+
11+
Example:
12+
pmic@5b {
13+
compatible = "active-semi,act8945a";
14+
reg = <0x5b>;
15+
status = "okay";
16+
17+
pinctrl-names = "default";
18+
pinctrl-0 = <&pinctrl_charger_chglev>;
19+
active-semi,chglev-gpio = <&pioA 12 GPIO_ACTIVE_HIGH>;
20+
active-semi,input-voltage-threshold-microvolt = <6600>;
21+
active-semi,precondition-timeout = <40>;
22+
active-semi,total-timeout = <3>;
23+
24+
active-semi,vsel-high;
25+
26+
regulators {
27+
vdd_1v35_reg: REG_DCDC1 {
28+
regulator-name = "VDD_1V35";
29+
regulator-min-microvolt = <1350000>;
30+
regulator-max-microvolt = <1350000>;
31+
regulator-always-on;
32+
};
33+
34+
vdd_1v2_reg: REG_DCDC2 {
35+
regulator-name = "VDD_1V2";
36+
regulator-min-microvolt = <1100000>;
37+
regulator-max-microvolt = <1300000>;
38+
regulator-always-on;
39+
};
40+
41+
vdd_3v3_reg: REG_DCDC3 {
42+
regulator-name = "VDD_3V3";
43+
regulator-min-microvolt = <3300000>;
44+
regulator-max-microvolt = <3300000>;
45+
regulator-always-on;
46+
};
47+
48+
vdd_fuse_reg: REG_LDO1 {
49+
regulator-name = "VDD_FUSE";
50+
regulator-min-microvolt = <2500000>;
51+
regulator-max-microvolt = <2500000>;
52+
regulator-always-on;
53+
};
54+
55+
vdd_3v3_lp_reg: REG_LDO2 {
56+
regulator-name = "VDD_3V3_LP";
57+
regulator-min-microvolt = <3300000>;
58+
regulator-max-microvolt = <3300000>;
59+
regulator-always-on;
60+
};
61+
62+
vdd_led_reg: REG_LDO3 {
63+
regulator-name = "VDD_LED";
64+
regulator-min-microvolt = <3300000>;
65+
regulator-max-microvolt = <3300000>;
66+
regulator-always-on;
67+
};
68+
69+
vdd_sdhc_1v8_reg: REG_LDO4 {
70+
regulator-name = "VDD_SDHC_1V8";
71+
regulator-min-microvolt = <1800000>;
72+
regulator-max-microvolt = <1800000>;
73+
regulator-always-on;
74+
};
75+
};
76+
};

Documentation/devicetree/bindings/mfd/axp20x.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ axp152 (X-Powers)
55
axp202 (X-Powers)
66
axp209 (X-Powers)
77
axp221 (X-Powers)
8+
axp223 (X-Powers)
89

910
Required properties:
1011
- compatible: "x-powers,axp152", "x-powers,axp202", "x-powers,axp209",
11-
"x-powers,axp221"
12-
- reg: The I2C slave address for the AXP chip
12+
"x-powers,axp221", "x-powers,axp223"
13+
- reg: The I2C slave address or RSB hardware address for the AXP chip
1314
- interrupt-parent: The parent interrupt controller
1415
- interrupts: SoC NMI / GPIO interrupt connected to the PMIC's IRQ pin
1516
- interrupt-controller: The PMIC has its own internal IRQs
@@ -51,7 +52,7 @@ LDO3 : LDO : ldo3in-supply
5152
LDO4 : LDO : ldo24in-supply : shared supply
5253
LDO5 : LDO : ldo5in-supply
5354

54-
AXP221 regulators, type, and corresponding input supply names:
55+
AXP221/AXP223 regulators, type, and corresponding input supply names:
5556

5657
Regulator Type Supply Name Notes
5758
--------- ---- ----------- -----
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
Freescale MX25 ADC/TSC MultiFunction Device (MFD)
2+
3+
This device combines two general purpose conversion queues one used for general
4+
ADC and the other used for touchscreens.
5+
6+
Required properties:
7+
- compatible: Should be "fsl,imx25-tsadc".
8+
- reg: Start address and size of the memory area of
9+
the device
10+
- interrupts: Interrupt for this device
11+
(See: ../interrupt-controller/interrupts.txt)
12+
- clocks: An 'ipg' clock (See: ../clock/clock-bindings.txt)
13+
- interrupt-controller: This device is an interrupt controller. It
14+
controls the interrupts of both
15+
conversion queues.
16+
- #interrupt-cells: Should be '<1>'.
17+
- #address-cells: Should be '<1>'.
18+
- #size-cells: Should be '<1>'.
19+
20+
This device includes two conversion queues which can be added as subnodes.
21+
The first queue is for the touchscreen, the second for general purpose ADC.
22+
23+
Example:
24+
tscadc: tscadc@50030000 {
25+
compatible = "fsl,imx25-tsadc";
26+
reg = <0x50030000 0xc>;
27+
interrupts = <46>;
28+
clocks = <&clks 119>;
29+
clock-names = "ipg";
30+
interrupt-controller;
31+
#interrupt-cells = <1>;
32+
#address-cells = <1>;
33+
#size-cells = <1>;
34+
ranges;
35+
36+
tsc: tcq@50030400 {
37+
compatible = "fsl,imx25-tcq";
38+
reg = <0x50030400 0x60>;
39+
...
40+
};
41+
42+
adc: gcq@50030800 {
43+
compatible = "fsl,imx25-gcq";
44+
reg = <0x50030800 0x60>;
45+
...
46+
};
47+
};

Documentation/devicetree/bindings/mfd/mt6397.txt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
MediaTek MT6397 Multifunction Device Driver
1+
MediaTek MT6397/MT6323 Multifunction Device Driver
22

3-
MT6397 is a multifunction device with the following sub modules:
3+
MT6397/MT6323 is a multifunction device with the following sub modules:
44
- Regulator
55
- RTC
66
- Audio codec
77
- GPIO
88
- Clock
99

1010
It is interfaced to host controller using SPI interface by a proprietary hardware
11-
called PMIC wrapper or pwrap. MT6397 MFD is a child device of pwrap.
11+
called PMIC wrapper or pwrap. MT6397/MT6323 MFD is a child device of pwrap.
1212
See the following for pwarp node definitions:
1313
Documentation/devicetree/bindings/soc/pwrap.txt
1414

1515
This document describes the binding for MFD device and its sub module.
1616

1717
Required properties:
18-
compatible: "mediatek,mt6397"
18+
compatible: "mediatek,mt6397" or "mediatek,mt6323"
1919

2020
Optional subnodes:
2121

@@ -26,6 +26,8 @@ Optional subnodes:
2626
Required properties:
2727
- compatible: "mediatek,mt6397-regulator"
2828
see Documentation/devicetree/bindings/regulator/mt6397-regulator.txt
29+
- compatible: "mediatek,mt6323-regulator"
30+
see Documentation/devicetree/bindings/regulator/mt6323-regulator.txt
2931
- codec
3032
Required properties:
3133
- compatible: "mediatek,mt6397-codec"
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
* TPS65086 Power Management Integrated Circuit (PMIC) bindings
2+
3+
Required properties:
4+
- compatible : Should be "ti,tps65086".
5+
- reg : I2C slave address.
6+
- interrupt-parent : Phandle to the parent interrupt controller.
7+
- interrupts : The interrupt line the device is connected to.
8+
- interrupt-controller : Marks the device node as an interrupt controller.
9+
- #interrupt-cells : The number of cells to describe an IRQ, should be 2.
10+
The first cell is the IRQ number.
11+
The second cell is the flags, encoded as trigger
12+
masks from ../interrupt-controller/interrupts.txt.
13+
- gpio-controller : Marks the device node as a GPIO Controller.
14+
- #gpio-cells : Should be two. The first cell is the pin number and
15+
the second cell is used to specify flags.
16+
See ../gpio/gpio.txt for more information.
17+
- regulators: : List of child nodes that specify the regulator
18+
initialization data. Child nodes must be named
19+
after their hardware counterparts: buck[1-6],
20+
ldoa[1-3], swa1, swb[1-2], and vtt. Each child
21+
node is defined using the standard binding for
22+
regulators and the optional regulator properties
23+
defined below.
24+
25+
Optional regulator properties:
26+
- ti,regulator-step-size-25mv : This is applicable for buck[1,2,6], set this
27+
if the regulator is factory set with a 25mv
28+
step voltage mapping.
29+
- ti,regulator-decay : This is applicable for buck[1-6], set this if
30+
the output needs to decay, default is for
31+
the output to slew down.
32+
33+
Example:
34+
35+
pmic: tps65086@5e {
36+
compatible = "ti,tps65086";
37+
reg = <0x5e>;
38+
interrupt-parent = <&gpio1>;
39+
interrupts = <28 IRQ_TYPE_LEVEL_LOW>;
40+
interrupt-controller;
41+
#interrupt-cells = <2>;
42+
gpio-controller;
43+
#gpio-cells = <2>;
44+
45+
regulators {
46+
buck1 {
47+
regulator-name = "vcc1";
48+
regulator-min-microvolt = <1600000>;
49+
regulator-max-microvolt = <1600000>;
50+
regulator-boot-on;
51+
ti,regulator-decay;
52+
ti,regulator-step-size-25mv;
53+
};
54+
};
55+
};

drivers/gpio/Kconfig

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -898,6 +898,12 @@ config GPIO_TIMBERDALE
898898
---help---
899899
Add support for the GPIO IP in the timberdale FPGA.
900900

901+
config GPIO_TPS65086
902+
tristate "TI TPS65086 GPO"
903+
depends on MFD_TPS65086
904+
help
905+
This driver supports the GPO on TI TPS65086x PMICs.
906+
901907
config GPIO_TPS65218
902908
tristate "TPS65218 GPIO"
903909
depends on MFD_TPS65218

drivers/gpio/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ obj-$(CONFIG_ARCH_TEGRA) += gpio-tegra.o
9999
obj-$(CONFIG_GPIO_TIMBERDALE) += gpio-timberdale.o
100100
obj-$(CONFIG_GPIO_PALMAS) += gpio-palmas.o
101101
obj-$(CONFIG_GPIO_TPIC2810) += gpio-tpic2810.o
102+
obj-$(CONFIG_GPIO_TPS65086) += gpio-tps65086.o
102103
obj-$(CONFIG_GPIO_TPS65218) += gpio-tps65218.o
103104
obj-$(CONFIG_GPIO_TPS6586X) += gpio-tps6586x.o
104105
obj-$(CONFIG_GPIO_TPS65910) += gpio-tps65910.o

0 commit comments

Comments
 (0)