-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'mfd-for-linus-3.18' of git://git.kernel.org/pub/scm/linux/…
…kernel/git/lee/mfd Pull MFD updates from Lee Jones: "Changes to existing drivers: - DT clean-ups in da9055-core, max14577, rn5t618, arizona, hi6421, stmpe, twl4030 - Export symbols for use in modules in max14577 - Plenty of static code analysis/Coccinelle fixes throughout the SS - Regmap clean-ups in arizona, wm5102, wm5110, da9052, tps65217, rk808 - Remove unused/duplicate code in da9052, 88pm860x, ti_ssp, lpc_sch, arizona - Bug fixes in ti_am335x_tscadc, da9052, ti_am335x_tscadc, rtsx_pcr - IRQ fixups in arizona, stmpe, max14577 - Regulator related changes in axp20x - Pass DMA coherency information from parent => child in MFD core - Rename DT document files for consistency - Add ACPI support to the MFD core - Add Andreas Werner to MAINTAINERS for MEN F21BMC New drivers/supported devices: - New driver for MEN 14F021P00 Board Management Controller - New driver for Ricoh RN5T618 PMIC - New driver for Rockchip RK808 - New driver for HiSilicon Hi6421 PMIC - New driver for Qualcomm SPMI PMICs - Add support for Intel Braswell in lpc_ich - Add support for Intel 9 Series PCH in lpc_ich - Add support for Intel Quark ILB in lpc_sch" [ Delayed to after the poweer/reset pull due to Kconfig problems with recursive Kconfig select/depends-on chains. - Linus ] * tag 'mfd-for-linus-3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (79 commits) mfd: cros_ec: wait for completion of commands that return IN_PROGRESS i2c: i2c-cros-ec-tunnel: Set retries to 3 mfd: cros_ec: move locking into cros_ec_cmd_xfer mfd: cros_ec: stop calling ->cmd_xfer() directly mfd: cros_ec: Delay for 50ms when we see EC_CMD_REBOOT_EC MAINTAINERS: Adds Andreas Werner to maintainers list for MEN F21BMC mfd: arizona: Correct mask to allow setting micbias external cap mfd: Add ACPI support Revert "mfd: wm5102: Manually apply register patch" mfd: ti_am335x_tscadc: Update logic in CTRL register for 5-wire TS mfd: dt-bindings: atmel-gpbr: Rename doc file to conform to naming convention mfd: dt-bindings: qcom-pm8xxx: Rename doc file to conform to naming convention mfd: Inherit coherent_dma_mask from parent device mfd: Document DT bindings for Qualcomm SPMI PMICs mfd: Add support for Qualcomm SPMI PMICs mfd: dt-bindings: pm8xxx: Add new compatible string mfd: axp209x: Drop the parent supplies field mfd: twl4030-power: Use 'ti,system-power-controller' as alternative way to support system power off mfd: dt-bindings: twl4030-power: Use the standard property to mark power control mfd: syscon: Add Atmel GPBR DT bindings documention ...
- Loading branch information
Showing
70 changed files
with
2,061 additions
and
403 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
* Device tree bindings for Atmel GPBR (General Purpose Backup Registers) | ||
|
||
The GPBR are a set of battery-backed registers. | ||
|
||
Required properties: | ||
- compatible: "atmel,at91sam9260-gpbr", "syscon" | ||
- reg: contains offset/length value of the GPBR memory | ||
region. | ||
|
||
Example: | ||
|
||
gpbr: gpbr@fffffd50 { | ||
compatible = "atmel,at91sam9260-gpbr", "syscon"; | ||
reg = <0xfffffd50 0x10>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
* HI6421 Multi-Functional Device (MFD), by HiSilicon Ltd. | ||
|
||
Required parent device properties: | ||
- compatible : contains "hisilicon,hi6421-pmic"; | ||
- reg : register range space of hi6421; | ||
|
||
Supported Hi6421 sub-devices include: | ||
|
||
Device IRQ Names Supply Names Description | ||
------ --------- ------------ ----------- | ||
regulators : None : None : Regulators | ||
|
||
Required child device properties: | ||
None. | ||
|
||
Example: | ||
hi6421 { | ||
compatible = "hisilicon,hi6421-pmic"; | ||
reg = <0xfcc00000 0x0180>; /* 0x60 << 2 */ | ||
|
||
regulators { | ||
// supply for MLC NAND/ eMMC | ||
hi6421_vout0_reg: hi6421_vout0 { | ||
regulator-name = "VOUT0"; | ||
regulator-min-microvolt = <2850000>; | ||
regulator-max-microvolt = <2850000>; | ||
}; | ||
|
||
// supply for 26M Oscillator | ||
hi6421_vout1_reg: hi6421_vout1 { | ||
regulator-name = "VOUT1"; | ||
regulator-min-microvolt = <1700000>; | ||
regulator-max-microvolt = <2000000>; | ||
regulator-boot-on; | ||
regulator-always-on; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
Qualcomm SPMI PMICs multi-function device bindings | ||
|
||
The Qualcomm SPMI series presently includes PM8941, PM8841 and PMA8084 | ||
PMICs. These PMICs use a QPNP scheme through SPMI interface. | ||
QPNP is effectively a partitioning scheme for dividing the SPMI extended | ||
register space up into logical pieces, and set of fixed register | ||
locations/definitions within these regions, with some of these regions | ||
specifically used for interrupt handling. | ||
|
||
The QPNP PMICs are used with the Qualcomm Snapdragon series SoCs, and are | ||
interfaced to the chip via the SPMI (System Power Management Interface) bus. | ||
Support for multiple independent functions are implemented by splitting the | ||
16-bit SPMI slave address space into 256 smaller fixed-size regions, 256 bytes | ||
each. A function can consume one or more of these fixed-size register regions. | ||
|
||
Required properties: | ||
- compatible: Should contain one of: | ||
"qcom,pm8941" | ||
"qcom,pm8841" | ||
"qcom,pma8084" | ||
or generalized "qcom,spmi-pmic". | ||
- reg: Specifies the SPMI USID slave address for this device. | ||
For more information see: | ||
Documentation/devicetree/bindings/spmi/spmi.txt | ||
|
||
Required properties for peripheral child nodes: | ||
- compatible: Should contain "qcom,xxx", where "xxx" is a peripheral name. | ||
|
||
Optional properties for peripheral child nodes: | ||
- interrupts: Interrupts are specified as a 4-tuple. For more information | ||
see: | ||
Documentation/devicetree/bindings/spmi/qcom,spmi-pmic-arb.txt | ||
- interrupt-names: Corresponding interrupt name to the interrupts property | ||
|
||
Each child node of SPMI slave id represents a function of the PMIC. In the | ||
example below the rtc device node represents a peripheral of pm8941 | ||
SID = 0. The regulator device node represents a peripheral of pm8941 SID = 1. | ||
|
||
Example: | ||
|
||
spmi { | ||
compatible = "qcom,spmi-pmic-arb"; | ||
|
||
pm8941@0 { | ||
compatible = "qcom,pm8941", "qcom,spmi-pmic"; | ||
reg = <0x0 SPMI_USID>; | ||
|
||
rtc { | ||
compatible = "qcom,rtc"; | ||
interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>; | ||
interrupt-names = "alarm"; | ||
}; | ||
}; | ||
|
||
pm8941@1 { | ||
compatible = "qcom,pm8941", "qcom,spmi-pmic"; | ||
reg = <0x1 SPMI_USID>; | ||
|
||
regulator { | ||
compatible = "qcom,regulator"; | ||
regulator-name = "8941_boost"; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,177 @@ | ||
RK808 Power Management Integrated Circuit | ||
|
||
Required properties: | ||
- compatible: "rockchip,rk808" | ||
- reg: I2C slave address | ||
- interrupt-parent: The parent interrupt controller. | ||
- interrupts: the interrupt outputs of the controller. | ||
- #clock-cells: from common clock binding; shall be set to 1 (multiple clock | ||
outputs). See <dt-bindings/clock/rockchip,rk808.h> for clock IDs. | ||
|
||
Optional properties: | ||
- clock-output-names: From common clock binding to override the | ||
default output clock name | ||
- rockchip,system-power-controller: Telling whether or not this pmic is controlling | ||
the system power. | ||
- vcc1-supply: The input supply for DCDC_REG1 | ||
- vcc2-supply: The input supply for DCDC_REG2 | ||
- vcc3-supply: The input supply for DCDC_REG3 | ||
- vcc4-supply: The input supply for DCDC_REG4 | ||
- vcc6-supply: The input supply for LDO_REG1 and LDO_REG2 | ||
- vcc7-supply: The input supply for LDO_REG3 and LDO_REG7 | ||
- vcc8-supply: The input supply for SWITCH_REG1 | ||
- vcc9-supply: The input supply for LDO_REG4 and LDO_REG5 | ||
- vcc10-supply: The input supply for LDO_REG6 | ||
- vcc11-supply: The input supply for LDO_REG8 | ||
- vcc12-supply: The input supply for SWITCH_REG2 | ||
|
||
Regulators: All the regulators of RK808 to be instantiated shall be | ||
listed in a child node named 'regulators'. Each regulator is represented | ||
by a child node of the 'regulators' node. | ||
|
||
regulator-name { | ||
/* standard regulator bindings here */ | ||
}; | ||
|
||
Following regulators of the RK808 PMIC block are supported. Note that | ||
the 'n' in regulator name, as in DCDC_REGn or LDOn, represents the DCDC or LDO | ||
number as described in RK808 datasheet. | ||
|
||
- DCDC_REGn | ||
- valid values for n are 1 to 4. | ||
- LDO_REGn | ||
- valid values for n are 1 to 8. | ||
- SWITCH_REGn | ||
- valid values for n are 1 to 2 | ||
|
||
Standard regulator bindings are used inside regulator subnodes. Check | ||
Documentation/devicetree/bindings/regulator/regulator.txt | ||
for more details | ||
|
||
Example: | ||
rk808: pmic@1b { | ||
compatible = "rockchip,rk808"; | ||
clock-output-names = "xin32k", "rk808-clkout2"; | ||
interrupt-parent = <&gpio0>; | ||
interrupts = <4 IRQ_TYPE_LEVEL_LOW>; | ||
pinctrl-names = "default"; | ||
pinctrl-0 = <&pmic_int>; | ||
reg = <0x1b>; | ||
rockchip,system-power-controller; | ||
wakeup-source; | ||
#clock-cells = <1>; | ||
|
||
vcc8-supply = <&vcc_18>; | ||
vcc9-supply = <&vcc_io>; | ||
vcc10-supply = <&vcc_io>; | ||
vcc12-supply = <&vcc_io>; | ||
vddio-supply = <&vccio_pmu>; | ||
|
||
regulators { | ||
vdd_cpu: DCDC_REG1 { | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <750000>; | ||
regulator-max-microvolt = <1300000>; | ||
regulator-name = "vdd_arm"; | ||
}; | ||
|
||
vdd_gpu: DCDC_REG2 { | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <850000>; | ||
regulator-max-microvolt = <1250000>; | ||
regulator-name = "vdd_gpu"; | ||
}; | ||
|
||
vcc_ddr: DCDC_REG3 { | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-name = "vcc_ddr"; | ||
}; | ||
|
||
vcc_io: DCDC_REG4 { | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <3300000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-name = "vcc_io"; | ||
}; | ||
|
||
vccio_pmu: LDO_REG1 { | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <3300000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-name = "vccio_pmu"; | ||
}; | ||
|
||
vcc_tp: LDO_REG2 { | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <3300000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-name = "vcc_tp"; | ||
}; | ||
|
||
vdd_10: LDO_REG3 { | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <1000000>; | ||
regulator-max-microvolt = <1000000>; | ||
regulator-name = "vdd_10"; | ||
}; | ||
|
||
vcc18_lcd: LDO_REG4 { | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <1800000>; | ||
regulator-max-microvolt = <1800000>; | ||
regulator-name = "vcc18_lcd"; | ||
}; | ||
|
||
vccio_sd: LDO_REG5 { | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <1800000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-name = "vccio_sd"; | ||
}; | ||
|
||
vdd10_lcd: LDO_REG6 { | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <1000000>; | ||
regulator-max-microvolt = <1000000>; | ||
regulator-name = "vdd10_lcd"; | ||
}; | ||
|
||
vcc_18: LDO_REG7 { | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <1800000>; | ||
regulator-max-microvolt = <1800000>; | ||
regulator-name = "vcc_18"; | ||
}; | ||
|
||
vcca_codec: LDO_REG8 { | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-min-microvolt = <3300000>; | ||
regulator-max-microvolt = <3300000>; | ||
regulator-name = "vcca_codec"; | ||
}; | ||
|
||
vcc_wl: SWITCH_REG1 { | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-name = "vcc_wl"; | ||
}; | ||
|
||
vcc_lcd: SWITCH_REG2 { | ||
regulator-always-on; | ||
regulator-boot-on; | ||
regulator-name = "vcc_lcd"; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
* Ricoh RN5T618 PMIC | ||
|
||
Ricoh RN5T618 is a power management IC which integrates 3 step-down | ||
DCDC converters, 7 low-dropout regulators, a Li-ion battery charger, | ||
fuel gauge, ADC, GPIOs and a watchdog timer. It can be controlled | ||
through a I2C interface. | ||
|
||
Required properties: | ||
- compatible: should be "ricoh,rn5t618" | ||
- reg: the I2C slave address of the device | ||
|
||
Sub-nodes: | ||
- regulators: the node is required if the regulator functionality is | ||
needed. The valid regulator names are: DCDC1, DCDC2, DCDC3, LDO1, | ||
LDO2, LDO3, LDO4, LDO5, LDORTC1 and LDORTC2. | ||
The common bindings for each individual regulator can be found in: | ||
Documentation/devicetree/bindings/regulator/regulator.txt | ||
|
||
Example: | ||
|
||
pmic@32 { | ||
compatible = "ricoh,rn5t618"; | ||
reg = <0x32>; | ||
|
||
regulators { | ||
DCDC1 { | ||
regulator-min-microvolt = <1050000>; | ||
regulator-max-microvolt = <1050000>; | ||
}; | ||
|
||
DCDC2 { | ||
regulator-min-microvolt = <1175000>; | ||
regulator-max-microvolt = <1175000>; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.