[1/3] dt-bindings: regulator/clock/mfd: Reorganize S2MPS-family bindings
diff mbox

Message ID 1449191405-3344-2-git-send-email-k.kozlowski@samsung.com
State New, archived
Headers show

Commit Message

Krzysztof Kozlowski Dec. 4, 2015, 1:10 a.m. UTC
Bindings for Samsung S2M and S5M family PMICs are in mess. They are
spread over different files and subdirectories in a non-consistent way.
The devices and respective drivers for them share a lot in common so
everything could be organized in a more readable way.

Reorganize the S2MPS11/13/14/15 Device Tree bindings to match the
drivers for this family of devices:
 - move mfd/s2mps11.txt to mfd/samsung,sec-core.txt for the main MFD
   driver (common for entire family),
 - split clock block to clock/samsung,s2mps11.txt,
 - split regulator block to regulator/samsung,s2mps11.txt.

Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
---
 .../devicetree/bindings/clock/samsung,s2mps11.txt  |  49 +++++++
 Documentation/devicetree/bindings/mfd/s2mps11.txt  | 153 ---------------------
 .../devicetree/bindings/mfd/samsung,sec-core.txt   |  84 +++++++++++
 .../bindings/regulator/samsung,s2mps11.txt         | 102 ++++++++++++++
 MAINTAINERS                                        |   4 +-
 5 files changed, 238 insertions(+), 154 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
 delete mode 100644 Documentation/devicetree/bindings/mfd/s2mps11.txt
 create mode 100644 Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
 create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt

Comments

Mark Brown Dec. 4, 2015, 12:06 p.m. UTC | #1
On Fri, Dec 04, 2015 at 10:10:03AM +0900, Krzysztof Kozlowski wrote:
> Bindings for Samsung S2M and S5M family PMICs are in mess. They are
> spread over different files and subdirectories in a non-consistent way.
> The devices and respective drivers for them share a lot in common so
> everything could be organized in a more readable way.

Acked-by: Mark Brown <broonie@kernel.org>
Rob Herring Dec. 4, 2015, 3:13 p.m. UTC | #2
On Fri, Dec 04, 2015 at 10:10:03AM +0900, Krzysztof Kozlowski wrote:
> Bindings for Samsung S2M and S5M family PMICs are in mess. They are
> spread over different files and subdirectories in a non-consistent way.
> The devices and respective drivers for them share a lot in common so
> everything could be organized in a more readable way.
> 
> Reorganize the S2MPS11/13/14/15 Device Tree bindings to match the
> drivers for this family of devices:
>  - move mfd/s2mps11.txt to mfd/samsung,sec-core.txt for the main MFD
>    driver (common for entire family),
>  - split clock block to clock/samsung,s2mps11.txt,
>  - split regulator block to regulator/samsung,s2mps11.txt.
> 
> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Acked-by: Rob Herring <robh@kernel.org>

> ---
>  .../devicetree/bindings/clock/samsung,s2mps11.txt  |  49 +++++++
>  Documentation/devicetree/bindings/mfd/s2mps11.txt  | 153 ---------------------
>  .../devicetree/bindings/mfd/samsung,sec-core.txt   |  84 +++++++++++
>  .../bindings/regulator/samsung,s2mps11.txt         | 102 ++++++++++++++
>  MAINTAINERS                                        |   4 +-
>  5 files changed, 238 insertions(+), 154 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
>  delete mode 100644 Documentation/devicetree/bindings/mfd/s2mps11.txt
>  create mode 100644 Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
>  create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt
> 
> diff --git a/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt b/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
> new file mode 100644
> index 000000000000..2726c1d58a79
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
> @@ -0,0 +1,49 @@
> +Binding for Samsung S2M and S5M family clock generator block
> +============================================================
> +
> +This is a part of device tree bindings for S2M and S5M family multi-function
> +devices.
> +More information can be found in bindings/mfd/sec-core.txt file.
> +
> +The S2MPS11/13/15 and S5M8767 provide three(AP/CP/BT) buffered 32.768 kHz
> +outputs. The S2MPS14 provides two (AP/BT) buffered 32.768 KHz outputs.
> +
> +To register these as clocks with common clock framework instantiate under
> +main device node a sub-node named "clocks".
> +
> +It uses the common clock binding documented in:
> + - Documentation/devicetree/bindings/clock/clock-bindings.txt
> +
> +
> +Required properties of the "clocks" sub-node:
> + - #clock-cells: should be 1.
> + - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk",
> +               "samsung,s2mps14-clk", "samsung,s5m8767-clk"
> +   The S2MPS15 uses the same compatible as S2MPS13, as both provides similar
> +   clocks.
> +
> +
> +Each clock is assigned an identifier and client nodes use this identifier
> +to specify the clock which they consume.
> +    Clock               ID           Devices
> +    ----------------------------------------------------------
> +    32KhzAP		0            S2MPS11/13/14/15, S5M8767
> +    32KhzCP		1            S2MPS11/13/15, S5M8767
> +    32KhzBT		2            S2MPS11/13/14/15, S5M8767
> +
> +Include dt-bindings/clock/samsung,s2mps11.h file to use preprocessor defines
> +in device tree sources.
> +
> +
> +Example:
> +
> +	s2mps11_pmic@66 {
> +		compatible = "samsung,s2mps11-pmic";
> +		reg = <0x66>;
> +
> +		s2m_osc: clocks {
> +			compatible = "samsung,s2mps11-clk";
> +			#clock-cells = <1>;
> +			clock-output-names = "xx", "yy", "zz";
> +		};
> +	};
> diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt b/Documentation/devicetree/bindings/mfd/s2mps11.txt
> deleted file mode 100644
> index 09b94c97faac..000000000000
> --- a/Documentation/devicetree/bindings/mfd/s2mps11.txt
> +++ /dev/null
> @@ -1,153 +0,0 @@
> -
> -* Samsung S2MPS11/13/14/15 and S2MPU02 Voltage and Current Regulator
> -
> -The Samsung S2MPS11 is a multi-function device which includes voltage and
> -current regulators, RTC, charger controller and other sub-blocks. It is
> -interfaced to the host controller using an I2C interface. Each sub-block is
> -addressed by the host system using different I2C slave addresses.
> -
> -Required properties:
> -- compatible: Should be one of the following
> -	- "samsung,s2mps11-pmic"
> -	- "samsung,s2mps13-pmic"
> -	- "samsung,s2mps14-pmic"
> -	- "samsung,s2mps15-pmic"
> -	- "samsung,s2mpu02-pmic".
> -- reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
> -
> -Optional properties:
> -- interrupt-parent: Specifies the phandle of the interrupt controller to which
> -  the interrupts from s2mps11 are delivered to.
> -- interrupts: Interrupt specifiers for interrupt sources.
> -- samsung,s2mps11-wrstbi-ground: Indicates that WRSTBI pin of PMIC is pulled
> -  down. When the system is suspended it will always go down thus triggerring
> -  unwanted buck warm reset (setting buck voltages to default values).
> -- samsung,s2mps11-acokb-ground: Indicates that ACOKB pin of S2MPS11 PMIC is
> -  connected to the ground so the PMIC must manually set PWRHOLD bit in CTRL1
> -  register to turn off the power. Usually the ACOKB is pulled up to VBATT so
> -  when PWRHOLD pin goes low, the rising ACOKB will trigger power off.
> -
> -Optional nodes:
> -- clocks: s2mps11, s2mps13, s2mps15 and s5m8767 provide three(AP/CP/BT) buffered 32.768
> -  KHz outputs, so to register these as clocks with common clock framework
> -  instantiate a sub-node named "clocks". It uses the common clock binding
> -  documented in :
> -  [Documentation/devicetree/bindings/clock/clock-bindings.txt]
> -  The s2mps14 provides two (AP/BT) buffered 32.768 KHz outputs.
> -  - #clock-cells: should be 1.
> -
> -  - The following is the list of clocks generated by the controller. Each clock
> -    is assigned an identifier and client nodes use this identifier to specify
> -    the clock which they consume.
> -    Clock               ID           Devices
> -    ----------------------------------------------------------
> -    32KhzAP		0            S2MPS11, S2MPS13, S2MPS14, S2MPS15, S5M8767
> -    32KhzCP		1            S2MPS11, S2MPS13, S2MPS15, S5M8767
> -    32KhzBT		2            S2MPS11, S2MPS13, S2MPS14, S2MPS15, S5M8767
> -
> -  - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk",
> -		"samsung,s2mps14-clk", "samsung,s5m8767-clk"
> -    The s2msp15 uses the same compatible as s2mps13, as both provides similar clocks.
> -
> -- regulators: The regulators of s2mps11 that have to be instantiated should be
> -included in a sub-node named 'regulators'. Regulator nodes included in this
> -sub-node should be of the format as listed below.
> -
> -	regulator_name {
> -		[standard regulator constraints....];
> -	};
> -
> - regulator-ramp-delay for BUCKs = [6250/12500/25000(default)/50000] uV/us
> -
> - BUCK[2/3/4/6] supports disabling ramp delay on hardware, so explicitly
> - regulator-ramp-delay = <0> can be used for them to disable ramp delay.
> - In the absence of the regulator-ramp-delay property, the default ramp
> - delay will be used.
> -
> -NOTE: Some BUCKs share the ramp rate setting i.e. same ramp value will be set
> -for a particular group of BUCKs. So provide same regulator-ramp-delay<value>.
> -Grouping of BUCKs sharing ramp rate setting is as follow : BUCK[1, 6],
> -BUCK[3, 4], and BUCK[7, 8, 10]
> -
> -On S2MPS14 the LDO10, LDO11 and LDO12 can be configured to external control
> -over GPIO. To turn this feature on this property must be added to the regulator
> -sub-node:
> -	- samsung,ext-control-gpios: GPIO specifier for one GPIO
> -		controlling this regulator (enable/disable);
> -Example:
> -	LDO12 {
> -		regulator-name = "V_EMMC_2.8V";
> -		regulator-min-microvolt = <2800000>;
> -		regulator-max-microvolt = <2800000>;
> -		samsung,ext-control-gpios = <&gpk0 2 0>;
> -	};
> -
> -
> -The regulator constraints inside the regulator nodes use the standard regulator
> -bindings which are documented elsewhere.
> -
> -The following are the names of the regulators that the s2mps11 pmic block
> -supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
> -as per the datasheet of s2mps11.
> -
> -	- LDOn
> -		  - valid values for n are:
> -			- S2MPS11: 1 to 38
> -			- S2MPS13: 1 to 40
> -			- S2MPS14: 1 to 25
> -			- S2MPS15: 1 to 27
> -			- S2MPU02: 1 to 28
> -		  - Example: LDO1, LDO2, LDO28
> -	- BUCKn
> -		  - valid values for n are:
> -			- S2MPS11: 1 to 10
> -			- S2MPS13: 1 to 10
> -			- S2MPS14: 1 to 5
> -			- S2MPS15: 1 to 10
> -			- S2MPU02: 1 to 7
> -		  - Example: BUCK1, BUCK2, BUCK9
> -
> -Example:
> -
> -	s2mps11_pmic@66 {
> -		compatible = "samsung,s2mps11-pmic";
> -		reg = <0x66>;
> -
> -		s2m_osc: clocks {
> -			compatible = "samsung,s2mps11-clk";
> -			#clock-cells = <1>;
> -			clock-output-names = "xx", "yy", "zz";
> -		};
> -
> -		regulators {
> -			ldo1_reg: LDO1 {
> -				regulator-name = "VDD_ABB_3.3V";
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -			};
> -
> -			ldo2_reg: LDO2 {
> -				regulator-name = "VDD_ALIVE_1.1V";
> -				regulator-min-microvolt = <1100000>;
> -				regulator-max-microvolt = <1100000>;
> -				regulator-always-on;
> -			};
> -
> -			buck1_reg: BUCK1 {
> -				regulator-name = "vdd_mif";
> -				regulator-min-microvolt = <950000>;
> -				regulator-max-microvolt = <1350000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -
> -			buck2_reg: BUCK2 {
> -				regulator-name = "vdd_arm";
> -				regulator-min-microvolt = <950000>;
> -				regulator-max-microvolt = <1350000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-ramp-delay = <50000>;
> -			};
> -		};
> -	};
> diff --git a/Documentation/devicetree/bindings/mfd/samsung,sec-core.txt b/Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
> new file mode 100644
> index 000000000000..ef0166d0f643
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
> @@ -0,0 +1,84 @@
> +Binding for Samsung S2M and S5M family multi-function device
> +============================================================
> +
> +This is a part of device tree bindings for S2M and S5M family multi-function
> +devices.
> +
> +The Samsung S2MPS11/13/14/15, S2MPU02 and S5M8767 is a family
> +of multi-function devices which include voltage and current regulators, RTC,
> +charger controller, clock outputs and other sub-blocks. It is interfaced
> +to the host controller using an I2C interface. Each sub-block is usually
> +addressed by the host system using different I2C slave addresses.
> +
> +
> +This document describes bindings for main device node. Optional sub-blocks
> +must be a sub-nodes to it. Bindings for them can be found in:
> + - bindings/regulator/samsung,s2mps11.txt
> + - bindings/clock/samsung,s2mps11.txt
> +
> +
> +Required properties:
> + - compatible: Should be one of the following
> +	- "samsung,s2mps11-pmic",
> +	- "samsung,s2mps13-pmic",
> +	- "samsung,s2mps14-pmic",
> +	- "samsung,s2mps15-pmic",
> +	- "samsung,s2mpu02-pmic".
> + - reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
> +
> +Optional properties:
> + - interrupt-parent: Specifies the phandle of the interrupt controller to which
> +   the interrupts from s2mps11 are delivered to.
> + - interrupts: Interrupt specifiers for interrupt sources.
> + - samsung,s2mps11-wrstbi-ground: Indicates that WRSTBI pin of PMIC is pulled
> +   down. When the system is suspended it will always go down thus triggerring
> +   unwanted buck warm reset (setting buck voltages to default values).
> + - samsung,s2mps11-acokb-ground: Indicates that ACOKB pin of S2MPS11 PMIC is
> +   connected to the ground so the PMIC must manually set PWRHOLD bit in CTRL1
> +   register to turn off the power. Usually the ACOKB is pulled up to VBATT so
> +   when PWRHOLD pin goes low, the rising ACOKB will trigger power off.
> +
> +Example:
> +
> +	s2mps11_pmic@66 {
> +		compatible = "samsung,s2mps11-pmic";
> +		reg = <0x66>;
> +
> +		s2m_osc: clocks {
> +			compatible = "samsung,s2mps11-clk";
> +			#clock-cells = <1>;
> +			clock-output-names = "xx", "yy", "zz";
> +		};
> +
> +		regulators {
> +			ldo1_reg: LDO1 {
> +				regulator-name = "VDD_ABB_3.3V";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			ldo2_reg: LDO2 {
> +				regulator-name = "VDD_ALIVE_1.1V";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +			};
> +
> +			buck1_reg: BUCK1 {
> +				regulator-name = "vdd_mif";
> +				regulator-min-microvolt = <950000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +			};
> +
> +			buck2_reg: BUCK2 {
> +				regulator-name = "vdd_arm";
> +				regulator-min-microvolt = <950000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-ramp-delay = <50000>;
> +			};
> +		};
> +	};
> diff --git a/Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt b/Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt
> new file mode 100644
> index 000000000000..27a48bf1b185
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt
> @@ -0,0 +1,102 @@
> +Binding for Samsung S2M family regulator block
> +==============================================
> +
> +This is a part of device tree bindings for S2M family multi-function devices.
> +More information can be found in bindings/mfd/sec-core.txt file.
> +
> +The S2MPS11/13/14/15 and S2MPU02 devices provide buck and LDO regulators.
> +
> +To register these with regulator framework instantiate under main device node
> +a sub-node named "regulators" with more sub-nodes for each regulator using the
> +common regulator binding documented in:
> + - Documentation/devicetree/bindings/regulator/regulator.txt
> +
> +
> +Names of regulators supported by different devices:
> +	- LDOn
> +		  - valid values for n are:
> +			- S2MPS11: 1 to 38
> +			- S2MPS13: 1 to 40
> +			- S2MPS14: 1 to 25
> +			- S2MPS15: 1 to 27
> +			- S2MPU02: 1 to 28
> +		  - Example: LDO1, LDO2, LDO28
> +	- BUCKn
> +		  - valid values for n are:
> +			- S2MPS11: 1 to 10
> +			- S2MPS13: 1 to 10
> +			- S2MPS14: 1 to 5
> +			- S2MPS15: 1 to 10
> +			- S2MPU02: 1 to 7
> +		  - Example: BUCK1, BUCK2, BUCK9
> +Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
> +as per the datasheet of device.
> +
> +
> +Optional properties of the nodes under "regulators" sub-node:
> + - regulator-ramp-delay: ramp delay in uV/us. May be 6250, 12500,
> +   25000 (default) or 50000.
> +
> +   Additionally S2MPS11 supports disabling ramp delay for BUCK{2,3,4,6}
> +   by setting it to <0>.
> +
> +   Note: On S2MPS11 some bucks share the ramp rate setting i.e. same ramp value
> +   will be set for a particular group of bucks so provide the same
> +   regulator-ramp-delay value for them.
> +   Groups sharing ramp rate:
> +    - buck{1,6},
> +    - buck{3,4},
> +    - buck{7,8,10}.
> +
> + - samsung,ext-control-gpios: On S2MPS14 the LDO10, LDO11 and LDO12 can be
> +   configured to external control over GPIO. To turn this feature on this
> +   property must be added to the regulator sub-node:
> +    - samsung,ext-control-gpios: GPIO specifier for one GPIO
> +                                 controlling this regulator (enable/disable)
> +  Example:
> +	LDO12 {
> +		regulator-name = "V_EMMC_2.8V";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		samsung,ext-control-gpios = <&gpk0 2 0>;
> +	};
> +
> +
> +Example:
> +
> +	s2mps11_pmic@66 {
> +		compatible = "samsung,s2mps11-pmic";
> +		reg = <0x66>;
> +
> +		regulators {
> +			ldo1_reg: LDO1 {
> +				regulator-name = "VDD_ABB_3.3V";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			ldo2_reg: LDO2 {
> +				regulator-name = "VDD_ALIVE_1.1V";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +			};
> +
> +			buck1_reg: BUCK1 {
> +				regulator-name = "vdd_mif";
> +				regulator-min-microvolt = <950000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +			};
> +
> +			buck2_reg: BUCK2 {
> +				regulator-name = "vdd_arm";
> +				regulator-min-microvolt = <950000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-ramp-delay = <50000>;
> +			};
> +		};
> +	};
> diff --git a/MAINTAINERS b/MAINTAINERS
> index f3de00113ae8..137284e37250 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -9234,7 +9234,9 @@ F:	drivers/clk/clk-s2mps11.c
>  F:	drivers/rtc/rtc-s5m.c
>  F:	include/linux/mfd/samsung/
>  F:	Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt
> -F:	Documentation/devicetree/bindings/mfd/s2mp*.txt
> +F:	Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
> +F:	Documentation/devicetree/bindings/regulator/samsung,s2m*.txt
> +F:	Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
>  
>  SAMSUNG S5P/EXYNOS4 SOC SERIES CAMERA SUBSYSTEM DRIVERS
>  M:	Kyungmin Park <kyungmin.park@samsung.com>
> -- 
> 1.9.1
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Lee Jones Dec. 7, 2015, 9:38 a.m. UTC | #3
On Fri, 04 Dec 2015, Krzysztof Kozlowski wrote:

> Bindings for Samsung S2M and S5M family PMICs are in mess. They are
> spread over different files and subdirectories in a non-consistent way.
> The devices and respective drivers for them share a lot in common so
> everything could be organized in a more readable way.
> 
> Reorganize the S2MPS11/13/14/15 Device Tree bindings to match the
> drivers for this family of devices:
>  - move mfd/s2mps11.txt to mfd/samsung,sec-core.txt for the main MFD
>    driver (common for entire family),
>  - split clock block to clock/samsung,s2mps11.txt,
>  - split regulator block to regulator/samsung,s2mps11.txt.
> 
> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> ---
>  .../devicetree/bindings/clock/samsung,s2mps11.txt  |  49 +++++++
>  Documentation/devicetree/bindings/mfd/s2mps11.txt  | 153 ---------------------
>  .../devicetree/bindings/mfd/samsung,sec-core.txt   |  84 +++++++++++

Acked-by: Lee Jones <lee.jones@linaro.org>

>  .../bindings/regulator/samsung,s2mps11.txt         | 102 ++++++++++++++
>  MAINTAINERS                                        |   4 +-
>  5 files changed, 238 insertions(+), 154 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
>  delete mode 100644 Documentation/devicetree/bindings/mfd/s2mps11.txt
>  create mode 100644 Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
>  create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt
> 
> diff --git a/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt b/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
> new file mode 100644
> index 000000000000..2726c1d58a79
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
> @@ -0,0 +1,49 @@
> +Binding for Samsung S2M and S5M family clock generator block
> +============================================================
> +
> +This is a part of device tree bindings for S2M and S5M family multi-function
> +devices.
> +More information can be found in bindings/mfd/sec-core.txt file.
> +
> +The S2MPS11/13/15 and S5M8767 provide three(AP/CP/BT) buffered 32.768 kHz
> +outputs. The S2MPS14 provides two (AP/BT) buffered 32.768 KHz outputs.
> +
> +To register these as clocks with common clock framework instantiate under
> +main device node a sub-node named "clocks".
> +
> +It uses the common clock binding documented in:
> + - Documentation/devicetree/bindings/clock/clock-bindings.txt
> +
> +
> +Required properties of the "clocks" sub-node:
> + - #clock-cells: should be 1.
> + - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk",
> +               "samsung,s2mps14-clk", "samsung,s5m8767-clk"
> +   The S2MPS15 uses the same compatible as S2MPS13, as both provides similar
> +   clocks.
> +
> +
> +Each clock is assigned an identifier and client nodes use this identifier
> +to specify the clock which they consume.
> +    Clock               ID           Devices
> +    ----------------------------------------------------------
> +    32KhzAP		0            S2MPS11/13/14/15, S5M8767
> +    32KhzCP		1            S2MPS11/13/15, S5M8767
> +    32KhzBT		2            S2MPS11/13/14/15, S5M8767
> +
> +Include dt-bindings/clock/samsung,s2mps11.h file to use preprocessor defines
> +in device tree sources.
> +
> +
> +Example:
> +
> +	s2mps11_pmic@66 {
> +		compatible = "samsung,s2mps11-pmic";
> +		reg = <0x66>;
> +
> +		s2m_osc: clocks {
> +			compatible = "samsung,s2mps11-clk";
> +			#clock-cells = <1>;
> +			clock-output-names = "xx", "yy", "zz";
> +		};
> +	};
> diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt b/Documentation/devicetree/bindings/mfd/s2mps11.txt
> deleted file mode 100644
> index 09b94c97faac..000000000000
> --- a/Documentation/devicetree/bindings/mfd/s2mps11.txt
> +++ /dev/null
> @@ -1,153 +0,0 @@
> -
> -* Samsung S2MPS11/13/14/15 and S2MPU02 Voltage and Current Regulator
> -
> -The Samsung S2MPS11 is a multi-function device which includes voltage and
> -current regulators, RTC, charger controller and other sub-blocks. It is
> -interfaced to the host controller using an I2C interface. Each sub-block is
> -addressed by the host system using different I2C slave addresses.
> -
> -Required properties:
> -- compatible: Should be one of the following
> -	- "samsung,s2mps11-pmic"
> -	- "samsung,s2mps13-pmic"
> -	- "samsung,s2mps14-pmic"
> -	- "samsung,s2mps15-pmic"
> -	- "samsung,s2mpu02-pmic".
> -- reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
> -
> -Optional properties:
> -- interrupt-parent: Specifies the phandle of the interrupt controller to which
> -  the interrupts from s2mps11 are delivered to.
> -- interrupts: Interrupt specifiers for interrupt sources.
> -- samsung,s2mps11-wrstbi-ground: Indicates that WRSTBI pin of PMIC is pulled
> -  down. When the system is suspended it will always go down thus triggerring
> -  unwanted buck warm reset (setting buck voltages to default values).
> -- samsung,s2mps11-acokb-ground: Indicates that ACOKB pin of S2MPS11 PMIC is
> -  connected to the ground so the PMIC must manually set PWRHOLD bit in CTRL1
> -  register to turn off the power. Usually the ACOKB is pulled up to VBATT so
> -  when PWRHOLD pin goes low, the rising ACOKB will trigger power off.
> -
> -Optional nodes:
> -- clocks: s2mps11, s2mps13, s2mps15 and s5m8767 provide three(AP/CP/BT) buffered 32.768
> -  KHz outputs, so to register these as clocks with common clock framework
> -  instantiate a sub-node named "clocks". It uses the common clock binding
> -  documented in :
> -  [Documentation/devicetree/bindings/clock/clock-bindings.txt]
> -  The s2mps14 provides two (AP/BT) buffered 32.768 KHz outputs.
> -  - #clock-cells: should be 1.
> -
> -  - The following is the list of clocks generated by the controller. Each clock
> -    is assigned an identifier and client nodes use this identifier to specify
> -    the clock which they consume.
> -    Clock               ID           Devices
> -    ----------------------------------------------------------
> -    32KhzAP		0            S2MPS11, S2MPS13, S2MPS14, S2MPS15, S5M8767
> -    32KhzCP		1            S2MPS11, S2MPS13, S2MPS15, S5M8767
> -    32KhzBT		2            S2MPS11, S2MPS13, S2MPS14, S2MPS15, S5M8767
> -
> -  - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk",
> -		"samsung,s2mps14-clk", "samsung,s5m8767-clk"
> -    The s2msp15 uses the same compatible as s2mps13, as both provides similar clocks.
> -
> -- regulators: The regulators of s2mps11 that have to be instantiated should be
> -included in a sub-node named 'regulators'. Regulator nodes included in this
> -sub-node should be of the format as listed below.
> -
> -	regulator_name {
> -		[standard regulator constraints....];
> -	};
> -
> - regulator-ramp-delay for BUCKs = [6250/12500/25000(default)/50000] uV/us
> -
> - BUCK[2/3/4/6] supports disabling ramp delay on hardware, so explicitly
> - regulator-ramp-delay = <0> can be used for them to disable ramp delay.
> - In the absence of the regulator-ramp-delay property, the default ramp
> - delay will be used.
> -
> -NOTE: Some BUCKs share the ramp rate setting i.e. same ramp value will be set
> -for a particular group of BUCKs. So provide same regulator-ramp-delay<value>.
> -Grouping of BUCKs sharing ramp rate setting is as follow : BUCK[1, 6],
> -BUCK[3, 4], and BUCK[7, 8, 10]
> -
> -On S2MPS14 the LDO10, LDO11 and LDO12 can be configured to external control
> -over GPIO. To turn this feature on this property must be added to the regulator
> -sub-node:
> -	- samsung,ext-control-gpios: GPIO specifier for one GPIO
> -		controlling this regulator (enable/disable);
> -Example:
> -	LDO12 {
> -		regulator-name = "V_EMMC_2.8V";
> -		regulator-min-microvolt = <2800000>;
> -		regulator-max-microvolt = <2800000>;
> -		samsung,ext-control-gpios = <&gpk0 2 0>;
> -	};
> -
> -
> -The regulator constraints inside the regulator nodes use the standard regulator
> -bindings which are documented elsewhere.
> -
> -The following are the names of the regulators that the s2mps11 pmic block
> -supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
> -as per the datasheet of s2mps11.
> -
> -	- LDOn
> -		  - valid values for n are:
> -			- S2MPS11: 1 to 38
> -			- S2MPS13: 1 to 40
> -			- S2MPS14: 1 to 25
> -			- S2MPS15: 1 to 27
> -			- S2MPU02: 1 to 28
> -		  - Example: LDO1, LDO2, LDO28
> -	- BUCKn
> -		  - valid values for n are:
> -			- S2MPS11: 1 to 10
> -			- S2MPS13: 1 to 10
> -			- S2MPS14: 1 to 5
> -			- S2MPS15: 1 to 10
> -			- S2MPU02: 1 to 7
> -		  - Example: BUCK1, BUCK2, BUCK9
> -
> -Example:
> -
> -	s2mps11_pmic@66 {
> -		compatible = "samsung,s2mps11-pmic";
> -		reg = <0x66>;
> -
> -		s2m_osc: clocks {
> -			compatible = "samsung,s2mps11-clk";
> -			#clock-cells = <1>;
> -			clock-output-names = "xx", "yy", "zz";
> -		};
> -
> -		regulators {
> -			ldo1_reg: LDO1 {
> -				regulator-name = "VDD_ABB_3.3V";
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -			};
> -
> -			ldo2_reg: LDO2 {
> -				regulator-name = "VDD_ALIVE_1.1V";
> -				regulator-min-microvolt = <1100000>;
> -				regulator-max-microvolt = <1100000>;
> -				regulator-always-on;
> -			};
> -
> -			buck1_reg: BUCK1 {
> -				regulator-name = "vdd_mif";
> -				regulator-min-microvolt = <950000>;
> -				regulator-max-microvolt = <1350000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -
> -			buck2_reg: BUCK2 {
> -				regulator-name = "vdd_arm";
> -				regulator-min-microvolt = <950000>;
> -				regulator-max-microvolt = <1350000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-ramp-delay = <50000>;
> -			};
> -		};
> -	};
> diff --git a/Documentation/devicetree/bindings/mfd/samsung,sec-core.txt b/Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
> new file mode 100644
> index 000000000000..ef0166d0f643
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
> @@ -0,0 +1,84 @@
> +Binding for Samsung S2M and S5M family multi-function device
> +============================================================
> +
> +This is a part of device tree bindings for S2M and S5M family multi-function
> +devices.
> +
> +The Samsung S2MPS11/13/14/15, S2MPU02 and S5M8767 is a family
> +of multi-function devices which include voltage and current regulators, RTC,
> +charger controller, clock outputs and other sub-blocks. It is interfaced
> +to the host controller using an I2C interface. Each sub-block is usually
> +addressed by the host system using different I2C slave addresses.
> +
> +
> +This document describes bindings for main device node. Optional sub-blocks
> +must be a sub-nodes to it. Bindings for them can be found in:
> + - bindings/regulator/samsung,s2mps11.txt
> + - bindings/clock/samsung,s2mps11.txt
> +
> +
> +Required properties:
> + - compatible: Should be one of the following
> +	- "samsung,s2mps11-pmic",
> +	- "samsung,s2mps13-pmic",
> +	- "samsung,s2mps14-pmic",
> +	- "samsung,s2mps15-pmic",
> +	- "samsung,s2mpu02-pmic".
> + - reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
> +
> +Optional properties:
> + - interrupt-parent: Specifies the phandle of the interrupt controller to which
> +   the interrupts from s2mps11 are delivered to.
> + - interrupts: Interrupt specifiers for interrupt sources.
> + - samsung,s2mps11-wrstbi-ground: Indicates that WRSTBI pin of PMIC is pulled
> +   down. When the system is suspended it will always go down thus triggerring
> +   unwanted buck warm reset (setting buck voltages to default values).
> + - samsung,s2mps11-acokb-ground: Indicates that ACOKB pin of S2MPS11 PMIC is
> +   connected to the ground so the PMIC must manually set PWRHOLD bit in CTRL1
> +   register to turn off the power. Usually the ACOKB is pulled up to VBATT so
> +   when PWRHOLD pin goes low, the rising ACOKB will trigger power off.
> +
> +Example:
> +
> +	s2mps11_pmic@66 {
> +		compatible = "samsung,s2mps11-pmic";
> +		reg = <0x66>;
> +
> +		s2m_osc: clocks {
> +			compatible = "samsung,s2mps11-clk";
> +			#clock-cells = <1>;
> +			clock-output-names = "xx", "yy", "zz";
> +		};
> +
> +		regulators {
> +			ldo1_reg: LDO1 {
> +				regulator-name = "VDD_ABB_3.3V";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			ldo2_reg: LDO2 {
> +				regulator-name = "VDD_ALIVE_1.1V";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +			};
> +
> +			buck1_reg: BUCK1 {
> +				regulator-name = "vdd_mif";
> +				regulator-min-microvolt = <950000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +			};
> +
> +			buck2_reg: BUCK2 {
> +				regulator-name = "vdd_arm";
> +				regulator-min-microvolt = <950000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-ramp-delay = <50000>;
> +			};
> +		};
> +	};
> diff --git a/Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt b/Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt
> new file mode 100644
> index 000000000000..27a48bf1b185
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt
> @@ -0,0 +1,102 @@
> +Binding for Samsung S2M family regulator block
> +==============================================
> +
> +This is a part of device tree bindings for S2M family multi-function devices.
> +More information can be found in bindings/mfd/sec-core.txt file.
> +
> +The S2MPS11/13/14/15 and S2MPU02 devices provide buck and LDO regulators.
> +
> +To register these with regulator framework instantiate under main device node
> +a sub-node named "regulators" with more sub-nodes for each regulator using the
> +common regulator binding documented in:
> + - Documentation/devicetree/bindings/regulator/regulator.txt
> +
> +
> +Names of regulators supported by different devices:
> +	- LDOn
> +		  - valid values for n are:
> +			- S2MPS11: 1 to 38
> +			- S2MPS13: 1 to 40
> +			- S2MPS14: 1 to 25
> +			- S2MPS15: 1 to 27
> +			- S2MPU02: 1 to 28
> +		  - Example: LDO1, LDO2, LDO28
> +	- BUCKn
> +		  - valid values for n are:
> +			- S2MPS11: 1 to 10
> +			- S2MPS13: 1 to 10
> +			- S2MPS14: 1 to 5
> +			- S2MPS15: 1 to 10
> +			- S2MPU02: 1 to 7
> +		  - Example: BUCK1, BUCK2, BUCK9
> +Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
> +as per the datasheet of device.
> +
> +
> +Optional properties of the nodes under "regulators" sub-node:
> + - regulator-ramp-delay: ramp delay in uV/us. May be 6250, 12500,
> +   25000 (default) or 50000.
> +
> +   Additionally S2MPS11 supports disabling ramp delay for BUCK{2,3,4,6}
> +   by setting it to <0>.
> +
> +   Note: On S2MPS11 some bucks share the ramp rate setting i.e. same ramp value
> +   will be set for a particular group of bucks so provide the same
> +   regulator-ramp-delay value for them.
> +   Groups sharing ramp rate:
> +    - buck{1,6},
> +    - buck{3,4},
> +    - buck{7,8,10}.
> +
> + - samsung,ext-control-gpios: On S2MPS14 the LDO10, LDO11 and LDO12 can be
> +   configured to external control over GPIO. To turn this feature on this
> +   property must be added to the regulator sub-node:
> +    - samsung,ext-control-gpios: GPIO specifier for one GPIO
> +                                 controlling this regulator (enable/disable)
> +  Example:
> +	LDO12 {
> +		regulator-name = "V_EMMC_2.8V";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		samsung,ext-control-gpios = <&gpk0 2 0>;
> +	};
> +
> +
> +Example:
> +
> +	s2mps11_pmic@66 {
> +		compatible = "samsung,s2mps11-pmic";
> +		reg = <0x66>;
> +
> +		regulators {
> +			ldo1_reg: LDO1 {
> +				regulator-name = "VDD_ABB_3.3V";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			ldo2_reg: LDO2 {
> +				regulator-name = "VDD_ALIVE_1.1V";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +			};
> +
> +			buck1_reg: BUCK1 {
> +				regulator-name = "vdd_mif";
> +				regulator-min-microvolt = <950000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +			};
> +
> +			buck2_reg: BUCK2 {
> +				regulator-name = "vdd_arm";
> +				regulator-min-microvolt = <950000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-ramp-delay = <50000>;
> +			};
> +		};
> +	};
> diff --git a/MAINTAINERS b/MAINTAINERS
> index f3de00113ae8..137284e37250 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -9234,7 +9234,9 @@ F:	drivers/clk/clk-s2mps11.c
>  F:	drivers/rtc/rtc-s5m.c
>  F:	include/linux/mfd/samsung/
>  F:	Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt
> -F:	Documentation/devicetree/bindings/mfd/s2mp*.txt
> +F:	Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
> +F:	Documentation/devicetree/bindings/regulator/samsung,s2m*.txt
> +F:	Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
>  
>  SAMSUNG S5P/EXYNOS4 SOC SERIES CAMERA SUBSYSTEM DRIVERS
>  M:	Kyungmin Park <kyungmin.park@samsung.com>
Michael Turquette Dec. 24, 2015, 7:20 a.m. UTC | #4
On Thu, Dec 3, 2015 at 5:10 PM, Krzysztof Kozlowski
<k.kozlowski@samsung.com> wrote:
> Bindings for Samsung S2M and S5M family PMICs are in mess. They are
> spread over different files and subdirectories in a non-consistent way.
> The devices and respective drivers for them share a lot in common so
> everything could be organized in a more readable way.
>
> Reorganize the S2MPS11/13/14/15 Device Tree bindings to match the
> drivers for this family of devices:
>  - move mfd/s2mps11.txt to mfd/samsung,sec-core.txt for the main MFD
>    driver (common for entire family),
>  - split clock block to clock/samsung,s2mps11.txt,
>  - split regulator block to regulator/samsung,s2mps11.txt.
>
> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Acked-by: Michael Turquette <mturquette@baylibre.com>

> ---
>  .../devicetree/bindings/clock/samsung,s2mps11.txt  |  49 +++++++
>  Documentation/devicetree/bindings/mfd/s2mps11.txt  | 153 ---------------------
>  .../devicetree/bindings/mfd/samsung,sec-core.txt   |  84 +++++++++++
>  .../bindings/regulator/samsung,s2mps11.txt         | 102 ++++++++++++++
>  MAINTAINERS                                        |   4 +-
>  5 files changed, 238 insertions(+), 154 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
>  delete mode 100644 Documentation/devicetree/bindings/mfd/s2mps11.txt
>  create mode 100644 Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
>  create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt
>
> diff --git a/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt b/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
> new file mode 100644
> index 000000000000..2726c1d58a79
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
> @@ -0,0 +1,49 @@
> +Binding for Samsung S2M and S5M family clock generator block
> +============================================================
> +
> +This is a part of device tree bindings for S2M and S5M family multi-function
> +devices.
> +More information can be found in bindings/mfd/sec-core.txt file.
> +
> +The S2MPS11/13/15 and S5M8767 provide three(AP/CP/BT) buffered 32.768 kHz
> +outputs. The S2MPS14 provides two (AP/BT) buffered 32.768 KHz outputs.
> +
> +To register these as clocks with common clock framework instantiate under
> +main device node a sub-node named "clocks".
> +
> +It uses the common clock binding documented in:
> + - Documentation/devicetree/bindings/clock/clock-bindings.txt
> +
> +
> +Required properties of the "clocks" sub-node:
> + - #clock-cells: should be 1.
> + - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk",
> +               "samsung,s2mps14-clk", "samsung,s5m8767-clk"
> +   The S2MPS15 uses the same compatible as S2MPS13, as both provides similar
> +   clocks.
> +
> +
> +Each clock is assigned an identifier and client nodes use this identifier
> +to specify the clock which they consume.
> +    Clock               ID           Devices
> +    ----------------------------------------------------------
> +    32KhzAP            0            S2MPS11/13/14/15, S5M8767
> +    32KhzCP            1            S2MPS11/13/15, S5M8767
> +    32KhzBT            2            S2MPS11/13/14/15, S5M8767
> +
> +Include dt-bindings/clock/samsung,s2mps11.h file to use preprocessor defines
> +in device tree sources.
> +
> +
> +Example:
> +
> +       s2mps11_pmic@66 {
> +               compatible = "samsung,s2mps11-pmic";
> +               reg = <0x66>;
> +
> +               s2m_osc: clocks {
> +                       compatible = "samsung,s2mps11-clk";
> +                       #clock-cells = <1>;
> +                       clock-output-names = "xx", "yy", "zz";
> +               };
> +       };
> diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt b/Documentation/devicetree/bindings/mfd/s2mps11.txt
> deleted file mode 100644
> index 09b94c97faac..000000000000
> --- a/Documentation/devicetree/bindings/mfd/s2mps11.txt
> +++ /dev/null
> @@ -1,153 +0,0 @@
> -
> -* Samsung S2MPS11/13/14/15 and S2MPU02 Voltage and Current Regulator
> -
> -The Samsung S2MPS11 is a multi-function device which includes voltage and
> -current regulators, RTC, charger controller and other sub-blocks. It is
> -interfaced to the host controller using an I2C interface. Each sub-block is
> -addressed by the host system using different I2C slave addresses.
> -
> -Required properties:
> -- compatible: Should be one of the following
> -       - "samsung,s2mps11-pmic"
> -       - "samsung,s2mps13-pmic"
> -       - "samsung,s2mps14-pmic"
> -       - "samsung,s2mps15-pmic"
> -       - "samsung,s2mpu02-pmic".
> -- reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
> -
> -Optional properties:
> -- interrupt-parent: Specifies the phandle of the interrupt controller to which
> -  the interrupts from s2mps11 are delivered to.
> -- interrupts: Interrupt specifiers for interrupt sources.
> -- samsung,s2mps11-wrstbi-ground: Indicates that WRSTBI pin of PMIC is pulled
> -  down. When the system is suspended it will always go down thus triggerring
> -  unwanted buck warm reset (setting buck voltages to default values).
> -- samsung,s2mps11-acokb-ground: Indicates that ACOKB pin of S2MPS11 PMIC is
> -  connected to the ground so the PMIC must manually set PWRHOLD bit in CTRL1
> -  register to turn off the power. Usually the ACOKB is pulled up to VBATT so
> -  when PWRHOLD pin goes low, the rising ACOKB will trigger power off.
> -
> -Optional nodes:
> -- clocks: s2mps11, s2mps13, s2mps15 and s5m8767 provide three(AP/CP/BT) buffered 32.768
> -  KHz outputs, so to register these as clocks with common clock framework
> -  instantiate a sub-node named "clocks". It uses the common clock binding
> -  documented in :
> -  [Documentation/devicetree/bindings/clock/clock-bindings.txt]
> -  The s2mps14 provides two (AP/BT) buffered 32.768 KHz outputs.
> -  - #clock-cells: should be 1.
> -
> -  - The following is the list of clocks generated by the controller. Each clock
> -    is assigned an identifier and client nodes use this identifier to specify
> -    the clock which they consume.
> -    Clock               ID           Devices
> -    ----------------------------------------------------------
> -    32KhzAP            0            S2MPS11, S2MPS13, S2MPS14, S2MPS15, S5M8767
> -    32KhzCP            1            S2MPS11, S2MPS13, S2MPS15, S5M8767
> -    32KhzBT            2            S2MPS11, S2MPS13, S2MPS14, S2MPS15, S5M8767
> -
> -  - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk",
> -               "samsung,s2mps14-clk", "samsung,s5m8767-clk"
> -    The s2msp15 uses the same compatible as s2mps13, as both provides similar clocks.
> -
> -- regulators: The regulators of s2mps11 that have to be instantiated should be
> -included in a sub-node named 'regulators'. Regulator nodes included in this
> -sub-node should be of the format as listed below.
> -
> -       regulator_name {
> -               [standard regulator constraints....];
> -       };
> -
> - regulator-ramp-delay for BUCKs = [6250/12500/25000(default)/50000] uV/us
> -
> - BUCK[2/3/4/6] supports disabling ramp delay on hardware, so explicitly
> - regulator-ramp-delay = <0> can be used for them to disable ramp delay.
> - In the absence of the regulator-ramp-delay property, the default ramp
> - delay will be used.
> -
> -NOTE: Some BUCKs share the ramp rate setting i.e. same ramp value will be set
> -for a particular group of BUCKs. So provide same regulator-ramp-delay<value>.
> -Grouping of BUCKs sharing ramp rate setting is as follow : BUCK[1, 6],
> -BUCK[3, 4], and BUCK[7, 8, 10]
> -
> -On S2MPS14 the LDO10, LDO11 and LDO12 can be configured to external control
> -over GPIO. To turn this feature on this property must be added to the regulator
> -sub-node:
> -       - samsung,ext-control-gpios: GPIO specifier for one GPIO
> -               controlling this regulator (enable/disable);
> -Example:
> -       LDO12 {
> -               regulator-name = "V_EMMC_2.8V";
> -               regulator-min-microvolt = <2800000>;
> -               regulator-max-microvolt = <2800000>;
> -               samsung,ext-control-gpios = <&gpk0 2 0>;
> -       };
> -
> -
> -The regulator constraints inside the regulator nodes use the standard regulator
> -bindings which are documented elsewhere.
> -
> -The following are the names of the regulators that the s2mps11 pmic block
> -supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
> -as per the datasheet of s2mps11.
> -
> -       - LDOn
> -                 - valid values for n are:
> -                       - S2MPS11: 1 to 38
> -                       - S2MPS13: 1 to 40
> -                       - S2MPS14: 1 to 25
> -                       - S2MPS15: 1 to 27
> -                       - S2MPU02: 1 to 28
> -                 - Example: LDO1, LDO2, LDO28
> -       - BUCKn
> -                 - valid values for n are:
> -                       - S2MPS11: 1 to 10
> -                       - S2MPS13: 1 to 10
> -                       - S2MPS14: 1 to 5
> -                       - S2MPS15: 1 to 10
> -                       - S2MPU02: 1 to 7
> -                 - Example: BUCK1, BUCK2, BUCK9
> -
> -Example:
> -
> -       s2mps11_pmic@66 {
> -               compatible = "samsung,s2mps11-pmic";
> -               reg = <0x66>;
> -
> -               s2m_osc: clocks {
> -                       compatible = "samsung,s2mps11-clk";
> -                       #clock-cells = <1>;
> -                       clock-output-names = "xx", "yy", "zz";
> -               };
> -
> -               regulators {
> -                       ldo1_reg: LDO1 {
> -                               regulator-name = "VDD_ABB_3.3V";
> -                               regulator-min-microvolt = <3300000>;
> -                               regulator-max-microvolt = <3300000>;
> -                       };
> -
> -                       ldo2_reg: LDO2 {
> -                               regulator-name = "VDD_ALIVE_1.1V";
> -                               regulator-min-microvolt = <1100000>;
> -                               regulator-max-microvolt = <1100000>;
> -                               regulator-always-on;
> -                       };
> -
> -                       buck1_reg: BUCK1 {
> -                               regulator-name = "vdd_mif";
> -                               regulator-min-microvolt = <950000>;
> -                               regulator-max-microvolt = <1350000>;
> -                               regulator-always-on;
> -                               regulator-boot-on;
> -                       };
> -
> -                       buck2_reg: BUCK2 {
> -                               regulator-name = "vdd_arm";
> -                               regulator-min-microvolt = <950000>;
> -                               regulator-max-microvolt = <1350000>;
> -                               regulator-always-on;
> -                               regulator-boot-on;
> -                               regulator-ramp-delay = <50000>;
> -                       };
> -               };
> -       };
> diff --git a/Documentation/devicetree/bindings/mfd/samsung,sec-core.txt b/Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
> new file mode 100644
> index 000000000000..ef0166d0f643
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
> @@ -0,0 +1,84 @@
> +Binding for Samsung S2M and S5M family multi-function device
> +============================================================
> +
> +This is a part of device tree bindings for S2M and S5M family multi-function
> +devices.
> +
> +The Samsung S2MPS11/13/14/15, S2MPU02 and S5M8767 is a family
> +of multi-function devices which include voltage and current regulators, RTC,
> +charger controller, clock outputs and other sub-blocks. It is interfaced
> +to the host controller using an I2C interface. Each sub-block is usually
> +addressed by the host system using different I2C slave addresses.
> +
> +
> +This document describes bindings for main device node. Optional sub-blocks
> +must be a sub-nodes to it. Bindings for them can be found in:
> + - bindings/regulator/samsung,s2mps11.txt
> + - bindings/clock/samsung,s2mps11.txt
> +
> +
> +Required properties:
> + - compatible: Should be one of the following
> +       - "samsung,s2mps11-pmic",
> +       - "samsung,s2mps13-pmic",
> +       - "samsung,s2mps14-pmic",
> +       - "samsung,s2mps15-pmic",
> +       - "samsung,s2mpu02-pmic".
> + - reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
> +
> +Optional properties:
> + - interrupt-parent: Specifies the phandle of the interrupt controller to which
> +   the interrupts from s2mps11 are delivered to.
> + - interrupts: Interrupt specifiers for interrupt sources.
> + - samsung,s2mps11-wrstbi-ground: Indicates that WRSTBI pin of PMIC is pulled
> +   down. When the system is suspended it will always go down thus triggerring
> +   unwanted buck warm reset (setting buck voltages to default values).
> + - samsung,s2mps11-acokb-ground: Indicates that ACOKB pin of S2MPS11 PMIC is
> +   connected to the ground so the PMIC must manually set PWRHOLD bit in CTRL1
> +   register to turn off the power. Usually the ACOKB is pulled up to VBATT so
> +   when PWRHOLD pin goes low, the rising ACOKB will trigger power off.
> +
> +Example:
> +
> +       s2mps11_pmic@66 {
> +               compatible = "samsung,s2mps11-pmic";
> +               reg = <0x66>;
> +
> +               s2m_osc: clocks {
> +                       compatible = "samsung,s2mps11-clk";
> +                       #clock-cells = <1>;
> +                       clock-output-names = "xx", "yy", "zz";
> +               };
> +
> +               regulators {
> +                       ldo1_reg: LDO1 {
> +                               regulator-name = "VDD_ABB_3.3V";
> +                               regulator-min-microvolt = <3300000>;
> +                               regulator-max-microvolt = <3300000>;
> +                       };
> +
> +                       ldo2_reg: LDO2 {
> +                               regulator-name = "VDD_ALIVE_1.1V";
> +                               regulator-min-microvolt = <1100000>;
> +                               regulator-max-microvolt = <1100000>;
> +                               regulator-always-on;
> +                       };
> +
> +                       buck1_reg: BUCK1 {
> +                               regulator-name = "vdd_mif";
> +                               regulator-min-microvolt = <950000>;
> +                               regulator-max-microvolt = <1350000>;
> +                               regulator-always-on;
> +                               regulator-boot-on;
> +                       };
> +
> +                       buck2_reg: BUCK2 {
> +                               regulator-name = "vdd_arm";
> +                               regulator-min-microvolt = <950000>;
> +                               regulator-max-microvolt = <1350000>;
> +                               regulator-always-on;
> +                               regulator-boot-on;
> +                               regulator-ramp-delay = <50000>;
> +                       };
> +               };
> +       };
> diff --git a/Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt b/Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt
> new file mode 100644
> index 000000000000..27a48bf1b185
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt
> @@ -0,0 +1,102 @@
> +Binding for Samsung S2M family regulator block
> +==============================================
> +
> +This is a part of device tree bindings for S2M family multi-function devices.
> +More information can be found in bindings/mfd/sec-core.txt file.
> +
> +The S2MPS11/13/14/15 and S2MPU02 devices provide buck and LDO regulators.
> +
> +To register these with regulator framework instantiate under main device node
> +a sub-node named "regulators" with more sub-nodes for each regulator using the
> +common regulator binding documented in:
> + - Documentation/devicetree/bindings/regulator/regulator.txt
> +
> +
> +Names of regulators supported by different devices:
> +       - LDOn
> +                 - valid values for n are:
> +                       - S2MPS11: 1 to 38
> +                       - S2MPS13: 1 to 40
> +                       - S2MPS14: 1 to 25
> +                       - S2MPS15: 1 to 27
> +                       - S2MPU02: 1 to 28
> +                 - Example: LDO1, LDO2, LDO28
> +       - BUCKn
> +                 - valid values for n are:
> +                       - S2MPS11: 1 to 10
> +                       - S2MPS13: 1 to 10
> +                       - S2MPS14: 1 to 5
> +                       - S2MPS15: 1 to 10
> +                       - S2MPU02: 1 to 7
> +                 - Example: BUCK1, BUCK2, BUCK9
> +Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
> +as per the datasheet of device.
> +
> +
> +Optional properties of the nodes under "regulators" sub-node:
> + - regulator-ramp-delay: ramp delay in uV/us. May be 6250, 12500,
> +   25000 (default) or 50000.
> +
> +   Additionally S2MPS11 supports disabling ramp delay for BUCK{2,3,4,6}
> +   by setting it to <0>.
> +
> +   Note: On S2MPS11 some bucks share the ramp rate setting i.e. same ramp value
> +   will be set for a particular group of bucks so provide the same
> +   regulator-ramp-delay value for them.
> +   Groups sharing ramp rate:
> +    - buck{1,6},
> +    - buck{3,4},
> +    - buck{7,8,10}.
> +
> + - samsung,ext-control-gpios: On S2MPS14 the LDO10, LDO11 and LDO12 can be
> +   configured to external control over GPIO. To turn this feature on this
> +   property must be added to the regulator sub-node:
> +    - samsung,ext-control-gpios: GPIO specifier for one GPIO
> +                                 controlling this regulator (enable/disable)
> +  Example:
> +       LDO12 {
> +               regulator-name = "V_EMMC_2.8V";
> +               regulator-min-microvolt = <2800000>;
> +               regulator-max-microvolt = <2800000>;
> +               samsung,ext-control-gpios = <&gpk0 2 0>;
> +       };
> +
> +
> +Example:
> +
> +       s2mps11_pmic@66 {
> +               compatible = "samsung,s2mps11-pmic";
> +               reg = <0x66>;
> +
> +               regulators {
> +                       ldo1_reg: LDO1 {
> +                               regulator-name = "VDD_ABB_3.3V";
> +                               regulator-min-microvolt = <3300000>;
> +                               regulator-max-microvolt = <3300000>;
> +                       };
> +
> +                       ldo2_reg: LDO2 {
> +                               regulator-name = "VDD_ALIVE_1.1V";
> +                               regulator-min-microvolt = <1100000>;
> +                               regulator-max-microvolt = <1100000>;
> +                               regulator-always-on;
> +                       };
> +
> +                       buck1_reg: BUCK1 {
> +                               regulator-name = "vdd_mif";
> +                               regulator-min-microvolt = <950000>;
> +                               regulator-max-microvolt = <1350000>;
> +                               regulator-always-on;
> +                               regulator-boot-on;
> +                       };
> +
> +                       buck2_reg: BUCK2 {
> +                               regulator-name = "vdd_arm";
> +                               regulator-min-microvolt = <950000>;
> +                               regulator-max-microvolt = <1350000>;
> +                               regulator-always-on;
> +                               regulator-boot-on;
> +                               regulator-ramp-delay = <50000>;
> +                       };
> +               };
> +       };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index f3de00113ae8..137284e37250 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -9234,7 +9234,9 @@ F:        drivers/clk/clk-s2mps11.c
>  F:     drivers/rtc/rtc-s5m.c
>  F:     include/linux/mfd/samsung/
>  F:     Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt
> -F:     Documentation/devicetree/bindings/mfd/s2mp*.txt
> +F:     Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
> +F:     Documentation/devicetree/bindings/regulator/samsung,s2m*.txt
> +F:     Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
>
>  SAMSUNG S5P/EXYNOS4 SOC SERIES CAMERA SUBSYSTEM DRIVERS
>  M:     Kyungmin Park <kyungmin.park@samsung.com>
> --
> 1.9.1
>
Lee Jones Jan. 11, 2016, 7:50 a.m. UTC | #5
On Fri, 04 Dec 2015, Krzysztof Kozlowski wrote:

> Bindings for Samsung S2M and S5M family PMICs are in mess. They are
> spread over different files and subdirectories in a non-consistent way.
> The devices and respective drivers for them share a lot in common so
> everything could be organized in a more readable way.
> 
> Reorganize the S2MPS11/13/14/15 Device Tree bindings to match the
> drivers for this family of devices:
>  - move mfd/s2mps11.txt to mfd/samsung,sec-core.txt for the main MFD
>    driver (common for entire family),
>  - split clock block to clock/samsung,s2mps11.txt,
>  - split regulator block to regulator/samsung,s2mps11.txt.
> 
> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
> ---
>  .../devicetree/bindings/clock/samsung,s2mps11.txt  |  49 +++++++
>  Documentation/devicetree/bindings/mfd/s2mps11.txt  | 153 ---------------------
>  .../devicetree/bindings/mfd/samsung,sec-core.txt   |  84 +++++++++++
>  .../bindings/regulator/samsung,s2mps11.txt         | 102 ++++++++++++++
>  MAINTAINERS                                        |   4 +-
>  5 files changed, 238 insertions(+), 154 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
>  delete mode 100644 Documentation/devicetree/bindings/mfd/s2mps11.txt
>  create mode 100644 Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
>  create mode 100644 Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt

Applied, thanks.

> diff --git a/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt b/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
> new file mode 100644
> index 000000000000..2726c1d58a79
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
> @@ -0,0 +1,49 @@
> +Binding for Samsung S2M and S5M family clock generator block
> +============================================================
> +
> +This is a part of device tree bindings for S2M and S5M family multi-function
> +devices.
> +More information can be found in bindings/mfd/sec-core.txt file.
> +
> +The S2MPS11/13/15 and S5M8767 provide three(AP/CP/BT) buffered 32.768 kHz
> +outputs. The S2MPS14 provides two (AP/BT) buffered 32.768 KHz outputs.
> +
> +To register these as clocks with common clock framework instantiate under
> +main device node a sub-node named "clocks".
> +
> +It uses the common clock binding documented in:
> + - Documentation/devicetree/bindings/clock/clock-bindings.txt
> +
> +
> +Required properties of the "clocks" sub-node:
> + - #clock-cells: should be 1.
> + - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk",
> +               "samsung,s2mps14-clk", "samsung,s5m8767-clk"
> +   The S2MPS15 uses the same compatible as S2MPS13, as both provides similar
> +   clocks.
> +
> +
> +Each clock is assigned an identifier and client nodes use this identifier
> +to specify the clock which they consume.
> +    Clock               ID           Devices
> +    ----------------------------------------------------------
> +    32KhzAP		0            S2MPS11/13/14/15, S5M8767
> +    32KhzCP		1            S2MPS11/13/15, S5M8767
> +    32KhzBT		2            S2MPS11/13/14/15, S5M8767
> +
> +Include dt-bindings/clock/samsung,s2mps11.h file to use preprocessor defines
> +in device tree sources.
> +
> +
> +Example:
> +
> +	s2mps11_pmic@66 {
> +		compatible = "samsung,s2mps11-pmic";
> +		reg = <0x66>;
> +
> +		s2m_osc: clocks {
> +			compatible = "samsung,s2mps11-clk";
> +			#clock-cells = <1>;
> +			clock-output-names = "xx", "yy", "zz";
> +		};
> +	};
> diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt b/Documentation/devicetree/bindings/mfd/s2mps11.txt
> deleted file mode 100644
> index 09b94c97faac..000000000000
> --- a/Documentation/devicetree/bindings/mfd/s2mps11.txt
> +++ /dev/null
> @@ -1,153 +0,0 @@
> -
> -* Samsung S2MPS11/13/14/15 and S2MPU02 Voltage and Current Regulator
> -
> -The Samsung S2MPS11 is a multi-function device which includes voltage and
> -current regulators, RTC, charger controller and other sub-blocks. It is
> -interfaced to the host controller using an I2C interface. Each sub-block is
> -addressed by the host system using different I2C slave addresses.
> -
> -Required properties:
> -- compatible: Should be one of the following
> -	- "samsung,s2mps11-pmic"
> -	- "samsung,s2mps13-pmic"
> -	- "samsung,s2mps14-pmic"
> -	- "samsung,s2mps15-pmic"
> -	- "samsung,s2mpu02-pmic".
> -- reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
> -
> -Optional properties:
> -- interrupt-parent: Specifies the phandle of the interrupt controller to which
> -  the interrupts from s2mps11 are delivered to.
> -- interrupts: Interrupt specifiers for interrupt sources.
> -- samsung,s2mps11-wrstbi-ground: Indicates that WRSTBI pin of PMIC is pulled
> -  down. When the system is suspended it will always go down thus triggerring
> -  unwanted buck warm reset (setting buck voltages to default values).
> -- samsung,s2mps11-acokb-ground: Indicates that ACOKB pin of S2MPS11 PMIC is
> -  connected to the ground so the PMIC must manually set PWRHOLD bit in CTRL1
> -  register to turn off the power. Usually the ACOKB is pulled up to VBATT so
> -  when PWRHOLD pin goes low, the rising ACOKB will trigger power off.
> -
> -Optional nodes:
> -- clocks: s2mps11, s2mps13, s2mps15 and s5m8767 provide three(AP/CP/BT) buffered 32.768
> -  KHz outputs, so to register these as clocks with common clock framework
> -  instantiate a sub-node named "clocks". It uses the common clock binding
> -  documented in :
> -  [Documentation/devicetree/bindings/clock/clock-bindings.txt]
> -  The s2mps14 provides two (AP/BT) buffered 32.768 KHz outputs.
> -  - #clock-cells: should be 1.
> -
> -  - The following is the list of clocks generated by the controller. Each clock
> -    is assigned an identifier and client nodes use this identifier to specify
> -    the clock which they consume.
> -    Clock               ID           Devices
> -    ----------------------------------------------------------
> -    32KhzAP		0            S2MPS11, S2MPS13, S2MPS14, S2MPS15, S5M8767
> -    32KhzCP		1            S2MPS11, S2MPS13, S2MPS15, S5M8767
> -    32KhzBT		2            S2MPS11, S2MPS13, S2MPS14, S2MPS15, S5M8767
> -
> -  - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk",
> -		"samsung,s2mps14-clk", "samsung,s5m8767-clk"
> -    The s2msp15 uses the same compatible as s2mps13, as both provides similar clocks.
> -
> -- regulators: The regulators of s2mps11 that have to be instantiated should be
> -included in a sub-node named 'regulators'. Regulator nodes included in this
> -sub-node should be of the format as listed below.
> -
> -	regulator_name {
> -		[standard regulator constraints....];
> -	};
> -
> - regulator-ramp-delay for BUCKs = [6250/12500/25000(default)/50000] uV/us
> -
> - BUCK[2/3/4/6] supports disabling ramp delay on hardware, so explicitly
> - regulator-ramp-delay = <0> can be used for them to disable ramp delay.
> - In the absence of the regulator-ramp-delay property, the default ramp
> - delay will be used.
> -
> -NOTE: Some BUCKs share the ramp rate setting i.e. same ramp value will be set
> -for a particular group of BUCKs. So provide same regulator-ramp-delay<value>.
> -Grouping of BUCKs sharing ramp rate setting is as follow : BUCK[1, 6],
> -BUCK[3, 4], and BUCK[7, 8, 10]
> -
> -On S2MPS14 the LDO10, LDO11 and LDO12 can be configured to external control
> -over GPIO. To turn this feature on this property must be added to the regulator
> -sub-node:
> -	- samsung,ext-control-gpios: GPIO specifier for one GPIO
> -		controlling this regulator (enable/disable);
> -Example:
> -	LDO12 {
> -		regulator-name = "V_EMMC_2.8V";
> -		regulator-min-microvolt = <2800000>;
> -		regulator-max-microvolt = <2800000>;
> -		samsung,ext-control-gpios = <&gpk0 2 0>;
> -	};
> -
> -
> -The regulator constraints inside the regulator nodes use the standard regulator
> -bindings which are documented elsewhere.
> -
> -The following are the names of the regulators that the s2mps11 pmic block
> -supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
> -as per the datasheet of s2mps11.
> -
> -	- LDOn
> -		  - valid values for n are:
> -			- S2MPS11: 1 to 38
> -			- S2MPS13: 1 to 40
> -			- S2MPS14: 1 to 25
> -			- S2MPS15: 1 to 27
> -			- S2MPU02: 1 to 28
> -		  - Example: LDO1, LDO2, LDO28
> -	- BUCKn
> -		  - valid values for n are:
> -			- S2MPS11: 1 to 10
> -			- S2MPS13: 1 to 10
> -			- S2MPS14: 1 to 5
> -			- S2MPS15: 1 to 10
> -			- S2MPU02: 1 to 7
> -		  - Example: BUCK1, BUCK2, BUCK9
> -
> -Example:
> -
> -	s2mps11_pmic@66 {
> -		compatible = "samsung,s2mps11-pmic";
> -		reg = <0x66>;
> -
> -		s2m_osc: clocks {
> -			compatible = "samsung,s2mps11-clk";
> -			#clock-cells = <1>;
> -			clock-output-names = "xx", "yy", "zz";
> -		};
> -
> -		regulators {
> -			ldo1_reg: LDO1 {
> -				regulator-name = "VDD_ABB_3.3V";
> -				regulator-min-microvolt = <3300000>;
> -				regulator-max-microvolt = <3300000>;
> -			};
> -
> -			ldo2_reg: LDO2 {
> -				regulator-name = "VDD_ALIVE_1.1V";
> -				regulator-min-microvolt = <1100000>;
> -				regulator-max-microvolt = <1100000>;
> -				regulator-always-on;
> -			};
> -
> -			buck1_reg: BUCK1 {
> -				regulator-name = "vdd_mif";
> -				regulator-min-microvolt = <950000>;
> -				regulator-max-microvolt = <1350000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -			};
> -
> -			buck2_reg: BUCK2 {
> -				regulator-name = "vdd_arm";
> -				regulator-min-microvolt = <950000>;
> -				regulator-max-microvolt = <1350000>;
> -				regulator-always-on;
> -				regulator-boot-on;
> -				regulator-ramp-delay = <50000>;
> -			};
> -		};
> -	};
> diff --git a/Documentation/devicetree/bindings/mfd/samsung,sec-core.txt b/Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
> new file mode 100644
> index 000000000000..ef0166d0f643
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
> @@ -0,0 +1,84 @@
> +Binding for Samsung S2M and S5M family multi-function device
> +============================================================
> +
> +This is a part of device tree bindings for S2M and S5M family multi-function
> +devices.
> +
> +The Samsung S2MPS11/13/14/15, S2MPU02 and S5M8767 is a family
> +of multi-function devices which include voltage and current regulators, RTC,
> +charger controller, clock outputs and other sub-blocks. It is interfaced
> +to the host controller using an I2C interface. Each sub-block is usually
> +addressed by the host system using different I2C slave addresses.
> +
> +
> +This document describes bindings for main device node. Optional sub-blocks
> +must be a sub-nodes to it. Bindings for them can be found in:
> + - bindings/regulator/samsung,s2mps11.txt
> + - bindings/clock/samsung,s2mps11.txt
> +
> +
> +Required properties:
> + - compatible: Should be one of the following
> +	- "samsung,s2mps11-pmic",
> +	- "samsung,s2mps13-pmic",
> +	- "samsung,s2mps14-pmic",
> +	- "samsung,s2mps15-pmic",
> +	- "samsung,s2mpu02-pmic".
> + - reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
> +
> +Optional properties:
> + - interrupt-parent: Specifies the phandle of the interrupt controller to which
> +   the interrupts from s2mps11 are delivered to.
> + - interrupts: Interrupt specifiers for interrupt sources.
> + - samsung,s2mps11-wrstbi-ground: Indicates that WRSTBI pin of PMIC is pulled
> +   down. When the system is suspended it will always go down thus triggerring
> +   unwanted buck warm reset (setting buck voltages to default values).
> + - samsung,s2mps11-acokb-ground: Indicates that ACOKB pin of S2MPS11 PMIC is
> +   connected to the ground so the PMIC must manually set PWRHOLD bit in CTRL1
> +   register to turn off the power. Usually the ACOKB is pulled up to VBATT so
> +   when PWRHOLD pin goes low, the rising ACOKB will trigger power off.
> +
> +Example:
> +
> +	s2mps11_pmic@66 {
> +		compatible = "samsung,s2mps11-pmic";
> +		reg = <0x66>;
> +
> +		s2m_osc: clocks {
> +			compatible = "samsung,s2mps11-clk";
> +			#clock-cells = <1>;
> +			clock-output-names = "xx", "yy", "zz";
> +		};
> +
> +		regulators {
> +			ldo1_reg: LDO1 {
> +				regulator-name = "VDD_ABB_3.3V";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			ldo2_reg: LDO2 {
> +				regulator-name = "VDD_ALIVE_1.1V";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +			};
> +
> +			buck1_reg: BUCK1 {
> +				regulator-name = "vdd_mif";
> +				regulator-min-microvolt = <950000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +			};
> +
> +			buck2_reg: BUCK2 {
> +				regulator-name = "vdd_arm";
> +				regulator-min-microvolt = <950000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-ramp-delay = <50000>;
> +			};
> +		};
> +	};
> diff --git a/Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt b/Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt
> new file mode 100644
> index 000000000000..27a48bf1b185
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt
> @@ -0,0 +1,102 @@
> +Binding for Samsung S2M family regulator block
> +==============================================
> +
> +This is a part of device tree bindings for S2M family multi-function devices.
> +More information can be found in bindings/mfd/sec-core.txt file.
> +
> +The S2MPS11/13/14/15 and S2MPU02 devices provide buck and LDO regulators.
> +
> +To register these with regulator framework instantiate under main device node
> +a sub-node named "regulators" with more sub-nodes for each regulator using the
> +common regulator binding documented in:
> + - Documentation/devicetree/bindings/regulator/regulator.txt
> +
> +
> +Names of regulators supported by different devices:
> +	- LDOn
> +		  - valid values for n are:
> +			- S2MPS11: 1 to 38
> +			- S2MPS13: 1 to 40
> +			- S2MPS14: 1 to 25
> +			- S2MPS15: 1 to 27
> +			- S2MPU02: 1 to 28
> +		  - Example: LDO1, LDO2, LDO28
> +	- BUCKn
> +		  - valid values for n are:
> +			- S2MPS11: 1 to 10
> +			- S2MPS13: 1 to 10
> +			- S2MPS14: 1 to 5
> +			- S2MPS15: 1 to 10
> +			- S2MPU02: 1 to 7
> +		  - Example: BUCK1, BUCK2, BUCK9
> +Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
> +as per the datasheet of device.
> +
> +
> +Optional properties of the nodes under "regulators" sub-node:
> + - regulator-ramp-delay: ramp delay in uV/us. May be 6250, 12500,
> +   25000 (default) or 50000.
> +
> +   Additionally S2MPS11 supports disabling ramp delay for BUCK{2,3,4,6}
> +   by setting it to <0>.
> +
> +   Note: On S2MPS11 some bucks share the ramp rate setting i.e. same ramp value
> +   will be set for a particular group of bucks so provide the same
> +   regulator-ramp-delay value for them.
> +   Groups sharing ramp rate:
> +    - buck{1,6},
> +    - buck{3,4},
> +    - buck{7,8,10}.
> +
> + - samsung,ext-control-gpios: On S2MPS14 the LDO10, LDO11 and LDO12 can be
> +   configured to external control over GPIO. To turn this feature on this
> +   property must be added to the regulator sub-node:
> +    - samsung,ext-control-gpios: GPIO specifier for one GPIO
> +                                 controlling this regulator (enable/disable)
> +  Example:
> +	LDO12 {
> +		regulator-name = "V_EMMC_2.8V";
> +		regulator-min-microvolt = <2800000>;
> +		regulator-max-microvolt = <2800000>;
> +		samsung,ext-control-gpios = <&gpk0 2 0>;
> +	};
> +
> +
> +Example:
> +
> +	s2mps11_pmic@66 {
> +		compatible = "samsung,s2mps11-pmic";
> +		reg = <0x66>;
> +
> +		regulators {
> +			ldo1_reg: LDO1 {
> +				regulator-name = "VDD_ABB_3.3V";
> +				regulator-min-microvolt = <3300000>;
> +				regulator-max-microvolt = <3300000>;
> +			};
> +
> +			ldo2_reg: LDO2 {
> +				regulator-name = "VDD_ALIVE_1.1V";
> +				regulator-min-microvolt = <1100000>;
> +				regulator-max-microvolt = <1100000>;
> +				regulator-always-on;
> +			};
> +
> +			buck1_reg: BUCK1 {
> +				regulator-name = "vdd_mif";
> +				regulator-min-microvolt = <950000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +			};
> +
> +			buck2_reg: BUCK2 {
> +				regulator-name = "vdd_arm";
> +				regulator-min-microvolt = <950000>;
> +				regulator-max-microvolt = <1350000>;
> +				regulator-always-on;
> +				regulator-boot-on;
> +				regulator-ramp-delay = <50000>;
> +			};
> +		};
> +	};
> diff --git a/MAINTAINERS b/MAINTAINERS
> index f3de00113ae8..137284e37250 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -9234,7 +9234,9 @@ F:	drivers/clk/clk-s2mps11.c
>  F:	drivers/rtc/rtc-s5m.c
>  F:	include/linux/mfd/samsung/
>  F:	Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt
> -F:	Documentation/devicetree/bindings/mfd/s2mp*.txt
> +F:	Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
> +F:	Documentation/devicetree/bindings/regulator/samsung,s2m*.txt
> +F:	Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
>  
>  SAMSUNG S5P/EXYNOS4 SOC SERIES CAMERA SUBSYSTEM DRIVERS
>  M:	Kyungmin Park <kyungmin.park@samsung.com>

Patch
diff mbox

diff --git a/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt b/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
new file mode 100644
index 000000000000..2726c1d58a79
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
@@ -0,0 +1,49 @@ 
+Binding for Samsung S2M and S5M family clock generator block
+============================================================
+
+This is a part of device tree bindings for S2M and S5M family multi-function
+devices.
+More information can be found in bindings/mfd/sec-core.txt file.
+
+The S2MPS11/13/15 and S5M8767 provide three(AP/CP/BT) buffered 32.768 kHz
+outputs. The S2MPS14 provides two (AP/BT) buffered 32.768 KHz outputs.
+
+To register these as clocks with common clock framework instantiate under
+main device node a sub-node named "clocks".
+
+It uses the common clock binding documented in:
+ - Documentation/devicetree/bindings/clock/clock-bindings.txt
+
+
+Required properties of the "clocks" sub-node:
+ - #clock-cells: should be 1.
+ - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk",
+               "samsung,s2mps14-clk", "samsung,s5m8767-clk"
+   The S2MPS15 uses the same compatible as S2MPS13, as both provides similar
+   clocks.
+
+
+Each clock is assigned an identifier and client nodes use this identifier
+to specify the clock which they consume.
+    Clock               ID           Devices
+    ----------------------------------------------------------
+    32KhzAP		0            S2MPS11/13/14/15, S5M8767
+    32KhzCP		1            S2MPS11/13/15, S5M8767
+    32KhzBT		2            S2MPS11/13/14/15, S5M8767
+
+Include dt-bindings/clock/samsung,s2mps11.h file to use preprocessor defines
+in device tree sources.
+
+
+Example:
+
+	s2mps11_pmic@66 {
+		compatible = "samsung,s2mps11-pmic";
+		reg = <0x66>;
+
+		s2m_osc: clocks {
+			compatible = "samsung,s2mps11-clk";
+			#clock-cells = <1>;
+			clock-output-names = "xx", "yy", "zz";
+		};
+	};
diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt b/Documentation/devicetree/bindings/mfd/s2mps11.txt
deleted file mode 100644
index 09b94c97faac..000000000000
--- a/Documentation/devicetree/bindings/mfd/s2mps11.txt
+++ /dev/null
@@ -1,153 +0,0 @@ 
-
-* Samsung S2MPS11/13/14/15 and S2MPU02 Voltage and Current Regulator
-
-The Samsung S2MPS11 is a multi-function device which includes voltage and
-current regulators, RTC, charger controller and other sub-blocks. It is
-interfaced to the host controller using an I2C interface. Each sub-block is
-addressed by the host system using different I2C slave addresses.
-
-Required properties:
-- compatible: Should be one of the following
-	- "samsung,s2mps11-pmic"
-	- "samsung,s2mps13-pmic"
-	- "samsung,s2mps14-pmic"
-	- "samsung,s2mps15-pmic"
-	- "samsung,s2mpu02-pmic".
-- reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
-
-Optional properties:
-- interrupt-parent: Specifies the phandle of the interrupt controller to which
-  the interrupts from s2mps11 are delivered to.
-- interrupts: Interrupt specifiers for interrupt sources.
-- samsung,s2mps11-wrstbi-ground: Indicates that WRSTBI pin of PMIC is pulled
-  down. When the system is suspended it will always go down thus triggerring
-  unwanted buck warm reset (setting buck voltages to default values).
-- samsung,s2mps11-acokb-ground: Indicates that ACOKB pin of S2MPS11 PMIC is
-  connected to the ground so the PMIC must manually set PWRHOLD bit in CTRL1
-  register to turn off the power. Usually the ACOKB is pulled up to VBATT so
-  when PWRHOLD pin goes low, the rising ACOKB will trigger power off.
-
-Optional nodes:
-- clocks: s2mps11, s2mps13, s2mps15 and s5m8767 provide three(AP/CP/BT) buffered 32.768
-  KHz outputs, so to register these as clocks with common clock framework
-  instantiate a sub-node named "clocks". It uses the common clock binding
-  documented in :
-  [Documentation/devicetree/bindings/clock/clock-bindings.txt]
-  The s2mps14 provides two (AP/BT) buffered 32.768 KHz outputs.
-  - #clock-cells: should be 1.
-
-  - The following is the list of clocks generated by the controller. Each clock
-    is assigned an identifier and client nodes use this identifier to specify
-    the clock which they consume.
-    Clock               ID           Devices
-    ----------------------------------------------------------
-    32KhzAP		0            S2MPS11, S2MPS13, S2MPS14, S2MPS15, S5M8767
-    32KhzCP		1            S2MPS11, S2MPS13, S2MPS15, S5M8767
-    32KhzBT		2            S2MPS11, S2MPS13, S2MPS14, S2MPS15, S5M8767
-
-  - compatible: Should be one of: "samsung,s2mps11-clk", "samsung,s2mps13-clk",
-		"samsung,s2mps14-clk", "samsung,s5m8767-clk"
-    The s2msp15 uses the same compatible as s2mps13, as both provides similar clocks.
-
-- regulators: The regulators of s2mps11 that have to be instantiated should be
-included in a sub-node named 'regulators'. Regulator nodes included in this
-sub-node should be of the format as listed below.
-
-	regulator_name {
-		[standard regulator constraints....];
-	};
-
- regulator-ramp-delay for BUCKs = [6250/12500/25000(default)/50000] uV/us
-
- BUCK[2/3/4/6] supports disabling ramp delay on hardware, so explicitly
- regulator-ramp-delay = <0> can be used for them to disable ramp delay.
- In the absence of the regulator-ramp-delay property, the default ramp
- delay will be used.
-
-NOTE: Some BUCKs share the ramp rate setting i.e. same ramp value will be set
-for a particular group of BUCKs. So provide same regulator-ramp-delay<value>.
-Grouping of BUCKs sharing ramp rate setting is as follow : BUCK[1, 6],
-BUCK[3, 4], and BUCK[7, 8, 10]
-
-On S2MPS14 the LDO10, LDO11 and LDO12 can be configured to external control
-over GPIO. To turn this feature on this property must be added to the regulator
-sub-node:
-	- samsung,ext-control-gpios: GPIO specifier for one GPIO
-		controlling this regulator (enable/disable);
-Example:
-	LDO12 {
-		regulator-name = "V_EMMC_2.8V";
-		regulator-min-microvolt = <2800000>;
-		regulator-max-microvolt = <2800000>;
-		samsung,ext-control-gpios = <&gpk0 2 0>;
-	};
-
-
-The regulator constraints inside the regulator nodes use the standard regulator
-bindings which are documented elsewhere.
-
-The following are the names of the regulators that the s2mps11 pmic block
-supports. Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
-as per the datasheet of s2mps11.
-
-	- LDOn
-		  - valid values for n are:
-			- S2MPS11: 1 to 38
-			- S2MPS13: 1 to 40
-			- S2MPS14: 1 to 25
-			- S2MPS15: 1 to 27
-			- S2MPU02: 1 to 28
-		  - Example: LDO1, LDO2, LDO28
-	- BUCKn
-		  - valid values for n are:
-			- S2MPS11: 1 to 10
-			- S2MPS13: 1 to 10
-			- S2MPS14: 1 to 5
-			- S2MPS15: 1 to 10
-			- S2MPU02: 1 to 7
-		  - Example: BUCK1, BUCK2, BUCK9
-
-Example:
-
-	s2mps11_pmic@66 {
-		compatible = "samsung,s2mps11-pmic";
-		reg = <0x66>;
-
-		s2m_osc: clocks {
-			compatible = "samsung,s2mps11-clk";
-			#clock-cells = <1>;
-			clock-output-names = "xx", "yy", "zz";
-		};
-
-		regulators {
-			ldo1_reg: LDO1 {
-				regulator-name = "VDD_ABB_3.3V";
-				regulator-min-microvolt = <3300000>;
-				regulator-max-microvolt = <3300000>;
-			};
-
-			ldo2_reg: LDO2 {
-				regulator-name = "VDD_ALIVE_1.1V";
-				regulator-min-microvolt = <1100000>;
-				regulator-max-microvolt = <1100000>;
-				regulator-always-on;
-			};
-
-			buck1_reg: BUCK1 {
-				regulator-name = "vdd_mif";
-				regulator-min-microvolt = <950000>;
-				regulator-max-microvolt = <1350000>;
-				regulator-always-on;
-				regulator-boot-on;
-			};
-
-			buck2_reg: BUCK2 {
-				regulator-name = "vdd_arm";
-				regulator-min-microvolt = <950000>;
-				regulator-max-microvolt = <1350000>;
-				regulator-always-on;
-				regulator-boot-on;
-				regulator-ramp-delay = <50000>;
-			};
-		};
-	};
diff --git a/Documentation/devicetree/bindings/mfd/samsung,sec-core.txt b/Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
new file mode 100644
index 000000000000..ef0166d0f643
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
@@ -0,0 +1,84 @@ 
+Binding for Samsung S2M and S5M family multi-function device
+============================================================
+
+This is a part of device tree bindings for S2M and S5M family multi-function
+devices.
+
+The Samsung S2MPS11/13/14/15, S2MPU02 and S5M8767 is a family
+of multi-function devices which include voltage and current regulators, RTC,
+charger controller, clock outputs and other sub-blocks. It is interfaced
+to the host controller using an I2C interface. Each sub-block is usually
+addressed by the host system using different I2C slave addresses.
+
+
+This document describes bindings for main device node. Optional sub-blocks
+must be a sub-nodes to it. Bindings for them can be found in:
+ - bindings/regulator/samsung,s2mps11.txt
+ - bindings/clock/samsung,s2mps11.txt
+
+
+Required properties:
+ - compatible: Should be one of the following
+	- "samsung,s2mps11-pmic",
+	- "samsung,s2mps13-pmic",
+	- "samsung,s2mps14-pmic",
+	- "samsung,s2mps15-pmic",
+	- "samsung,s2mpu02-pmic".
+ - reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
+
+Optional properties:
+ - interrupt-parent: Specifies the phandle of the interrupt controller to which
+   the interrupts from s2mps11 are delivered to.
+ - interrupts: Interrupt specifiers for interrupt sources.
+ - samsung,s2mps11-wrstbi-ground: Indicates that WRSTBI pin of PMIC is pulled
+   down. When the system is suspended it will always go down thus triggerring
+   unwanted buck warm reset (setting buck voltages to default values).
+ - samsung,s2mps11-acokb-ground: Indicates that ACOKB pin of S2MPS11 PMIC is
+   connected to the ground so the PMIC must manually set PWRHOLD bit in CTRL1
+   register to turn off the power. Usually the ACOKB is pulled up to VBATT so
+   when PWRHOLD pin goes low, the rising ACOKB will trigger power off.
+
+Example:
+
+	s2mps11_pmic@66 {
+		compatible = "samsung,s2mps11-pmic";
+		reg = <0x66>;
+
+		s2m_osc: clocks {
+			compatible = "samsung,s2mps11-clk";
+			#clock-cells = <1>;
+			clock-output-names = "xx", "yy", "zz";
+		};
+
+		regulators {
+			ldo1_reg: LDO1 {
+				regulator-name = "VDD_ABB_3.3V";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+			};
+
+			ldo2_reg: LDO2 {
+				regulator-name = "VDD_ALIVE_1.1V";
+				regulator-min-microvolt = <1100000>;
+				regulator-max-microvolt = <1100000>;
+				regulator-always-on;
+			};
+
+			buck1_reg: BUCK1 {
+				regulator-name = "vdd_mif";
+				regulator-min-microvolt = <950000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			buck2_reg: BUCK2 {
+				regulator-name = "vdd_arm";
+				regulator-min-microvolt = <950000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-always-on;
+				regulator-boot-on;
+				regulator-ramp-delay = <50000>;
+			};
+		};
+	};
diff --git a/Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt b/Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt
new file mode 100644
index 000000000000..27a48bf1b185
--- /dev/null
+++ b/Documentation/devicetree/bindings/regulator/samsung,s2mps11.txt
@@ -0,0 +1,102 @@ 
+Binding for Samsung S2M family regulator block
+==============================================
+
+This is a part of device tree bindings for S2M family multi-function devices.
+More information can be found in bindings/mfd/sec-core.txt file.
+
+The S2MPS11/13/14/15 and S2MPU02 devices provide buck and LDO regulators.
+
+To register these with regulator framework instantiate under main device node
+a sub-node named "regulators" with more sub-nodes for each regulator using the
+common regulator binding documented in:
+ - Documentation/devicetree/bindings/regulator/regulator.txt
+
+
+Names of regulators supported by different devices:
+	- LDOn
+		  - valid values for n are:
+			- S2MPS11: 1 to 38
+			- S2MPS13: 1 to 40
+			- S2MPS14: 1 to 25
+			- S2MPS15: 1 to 27
+			- S2MPU02: 1 to 28
+		  - Example: LDO1, LDO2, LDO28
+	- BUCKn
+		  - valid values for n are:
+			- S2MPS11: 1 to 10
+			- S2MPS13: 1 to 10
+			- S2MPS14: 1 to 5
+			- S2MPS15: 1 to 10
+			- S2MPU02: 1 to 7
+		  - Example: BUCK1, BUCK2, BUCK9
+Note: The 'n' in LDOn and BUCKn represents the LDO or BUCK number
+as per the datasheet of device.
+
+
+Optional properties of the nodes under "regulators" sub-node:
+ - regulator-ramp-delay: ramp delay in uV/us. May be 6250, 12500,
+   25000 (default) or 50000.
+
+   Additionally S2MPS11 supports disabling ramp delay for BUCK{2,3,4,6}
+   by setting it to <0>.
+
+   Note: On S2MPS11 some bucks share the ramp rate setting i.e. same ramp value
+   will be set for a particular group of bucks so provide the same
+   regulator-ramp-delay value for them.
+   Groups sharing ramp rate:
+    - buck{1,6},
+    - buck{3,4},
+    - buck{7,8,10}.
+
+ - samsung,ext-control-gpios: On S2MPS14 the LDO10, LDO11 and LDO12 can be
+   configured to external control over GPIO. To turn this feature on this
+   property must be added to the regulator sub-node:
+    - samsung,ext-control-gpios: GPIO specifier for one GPIO
+                                 controlling this regulator (enable/disable)
+  Example:
+	LDO12 {
+		regulator-name = "V_EMMC_2.8V";
+		regulator-min-microvolt = <2800000>;
+		regulator-max-microvolt = <2800000>;
+		samsung,ext-control-gpios = <&gpk0 2 0>;
+	};
+
+
+Example:
+
+	s2mps11_pmic@66 {
+		compatible = "samsung,s2mps11-pmic";
+		reg = <0x66>;
+
+		regulators {
+			ldo1_reg: LDO1 {
+				regulator-name = "VDD_ABB_3.3V";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+			};
+
+			ldo2_reg: LDO2 {
+				regulator-name = "VDD_ALIVE_1.1V";
+				regulator-min-microvolt = <1100000>;
+				regulator-max-microvolt = <1100000>;
+				regulator-always-on;
+			};
+
+			buck1_reg: BUCK1 {
+				regulator-name = "vdd_mif";
+				regulator-min-microvolt = <950000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			buck2_reg: BUCK2 {
+				regulator-name = "vdd_arm";
+				regulator-min-microvolt = <950000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-always-on;
+				regulator-boot-on;
+				regulator-ramp-delay = <50000>;
+			};
+		};
+	};
diff --git a/MAINTAINERS b/MAINTAINERS
index f3de00113ae8..137284e37250 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -9234,7 +9234,9 @@  F:	drivers/clk/clk-s2mps11.c
 F:	drivers/rtc/rtc-s5m.c
 F:	include/linux/mfd/samsung/
 F:	Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt
-F:	Documentation/devicetree/bindings/mfd/s2mp*.txt
+F:	Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
+F:	Documentation/devicetree/bindings/regulator/samsung,s2m*.txt
+F:	Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
 
 SAMSUNG S5P/EXYNOS4 SOC SERIES CAMERA SUBSYSTEM DRIVERS
 M:	Kyungmin Park <kyungmin.park@samsung.com>