Merge branches 'ib-mfd-iio-touchscreen-clk-5.16', 'ib-mfd-misc-regulator-5.16' and 'tb-mfd-from-regulator-5.16' into ibs-for-mfd-merged
This commit is contained in:
commit
9ada96900a
@ -1,49 +0,0 @@
|
|||||||
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";
|
|
||||||
};
|
|
||||||
};
|
|
45
Documentation/devicetree/bindings/clock/samsung,s2mps11.yaml
Normal file
45
Documentation/devicetree/bindings/clock/samsung,s2mps11.yaml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/clock/samsung,s2mps11.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Samsung S2M and S5M family clock generator block
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
This is a part of device tree bindings for S2M and S5M family of Power
|
||||||
|
Management IC (PMIC).
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
All available clocks are defined as preprocessor macros in
|
||||||
|
dt-bindings/clock/samsung,s2mps11.h header.
|
||||||
|
|
||||||
|
See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
|
||||||
|
additional information and example.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- samsung,s2mps11-clk
|
||||||
|
- samsung,s2mps13-clk # S2MPS13 and S2MPS15
|
||||||
|
- samsung,s2mps14-clk
|
||||||
|
- samsung,s5m8767-clk
|
||||||
|
|
||||||
|
"#clock-cells":
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
clock-output-names:
|
||||||
|
minItems: 3
|
||||||
|
maxItems: 3
|
||||||
|
description: Names for AP, CP and BT clocks.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- "#clock-cells"
|
||||||
|
|
||||||
|
additionalProperties: false
|
91
Documentation/devicetree/bindings/mfd/samsung,s2mpa01.yaml
Normal file
91
Documentation/devicetree/bindings/mfd/samsung,s2mpa01.yaml
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/mfd/samsung,s2mpa01.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Samsung S2MPA01 Power Management IC
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
This is a part of device tree bindings for S2M and S5M family of Power
|
||||||
|
Management IC (PMIC).
|
||||||
|
|
||||||
|
The Samsung S2MPA01 is a Power Management IC which includes voltage
|
||||||
|
and current regulators, RTC, clock outputs and other sub-blocks.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: samsung,s2mpa01-pmic
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
regulators:
|
||||||
|
$ref: ../regulator/samsung,s2mpa01.yaml
|
||||||
|
description:
|
||||||
|
List of child nodes that specify the regulators.
|
||||||
|
|
||||||
|
wakeup-source: true
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- regulators
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
pmic@66 {
|
||||||
|
compatible = "samsung,s2mpa01-pmic";
|
||||||
|
reg = <0x66>;
|
||||||
|
|
||||||
|
regulators {
|
||||||
|
ldo1_reg: LDO1 {
|
||||||
|
regulator-name = "VDD_ALIVE";
|
||||||
|
regulator-min-microvolt = <1000000>;
|
||||||
|
regulator-max-microvolt = <1000000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
ldo2_reg: LDO2 {
|
||||||
|
regulator-name = "VDDQ_MMC2";
|
||||||
|
regulator-min-microvolt = <2800000>;
|
||||||
|
regulator-max-microvolt = <2800000>;
|
||||||
|
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>;
|
||||||
|
};
|
||||||
|
|
||||||
|
// ...
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
267
Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml
Normal file
267
Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml
Normal file
@ -0,0 +1,267 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/mfd/samsung,s2mps11.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Samsung S2MPS11/13/14/15 and S2MPU02 Power Management IC
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
This is a part of device tree bindings for S2M and S5M family of Power
|
||||||
|
Management IC (PMIC).
|
||||||
|
|
||||||
|
The Samsung S2MPS11/13/14/15 and S2MPU02 is a family of Power Management IC
|
||||||
|
which include voltage and current regulators, RTC, clock outputs and other
|
||||||
|
sub-blocks.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
enum:
|
||||||
|
- samsung,s2mps11-pmic
|
||||||
|
- samsung,s2mps13-pmic
|
||||||
|
- samsung,s2mps14-pmic
|
||||||
|
- samsung,s2mps15-pmic
|
||||||
|
- samsung,s2mpu02-pmic
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
$ref: ../clock/samsung,s2mps11.yaml
|
||||||
|
description:
|
||||||
|
Child node describing clock provider.
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
regulators:
|
||||||
|
type: object
|
||||||
|
description:
|
||||||
|
List of child nodes that specify the regulators.
|
||||||
|
|
||||||
|
samsung,s2mps11-acokb-ground:
|
||||||
|
description: |
|
||||||
|
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.
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
samsung,s2mps11-wrstbi-ground:
|
||||||
|
description: |
|
||||||
|
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).
|
||||||
|
type: boolean
|
||||||
|
|
||||||
|
wakeup-source: true
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- regulators
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
const: samsung,s2mps11-pmic
|
||||||
|
then:
|
||||||
|
properties:
|
||||||
|
regulators:
|
||||||
|
$ref: ../regulator/samsung,s2mps11.yaml
|
||||||
|
samsung,s2mps11-wrstbi-ground: false
|
||||||
|
|
||||||
|
- if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
const: samsung,s2mps13-pmic
|
||||||
|
then:
|
||||||
|
properties:
|
||||||
|
regulators:
|
||||||
|
$ref: ../regulator/samsung,s2mps13.yaml
|
||||||
|
samsung,s2mps11-acokb-ground: false
|
||||||
|
|
||||||
|
- if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
const: samsung,s2mps14-pmic
|
||||||
|
then:
|
||||||
|
properties:
|
||||||
|
regulators:
|
||||||
|
$ref: ../regulator/samsung,s2mps14.yaml
|
||||||
|
samsung,s2mps11-acokb-ground: false
|
||||||
|
samsung,s2mps11-wrstbi-ground: false
|
||||||
|
|
||||||
|
- if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
const: samsung,s2mps15-pmic
|
||||||
|
then:
|
||||||
|
properties:
|
||||||
|
regulators:
|
||||||
|
$ref: ../regulator/samsung,s2mps15.yaml
|
||||||
|
samsung,s2mps11-acokb-ground: false
|
||||||
|
samsung,s2mps11-wrstbi-ground: false
|
||||||
|
|
||||||
|
- if:
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
contains:
|
||||||
|
const: samsung,s2mpu02-pmic
|
||||||
|
then:
|
||||||
|
properties:
|
||||||
|
regulators:
|
||||||
|
$ref: ../regulator/samsung,s2mpu02.yaml
|
||||||
|
samsung,s2mps11-acokb-ground: false
|
||||||
|
samsung,s2mps11-wrstbi-ground: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
pmic@66 {
|
||||||
|
compatible = "samsung,s2mps11-pmic";
|
||||||
|
reg = <0x66>;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpx0>;
|
||||||
|
interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&s2mps11_irq>;
|
||||||
|
samsung,s2mps11-acokb-ground;
|
||||||
|
wakeup-source;
|
||||||
|
|
||||||
|
clocks {
|
||||||
|
compatible = "samsung,s2mps11-clk";
|
||||||
|
#clock-cells = <1>;
|
||||||
|
clock-output-names = "s2mps11_ap", "s2mps11_cp", "s2mps11_bt";
|
||||||
|
};
|
||||||
|
|
||||||
|
regulators {
|
||||||
|
LDO1 {
|
||||||
|
regulator-name = "vdd_ldo1";
|
||||||
|
regulator-min-microvolt = <1000000>;
|
||||||
|
regulator-max-microvolt = <1000000>;
|
||||||
|
regulator-always-on;
|
||||||
|
};
|
||||||
|
|
||||||
|
LDO4 {
|
||||||
|
regulator-name = "vdd_adc";
|
||||||
|
regulator-min-microvolt = <1800000>;
|
||||||
|
regulator-max-microvolt = <1800000>;
|
||||||
|
|
||||||
|
regulator-state-mem {
|
||||||
|
regulator-off-in-suspend;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// ....
|
||||||
|
|
||||||
|
BUCK1 {
|
||||||
|
regulator-name = "vdd_mif";
|
||||||
|
regulator-min-microvolt = <800000>;
|
||||||
|
regulator-max-microvolt = <1300000>;
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-boot-on;
|
||||||
|
|
||||||
|
regulator-state-mem {
|
||||||
|
regulator-off-in-suspend;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
BUCK2 {
|
||||||
|
regulator-name = "vdd_arm";
|
||||||
|
regulator-min-microvolt = <800000>;
|
||||||
|
regulator-max-microvolt = <1500000>;
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-boot-on;
|
||||||
|
regulator-coupled-with = <&buck3_reg>;
|
||||||
|
regulator-coupled-max-spread = <300000>;
|
||||||
|
|
||||||
|
regulator-state-mem {
|
||||||
|
regulator-off-in-suspend;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
BUCK3 {
|
||||||
|
regulator-name = "vdd_int";
|
||||||
|
regulator-min-microvolt = <800000>;
|
||||||
|
regulator-max-microvolt = <1400000>;
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-boot-on;
|
||||||
|
regulator-coupled-with = <&buck2_reg>;
|
||||||
|
regulator-coupled-max-spread = <300000>;
|
||||||
|
|
||||||
|
regulator-state-mem {
|
||||||
|
regulator-off-in-suspend;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// ...
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
pmic@66 {
|
||||||
|
compatible = "samsung,s2mps14-pmic";
|
||||||
|
reg = <0x66>;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpx0>;
|
||||||
|
interrupts = <7 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
wakeup-source;
|
||||||
|
|
||||||
|
clocks {
|
||||||
|
compatible = "samsung,s2mps14-clk";
|
||||||
|
#clock-cells = <1>;
|
||||||
|
clock-output-names = "s2mps14_ap", "unused", "s2mps14_bt";
|
||||||
|
};
|
||||||
|
|
||||||
|
regulators {
|
||||||
|
LDO1 {
|
||||||
|
regulator-name = "VLDO1_1.0V";
|
||||||
|
regulator-min-microvolt = <1000000>;
|
||||||
|
regulator-max-microvolt = <1000000>;
|
||||||
|
regulator-always-on;
|
||||||
|
|
||||||
|
regulator-state-mem {
|
||||||
|
regulator-on-in-suspend;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// ...
|
||||||
|
|
||||||
|
BUCK1 {
|
||||||
|
regulator-name = "VBUCK1_1.0V";
|
||||||
|
regulator-min-microvolt = <800000>;
|
||||||
|
regulator-max-microvolt = <1000000>;
|
||||||
|
regulator-always-on;
|
||||||
|
|
||||||
|
regulator-state-mem {
|
||||||
|
regulator-off-in-suspend;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// ...
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
307
Documentation/devicetree/bindings/mfd/samsung,s5m8767.yaml
Normal file
307
Documentation/devicetree/bindings/mfd/samsung,s5m8767.yaml
Normal file
@ -0,0 +1,307 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/mfd/samsung,s5m8767.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Samsung S5M8767 Power Management IC
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
This is a part of device tree bindings for S2M and S5M family of Power
|
||||||
|
Management IC (PMIC).
|
||||||
|
|
||||||
|
The Samsung S5M8767 is a Power Management IC which includes voltage
|
||||||
|
and current regulators, RTC, clock outputs and other sub-blocks.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
compatible:
|
||||||
|
const: samsung,s5m8767-pmic
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
$ref: ../clock/samsung,s2mps11.yaml
|
||||||
|
description:
|
||||||
|
Child node describing clock provider.
|
||||||
|
|
||||||
|
interrupts:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
regulators:
|
||||||
|
$ref: ../regulator/samsung,s5m8767.yaml
|
||||||
|
description:
|
||||||
|
List of child nodes that specify the regulators.
|
||||||
|
|
||||||
|
s5m8767,pmic-buck2-dvs-voltage:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
minItems: 8
|
||||||
|
maxItems: 8
|
||||||
|
description: |
|
||||||
|
A set of 8 voltage values in micro-volt (uV) units for buck2 when
|
||||||
|
changing voltage using gpio dvs.
|
||||||
|
|
||||||
|
s5m8767,pmic-buck3-dvs-voltage:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
minItems: 8
|
||||||
|
maxItems: 8
|
||||||
|
description: |
|
||||||
|
A set of 8 voltage values in micro-volt (uV) units for buck3 when
|
||||||
|
changing voltage using gpio dvs.
|
||||||
|
|
||||||
|
s5m8767,pmic-buck4-dvs-voltage:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
minItems: 8
|
||||||
|
maxItems: 8
|
||||||
|
description: |
|
||||||
|
A set of 8 voltage values in micro-volt (uV) units for buck4 when
|
||||||
|
changing voltage using gpio dvs.
|
||||||
|
|
||||||
|
s5m8767,pmic-buck-ds-gpios:
|
||||||
|
minItems: 3
|
||||||
|
maxItems: 3
|
||||||
|
description: |
|
||||||
|
GPIO specifiers for three host gpio's used for selecting GPIO DVS lines.
|
||||||
|
It is one-to-one mapped to dvs gpio lines.
|
||||||
|
|
||||||
|
s5m8767,pmic-buck2-uses-gpio-dvs:
|
||||||
|
type: boolean
|
||||||
|
description: buck2 can be controlled by gpio dvs.
|
||||||
|
|
||||||
|
s5m8767,pmic-buck3-uses-gpio-dvs:
|
||||||
|
type: boolean
|
||||||
|
description: buck3 can be controlled by gpio dvs.
|
||||||
|
|
||||||
|
s5m8767,pmic-buck4-uses-gpio-dvs:
|
||||||
|
type: boolean
|
||||||
|
description: buck4 can be controlled by gpio dvs.
|
||||||
|
|
||||||
|
s5m8767,pmic-buck-default-dvs-idx:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
||||||
|
minimum: 0
|
||||||
|
maximum: 7
|
||||||
|
default: 0
|
||||||
|
description: |
|
||||||
|
Default voltage setting selected from the possible 8 options selectable
|
||||||
|
by the dvs gpios. The value of this property should be between 0 and 7.
|
||||||
|
If not specified or if out of range, the default value of this property
|
||||||
|
is set to 0.
|
||||||
|
|
||||||
|
s5m8767,pmic-buck-dvs-gpios:
|
||||||
|
minItems: 3
|
||||||
|
maxItems: 3
|
||||||
|
description: |
|
||||||
|
GPIO specifiers for three host gpio's used for dvs.
|
||||||
|
|
||||||
|
vinb1-supply:
|
||||||
|
description: Power supply for buck1
|
||||||
|
vinb2-supply:
|
||||||
|
description: Power supply for buck2
|
||||||
|
vinb3-supply:
|
||||||
|
description: Power supply for buck3
|
||||||
|
vinb4-supply:
|
||||||
|
description: Power supply for buck4
|
||||||
|
vinb5-supply:
|
||||||
|
description: Power supply for buck5
|
||||||
|
vinb6-supply:
|
||||||
|
description: Power supply for buck6
|
||||||
|
vinb7-supply:
|
||||||
|
description: Power supply for buck7
|
||||||
|
vinb8-supply:
|
||||||
|
description: Power supply for buck8
|
||||||
|
vinb9-supply:
|
||||||
|
description: Power supply for buck9
|
||||||
|
|
||||||
|
vinl1-supply:
|
||||||
|
description: Power supply for LDO3, LDO10, LDO26, LDO27
|
||||||
|
vinl2-supply:
|
||||||
|
description: Power supply for LDO13, LDO16, LDO25, LDO28
|
||||||
|
vinl3-supply:
|
||||||
|
description: Power supply for LDO11, LDO14
|
||||||
|
vinl4-supply:
|
||||||
|
description: Power supply for LDO4, LDO9
|
||||||
|
vinl5-supply:
|
||||||
|
description: Power supply for LDO12, LDO17, LDO19, LDO23
|
||||||
|
vinl6-supply:
|
||||||
|
description: Power supply for LDO18, LDO20, LDO21, LDO24
|
||||||
|
vinl7-supply:
|
||||||
|
description: Power supply for LDO5, LDO22
|
||||||
|
vinl8-supply:
|
||||||
|
description: Power supply for LDO1, LDO6, LDO7, LDO8, LDO15
|
||||||
|
vinl9-supply:
|
||||||
|
description: Power supply for LDO2
|
||||||
|
|
||||||
|
wakeup-source: true
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- reg
|
||||||
|
- regulators
|
||||||
|
- s5m8767,pmic-buck-ds-gpios
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
s5m8767,pmic-buck2-dvs-voltage: [ 's5m8767,pmic-buck-dvs-gpios' ]
|
||||||
|
s5m8767,pmic-buck3-dvs-voltage: [ 's5m8767,pmic-buck-dvs-gpios' ]
|
||||||
|
s5m8767,pmic-buck4-dvs-voltage: [ 's5m8767,pmic-buck-dvs-gpios' ]
|
||||||
|
s5m8767,pmic-buck2-uses-gpio-dvs: [ 's5m8767,pmic-buck-dvs-gpios', 's5m8767,pmic-buck2-dvs-voltage' ]
|
||||||
|
s5m8767,pmic-buck3-uses-gpio-dvs: [ 's5m8767,pmic-buck-dvs-gpios', 's5m8767,pmic-buck3-dvs-voltage' ]
|
||||||
|
s5m8767,pmic-buck4-uses-gpio-dvs: [ 's5m8767,pmic-buck-dvs-gpios', 's5m8767,pmic-buck4-dvs-voltage' ]
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
allOf:
|
||||||
|
- if:
|
||||||
|
required:
|
||||||
|
- s5m8767,pmic-buck2-uses-gpio-dvs
|
||||||
|
then:
|
||||||
|
properties:
|
||||||
|
s5m8767,pmic-buck3-uses-gpio-dvs: false
|
||||||
|
s5m8767,pmic-buck4-uses-gpio-dvs: false
|
||||||
|
|
||||||
|
- if:
|
||||||
|
required:
|
||||||
|
- s5m8767,pmic-buck3-uses-gpio-dvs
|
||||||
|
then:
|
||||||
|
properties:
|
||||||
|
s5m8767,pmic-buck2-uses-gpio-dvs: false
|
||||||
|
s5m8767,pmic-buck4-uses-gpio-dvs: false
|
||||||
|
|
||||||
|
- if:
|
||||||
|
required:
|
||||||
|
- s5m8767,pmic-buck4-uses-gpio-dvs
|
||||||
|
then:
|
||||||
|
properties:
|
||||||
|
s5m8767,pmic-buck2-uses-gpio-dvs: false
|
||||||
|
s5m8767,pmic-buck3-uses-gpio-dvs: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
pmic@66 {
|
||||||
|
compatible = "samsung,s5m8767-pmic";
|
||||||
|
reg = <0x66>;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpx3>;
|
||||||
|
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>;
|
||||||
|
wakeup-source;
|
||||||
|
|
||||||
|
s5m8767,pmic-buck-default-dvs-idx = <3>;
|
||||||
|
s5m8767,pmic-buck2-uses-gpio-dvs;
|
||||||
|
|
||||||
|
s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>,
|
||||||
|
<&gpd1 1 GPIO_ACTIVE_LOW>,
|
||||||
|
<&gpd1 2 GPIO_ACTIVE_LOW>;
|
||||||
|
|
||||||
|
s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_LOW>,
|
||||||
|
<&gpx2 4 GPIO_ACTIVE_LOW>,
|
||||||
|
<&gpx2 5 GPIO_ACTIVE_LOW>;
|
||||||
|
|
||||||
|
s5m8767,pmic-buck2-dvs-voltage = <1350000>, <1300000>,
|
||||||
|
<1250000>, <1200000>,
|
||||||
|
<1150000>, <1100000>,
|
||||||
|
<1000000>, <950000>;
|
||||||
|
|
||||||
|
s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>,
|
||||||
|
<1100000>, <1100000>,
|
||||||
|
<1000000>, <1000000>,
|
||||||
|
<1000000>, <1000000>;
|
||||||
|
|
||||||
|
s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>,
|
||||||
|
<1200000>, <1200000>,
|
||||||
|
<1200000>, <1200000>,
|
||||||
|
<1200000>, <1200000>;
|
||||||
|
|
||||||
|
clocks {
|
||||||
|
compatible = "samsung,s5m8767-clk";
|
||||||
|
#clock-cells = <1>;
|
||||||
|
clock-output-names = "en32khz_ap", "en32khz_cp", "en32khz_bt";
|
||||||
|
};
|
||||||
|
|
||||||
|
regulators {
|
||||||
|
LDO1 {
|
||||||
|
regulator-name = "VDD_ALIVE";
|
||||||
|
regulator-min-microvolt = <1100000>;
|
||||||
|
regulator-max-microvolt = <1100000>;
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-boot-on;
|
||||||
|
op_mode = <1>; /* Normal Mode */
|
||||||
|
};
|
||||||
|
|
||||||
|
// ...
|
||||||
|
|
||||||
|
BUCK1 {
|
||||||
|
regulator-name = "VDD_MIF";
|
||||||
|
regulator-min-microvolt = <950000>;
|
||||||
|
regulator-max-microvolt = <1100000>;
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-boot-on;
|
||||||
|
op_mode = <1>; /* Normal Mode */
|
||||||
|
};
|
||||||
|
|
||||||
|
BUCK2 {
|
||||||
|
regulator-name = "VDD_ARM";
|
||||||
|
regulator-min-microvolt = <900000>;
|
||||||
|
regulator-max-microvolt = <1350000>;
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-boot-on;
|
||||||
|
op_mode = <1>; /* Normal Mode */
|
||||||
|
};
|
||||||
|
|
||||||
|
// ...
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||||||
|
|
||||||
|
i2c {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
|
||||||
|
pmic@66 {
|
||||||
|
compatible = "samsung,s5m8767-pmic";
|
||||||
|
reg = <0x66>;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpx3>;
|
||||||
|
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>;
|
||||||
|
wakeup-source;
|
||||||
|
|
||||||
|
s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_LOW>,
|
||||||
|
<&gpx2 4 GPIO_ACTIVE_LOW>,
|
||||||
|
<&gpx2 5 GPIO_ACTIVE_LOW>;
|
||||||
|
|
||||||
|
clocks {
|
||||||
|
compatible = "samsung,s5m8767-clk";
|
||||||
|
#clock-cells = <1>;
|
||||||
|
clock-output-names = "en32khz_ap", "en32khz_cp", "en32khz_bt";
|
||||||
|
};
|
||||||
|
|
||||||
|
regulators {
|
||||||
|
LDO1 {
|
||||||
|
regulator-name = "VDD_ALIVE";
|
||||||
|
regulator-min-microvolt = <1100000>;
|
||||||
|
regulator-max-microvolt = <1100000>;
|
||||||
|
regulator-always-on;
|
||||||
|
regulator-boot-on;
|
||||||
|
op_mode = <1>; /* Normal Mode */
|
||||||
|
};
|
||||||
|
|
||||||
|
// ...
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
@ -1,86 +0,0 @@
|
|||||||
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 S2MPA01, 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,s2mpa01.txt
|
|
||||||
- bindings/regulator/samsung,s2mps11.txt
|
|
||||||
- bindings/regulator/samsung,s5m8767.txt
|
|
||||||
- bindings/clock/samsung,s2mps11.txt
|
|
||||||
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: Should be one of the following
|
|
||||||
- "samsung,s2mpa01-pmic",
|
|
||||||
- "samsung,s2mps11-pmic",
|
|
||||||
- "samsung,s2mps13-pmic",
|
|
||||||
- "samsung,s2mps14-pmic",
|
|
||||||
- "samsung,s2mps15-pmic",
|
|
||||||
- "samsung,s2mpu02-pmic",
|
|
||||||
- "samsung,s5m8767-pmic".
|
|
||||||
- reg: Specifies the I2C slave address of the pmic block. It should be 0x66.
|
|
||||||
|
|
||||||
Optional properties:
|
|
||||||
- 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>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
@ -1,79 +0,0 @@
|
|||||||
Binding for Samsung S2MPA01 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 S2MPA01 device 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 S2MPA01 device:
|
|
||||||
- LDOn
|
|
||||||
- valid values for n are 1 to 26
|
|
||||||
- Example: LDO1, LD02, LDO26
|
|
||||||
- BUCKn
|
|
||||||
- valid values for n are 1 to 10.
|
|
||||||
- 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 buck regulator nodes under "regulators" sub-node:
|
|
||||||
- regulator-ramp-delay: ramp delay in uV/us. May be 6250, 12500
|
|
||||||
(default), 25000, or 50000. May be 0 for disabling the ramp delay on
|
|
||||||
BUCK{1,2,3,4}.
|
|
||||||
|
|
||||||
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 the same
|
|
||||||
regulator-ramp-delay value for them.
|
|
||||||
Groups sharing ramp rate:
|
|
||||||
- buck{1,6},
|
|
||||||
- buck{2,4},
|
|
||||||
- buck{8,9,10}.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
s2mpa01_pmic@66 {
|
|
||||||
compatible = "samsung,s2mpa01-pmic";
|
|
||||||
reg = <0x66>;
|
|
||||||
|
|
||||||
regulators {
|
|
||||||
ldo1_reg: LDO1 {
|
|
||||||
regulator-name = "VDD_ALIVE";
|
|
||||||
regulator-min-microvolt = <1000000>;
|
|
||||||
regulator-max-microvolt = <1000000>;
|
|
||||||
};
|
|
||||||
|
|
||||||
ldo2_reg: LDO2 {
|
|
||||||
regulator-name = "VDDQ_MMC2";
|
|
||||||
regulator-min-microvolt = <2800000>;
|
|
||||||
regulator-max-microvolt = <2800000>;
|
|
||||||
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>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
@ -0,0 +1,62 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/regulator/samsung,s2mpa01.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Samsung S2MPA01 Power Management IC regulators
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
This is a part of device tree bindings for S2M and S5M family of Power
|
||||||
|
Management IC (PMIC).
|
||||||
|
|
||||||
|
The S2MPA01 provides buck and LDO regulators.
|
||||||
|
|
||||||
|
See also Documentation/devicetree/bindings/mfd/samsung,s2mpa01.yaml for
|
||||||
|
additional information and example.
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
# 26 LDOs
|
||||||
|
"^LDO([1-9]|1[0-9]|2[0-6])$":
|
||||||
|
type: object
|
||||||
|
$ref: regulator.yaml#
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Properties for single LDO regulator.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- regulator-name
|
||||||
|
|
||||||
|
# 10 bucks
|
||||||
|
"^BUCK([1-9]|10)$":
|
||||||
|
type: object
|
||||||
|
$ref: regulator.yaml#
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Properties for single BUCK regulator.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
regulator-ramp-delay:
|
||||||
|
enum: [0, 6250, 12500, 25000, 50000]
|
||||||
|
default: 12500
|
||||||
|
description: |
|
||||||
|
May be 0 for disabling the ramp delay on BUCK{1,2,3,4}.
|
||||||
|
|
||||||
|
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 the same
|
||||||
|
regulator-ramp-delay value for them.
|
||||||
|
Groups sharing ramp rate:
|
||||||
|
* buck{1,6},
|
||||||
|
* buck{2,4},
|
||||||
|
* buck{8,9,10}.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- regulator-name
|
||||||
|
|
||||||
|
additionalProperties: false
|
@ -1,102 +0,0 @@
|
|||||||
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>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
@ -0,0 +1,44 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/regulator/samsung,s2mps11.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Samsung S2MPS11 Power Management IC regulators
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
This is a part of device tree bindings for S2M and S5M family of Power
|
||||||
|
Management IC (PMIC).
|
||||||
|
|
||||||
|
The S2MPS11 provides buck and LDO regulators.
|
||||||
|
|
||||||
|
See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
|
||||||
|
additional information and example.
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
# 38 LDOs
|
||||||
|
"^LDO([1-9]|[1-2][0-9]|3[0-8])$":
|
||||||
|
type: object
|
||||||
|
$ref: regulator.yaml#
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Properties for single LDO regulator.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- regulator-name
|
||||||
|
|
||||||
|
# 10 bucks
|
||||||
|
"^BUCK([1-9]|10)$":
|
||||||
|
type: object
|
||||||
|
$ref: regulator.yaml#
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Properties for single BUCK regulator.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- regulator-name
|
||||||
|
|
||||||
|
additionalProperties: false
|
@ -0,0 +1,44 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/regulator/samsung,s2mps13.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Samsung S2MPS13 Power Management IC regulators
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
This is a part of device tree bindings for S2M and S5M family of Power
|
||||||
|
Management IC (PMIC).
|
||||||
|
|
||||||
|
The S2MPS13 provides buck and LDO regulators.
|
||||||
|
|
||||||
|
See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
|
||||||
|
additional information and example.
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
# 40 LDOs
|
||||||
|
"^LDO([1-9]|[1-3][0-9]|40)$":
|
||||||
|
type: object
|
||||||
|
$ref: regulator.yaml#
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Properties for single LDO regulator.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- regulator-name
|
||||||
|
|
||||||
|
# 10 bucks
|
||||||
|
"^BUCK([1-9]|10)$":
|
||||||
|
type: object
|
||||||
|
$ref: regulator.yaml#
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Properties for single BUCK regulator.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- regulator-name
|
||||||
|
|
||||||
|
additionalProperties: false
|
@ -0,0 +1,44 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/regulator/samsung,s2mps14.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Samsung S2MPS14 Power Management IC regulators
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
This is a part of device tree bindings for S2M and S5M family of Power
|
||||||
|
Management IC (PMIC).
|
||||||
|
|
||||||
|
The S2MPS14 provides buck and LDO regulators.
|
||||||
|
|
||||||
|
See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
|
||||||
|
additional information and example.
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
# 25 LDOs
|
||||||
|
"^LDO([1-9]|[1][0-9]|2[0-5])$":
|
||||||
|
type: object
|
||||||
|
$ref: regulator.yaml#
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Properties for single LDO regulator.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- regulator-name
|
||||||
|
|
||||||
|
# 5 bucks
|
||||||
|
"^BUCK[1-5]$":
|
||||||
|
type: object
|
||||||
|
$ref: regulator.yaml#
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Properties for single BUCK regulator.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- regulator-name
|
||||||
|
|
||||||
|
additionalProperties: false
|
@ -0,0 +1,44 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/regulator/samsung,s2mps15.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Samsung S2MPS15 Power Management IC regulators
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
This is a part of device tree bindings for S2M and S5M family of Power
|
||||||
|
Management IC (PMIC).
|
||||||
|
|
||||||
|
The S2MPS15 provides buck and LDO regulators.
|
||||||
|
|
||||||
|
See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
|
||||||
|
additional information and example.
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
# 27 LDOs
|
||||||
|
"^LDO([1-9]|[1][0-9]|2[0-7])$":
|
||||||
|
type: object
|
||||||
|
$ref: regulator.yaml#
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Properties for single LDO regulator.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- regulator-name
|
||||||
|
|
||||||
|
# 10 bucks
|
||||||
|
"^BUCK([1-9]|10)$":
|
||||||
|
type: object
|
||||||
|
$ref: regulator.yaml#
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Properties for single BUCK regulator.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- regulator-name
|
||||||
|
|
||||||
|
additionalProperties: false
|
@ -0,0 +1,44 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/regulator/samsung,s2mpu02.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Samsung S2MPU02 Power Management IC regulators
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
This is a part of device tree bindings for S2M and S5M family of Power
|
||||||
|
Management IC (PMIC).
|
||||||
|
|
||||||
|
The S2MPU02 provides buck and LDO regulators.
|
||||||
|
|
||||||
|
See also Documentation/devicetree/bindings/mfd/samsung,s2mps11.yaml for
|
||||||
|
additional information and example.
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
# 28 LDOs
|
||||||
|
"^LDO([1-9]|1[0-9]|2[0-8])$":
|
||||||
|
type: object
|
||||||
|
$ref: regulator.yaml#
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Properties for single LDO regulator.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- regulator-name
|
||||||
|
|
||||||
|
# 7 bucks
|
||||||
|
"^BUCK[1-7]$":
|
||||||
|
type: object
|
||||||
|
$ref: regulator.yaml#
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Properties for single BUCK regulator.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- regulator-name
|
||||||
|
|
||||||
|
additionalProperties: false
|
@ -1,145 +0,0 @@
|
|||||||
Binding for Samsung S5M8767 regulator block
|
|
||||||
===========================================
|
|
||||||
|
|
||||||
This is a part of device tree bindings for S5M family multi-function devices.
|
|
||||||
More information can be found in bindings/mfd/sec-core.txt file.
|
|
||||||
|
|
||||||
The S5M8767 device 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
|
|
||||||
|
|
||||||
|
|
||||||
Required properties of the main device node (the parent!):
|
|
||||||
- s5m8767,pmic-buck2-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
|
|
||||||
units for buck2 when changing voltage using gpio dvs. Refer to [1] below
|
|
||||||
for additional information.
|
|
||||||
|
|
||||||
- s5m8767,pmic-buck3-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
|
|
||||||
units for buck3 when changing voltage using gpio dvs. Refer to [1] below
|
|
||||||
for additional information.
|
|
||||||
|
|
||||||
- s5m8767,pmic-buck4-dvs-voltage: A set of 8 voltage values in micro-volt (uV)
|
|
||||||
units for buck4 when changing voltage using gpio dvs. Refer to [1] below
|
|
||||||
for additional information.
|
|
||||||
|
|
||||||
- s5m8767,pmic-buck-ds-gpios: GPIO specifiers for three host gpio's used
|
|
||||||
for selecting GPIO DVS lines. It is one-to-one mapped to dvs gpio lines.
|
|
||||||
|
|
||||||
[1] If none of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
|
|
||||||
property is specified, the 's5m8767,pmic-buck[2/3/4]-dvs-voltage'
|
|
||||||
property should specify atleast one voltage level (which would be a
|
|
||||||
safe operating voltage).
|
|
||||||
|
|
||||||
If either of the 's5m8767,pmic-buck[2/3/4]-uses-gpio-dvs' optional
|
|
||||||
property is specified, then all the eight voltage values for the
|
|
||||||
's5m8767,pmic-buck[2/3/4]-dvs-voltage' should be specified.
|
|
||||||
|
|
||||||
Optional properties of the main device node (the parent!):
|
|
||||||
- s5m8767,pmic-buck2-uses-gpio-dvs: 'buck2' can be controlled by gpio dvs.
|
|
||||||
- s5m8767,pmic-buck3-uses-gpio-dvs: 'buck3' can be controlled by gpio dvs.
|
|
||||||
- s5m8767,pmic-buck4-uses-gpio-dvs: 'buck4' can be controlled by gpio dvs.
|
|
||||||
|
|
||||||
Additional properties required if either of the optional properties are used:
|
|
||||||
|
|
||||||
- s5m8767,pmic-buck234-default-dvs-idx: Default voltage setting selected from
|
|
||||||
the possible 8 options selectable by the dvs gpios. The value of this
|
|
||||||
property should be between 0 and 7. If not specified or if out of range, the
|
|
||||||
default value of this property is set to 0.
|
|
||||||
|
|
||||||
- s5m8767,pmic-buck-dvs-gpios: GPIO specifiers for three host gpio's used
|
|
||||||
for dvs. The format of the gpio specifier depends in the gpio controller.
|
|
||||||
|
|
||||||
|
|
||||||
Names of regulators supported by S5M8767 device:
|
|
||||||
- LDOn
|
|
||||||
- valid values for n are 1 to 28
|
|
||||||
- Example: LDO1, LDO2, LDO28
|
|
||||||
- BUCKn
|
|
||||||
- valid values for n are 1 to 9.
|
|
||||||
- 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:
|
|
||||||
- op_mode: describes the different operating modes of the LDO's with
|
|
||||||
power mode change in SOC. The different possible values are,
|
|
||||||
0 - always off mode
|
|
||||||
1 - on in normal mode
|
|
||||||
2 - low power mode
|
|
||||||
3 - suspend mode
|
|
||||||
- s5m8767,pmic-ext-control-gpios: (optional) GPIO specifier for one
|
|
||||||
GPIO controlling this regulator
|
|
||||||
(enable/disable); This is valid only
|
|
||||||
for buck9.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
|
|
||||||
s5m8767_pmic@66 {
|
|
||||||
compatible = "samsung,s5m8767-pmic";
|
|
||||||
reg = <0x66>;
|
|
||||||
|
|
||||||
s5m8767,pmic-buck2-uses-gpio-dvs;
|
|
||||||
s5m8767,pmic-buck3-uses-gpio-dvs;
|
|
||||||
s5m8767,pmic-buck4-uses-gpio-dvs;
|
|
||||||
|
|
||||||
s5m8767,pmic-buck-default-dvs-idx = <0>;
|
|
||||||
|
|
||||||
s5m8767,pmic-buck-dvs-gpios = <&gpx0 0 0>, /* DVS1 */
|
|
||||||
<&gpx0 1 0>, /* DVS2 */
|
|
||||||
<&gpx0 2 0>; /* DVS3 */
|
|
||||||
|
|
||||||
s5m8767,pmic-buck-ds-gpios = <&gpx2 3 0>, /* SET1 */
|
|
||||||
<&gpx2 4 0>, /* SET2 */
|
|
||||||
<&gpx2 5 0>; /* SET3 */
|
|
||||||
|
|
||||||
s5m8767,pmic-buck2-dvs-voltage = <1350000>, <1300000>,
|
|
||||||
<1250000>, <1200000>,
|
|
||||||
<1150000>, <1100000>,
|
|
||||||
<1000000>, <950000>;
|
|
||||||
|
|
||||||
s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>,
|
|
||||||
<1100000>, <1100000>,
|
|
||||||
<1000000>, <1000000>,
|
|
||||||
<1000000>, <1000000>;
|
|
||||||
|
|
||||||
s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>,
|
|
||||||
<1200000>, <1200000>,
|
|
||||||
<1200000>, <1200000>,
|
|
||||||
<1200000>, <1200000>;
|
|
||||||
|
|
||||||
regulators {
|
|
||||||
ldo1_reg: LDO1 {
|
|
||||||
regulator-name = "VDD_ABB_3.3V";
|
|
||||||
regulator-min-microvolt = <3300000>;
|
|
||||||
regulator-max-microvolt = <3300000>;
|
|
||||||
op_mode = <1>; /* Normal Mode */
|
|
||||||
};
|
|
||||||
|
|
||||||
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_1.2V";
|
|
||||||
regulator-min-microvolt = <950000>;
|
|
||||||
regulator-max-microvolt = <1350000>;
|
|
||||||
regulator-always-on;
|
|
||||||
regulator-boot-on;
|
|
||||||
};
|
|
||||||
|
|
||||||
vemmc_reg: BUCK9 {
|
|
||||||
regulator-name = "VMEM_VDD_2.8V";
|
|
||||||
regulator-min-microvolt = <2800000>;
|
|
||||||
regulator-max-microvolt = <2800000>;
|
|
||||||
op_mode = <3>; /* Standby Mode */
|
|
||||||
s5m8767,pmic-ext-control-gpios = <&gpk0 2 0>;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
@ -0,0 +1,74 @@
|
|||||||
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/regulator/samsung,s5m8767.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Samsung S5M8767 Power Management IC regulators
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
|
||||||
|
|
||||||
|
description: |
|
||||||
|
This is a part of device tree bindings for S2M and S5M family of Power
|
||||||
|
Management IC (PMIC).
|
||||||
|
|
||||||
|
The S5M8767 provides buck and LDO regulators.
|
||||||
|
|
||||||
|
See also Documentation/devicetree/bindings/mfd/samsung,s5m8767.yaml for
|
||||||
|
additional information and example.
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
# 28 LDOs
|
||||||
|
"^LDO([1-9]|1[0-9]|2[0-8])$":
|
||||||
|
type: object
|
||||||
|
$ref: regulator.yaml#
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Properties for single LDO regulator.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
op_mode:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
enum: [0, 1, 2, 3]
|
||||||
|
default: 1
|
||||||
|
description: |
|
||||||
|
Describes the different operating modes of the LDO's with power mode
|
||||||
|
change in SOC. The different possible values are:
|
||||||
|
0 - always off mode
|
||||||
|
1 - on in normal mode
|
||||||
|
2 - low power mode
|
||||||
|
3 - suspend mode
|
||||||
|
|
||||||
|
required:
|
||||||
|
- regulator-name
|
||||||
|
|
||||||
|
# 8 bucks
|
||||||
|
"^BUCK[1-8]$":
|
||||||
|
type: object
|
||||||
|
$ref: regulator.yaml#
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Properties for single BUCK regulator.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- regulator-name
|
||||||
|
|
||||||
|
# 9 buck
|
||||||
|
"^BUCK9$":
|
||||||
|
type: object
|
||||||
|
$ref: regulator.yaml#
|
||||||
|
unevaluatedProperties: false
|
||||||
|
description:
|
||||||
|
Properties for single BUCK regulator.
|
||||||
|
|
||||||
|
properties:
|
||||||
|
s5m8767,pmic-ext-control-gpios:
|
||||||
|
maxItems: 1
|
||||||
|
description: |
|
||||||
|
GPIO specifier for one GPIO controlling this regulator on/off.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- regulator-name
|
||||||
|
|
||||||
|
additionalProperties: false
|
@ -16502,10 +16502,11 @@ M: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
|
|||||||
L: linux-kernel@vger.kernel.org
|
L: linux-kernel@vger.kernel.org
|
||||||
L: linux-samsung-soc@vger.kernel.org
|
L: linux-samsung-soc@vger.kernel.org
|
||||||
S: Supported
|
S: Supported
|
||||||
F: Documentation/devicetree/bindings/clock/samsung,s2mps11.txt
|
F: Documentation/devicetree/bindings/clock/samsung,s2mps11.yaml
|
||||||
F: Documentation/devicetree/bindings/mfd/samsung,sec-core.txt
|
F: Documentation/devicetree/bindings/mfd/samsung,s2m*.yaml
|
||||||
F: Documentation/devicetree/bindings/regulator/samsung,s2m*.txt
|
F: Documentation/devicetree/bindings/mfd/samsung,s5m*.yaml
|
||||||
F: Documentation/devicetree/bindings/regulator/samsung,s5m*.txt
|
F: Documentation/devicetree/bindings/regulator/samsung,s2m*.yaml
|
||||||
|
F: Documentation/devicetree/bindings/regulator/samsung,s5m*.yaml
|
||||||
F: drivers/clk/clk-s2mps11.c
|
F: drivers/clk/clk-s2mps11.c
|
||||||
F: drivers/mfd/sec*.c
|
F: drivers/mfd/sec*.c
|
||||||
F: drivers/regulator/s2m*.c
|
F: drivers/regulator/s2m*.c
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include <linux/mfd/core.h>
|
#include <linux/mfd/core.h>
|
||||||
#include <linux/mfd/hi6421-spmi-pmic.h>
|
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/regmap.h>
|
#include <linux/regmap.h>
|
||||||
@ -30,19 +29,14 @@ static const struct regmap_config regmap_config = {
|
|||||||
static int hi6421_spmi_pmic_probe(struct spmi_device *sdev)
|
static int hi6421_spmi_pmic_probe(struct spmi_device *sdev)
|
||||||
{
|
{
|
||||||
struct device *dev = &sdev->dev;
|
struct device *dev = &sdev->dev;
|
||||||
|
struct regmap *regmap;
|
||||||
int ret;
|
int ret;
|
||||||
struct hi6421_spmi_pmic *ddata;
|
|
||||||
ddata = devm_kzalloc(dev, sizeof(*ddata), GFP_KERNEL);
|
|
||||||
if (!ddata)
|
|
||||||
return -ENOMEM;
|
|
||||||
|
|
||||||
ddata->regmap = devm_regmap_init_spmi_ext(sdev, ®map_config);
|
regmap = devm_regmap_init_spmi_ext(sdev, ®map_config);
|
||||||
if (IS_ERR(ddata->regmap))
|
if (IS_ERR(regmap))
|
||||||
return PTR_ERR(ddata->regmap);
|
return PTR_ERR(regmap);
|
||||||
|
|
||||||
ddata->dev = dev;
|
dev_set_drvdata(&sdev->dev, regmap);
|
||||||
|
|
||||||
dev_set_drvdata(&sdev->dev, ddata);
|
|
||||||
|
|
||||||
ret = devm_mfd_add_devices(&sdev->dev, PLATFORM_DEVID_NONE,
|
ret = devm_mfd_add_devices(&sdev->dev, PLATFORM_DEVID_NONE,
|
||||||
hi6421v600_devs, ARRAY_SIZE(hi6421v600_devs),
|
hi6421v600_devs, ARRAY_SIZE(hi6421v600_devs),
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
#include <linux/bitops.h>
|
#include <linux/bitops.h>
|
||||||
#include <linux/interrupt.h>
|
#include <linux/interrupt.h>
|
||||||
#include <linux/irq.h>
|
#include <linux/irq.h>
|
||||||
#include <linux/mfd/hi6421-spmi-pmic.h>
|
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/of_gpio.h>
|
#include <linux/of_gpio.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
@ -220,7 +219,7 @@ static int hi6421v600_irq_probe(struct platform_device *pdev)
|
|||||||
struct platform_device *pmic_pdev;
|
struct platform_device *pmic_pdev;
|
||||||
struct device *dev = &pdev->dev;
|
struct device *dev = &pdev->dev;
|
||||||
struct hi6421v600_irq *priv;
|
struct hi6421v600_irq *priv;
|
||||||
struct hi6421_spmi_pmic *pmic;
|
struct regmap *regmap;
|
||||||
unsigned int virq;
|
unsigned int virq;
|
||||||
int i, ret;
|
int i, ret;
|
||||||
|
|
||||||
@ -229,8 +228,8 @@ static int hi6421v600_irq_probe(struct platform_device *pdev)
|
|||||||
* which should first set drvdata. If this doesn't happen, hit
|
* which should first set drvdata. If this doesn't happen, hit
|
||||||
* a warn on and return.
|
* a warn on and return.
|
||||||
*/
|
*/
|
||||||
pmic = dev_get_drvdata(pmic_dev);
|
regmap = dev_get_drvdata(pmic_dev);
|
||||||
if (WARN_ON(!pmic))
|
if (WARN_ON(!regmap))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
|
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
|
||||||
@ -238,7 +237,7 @@ static int hi6421v600_irq_probe(struct platform_device *pdev)
|
|||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
priv->dev = dev;
|
priv->dev = dev;
|
||||||
priv->regmap = pmic->regmap;
|
priv->regmap = regmap;
|
||||||
|
|
||||||
spin_lock_init(&priv->lock);
|
spin_lock_init(&priv->lock);
|
||||||
|
|
||||||
|
@ -9,8 +9,8 @@
|
|||||||
// Guodong Xu <guodong.xu@linaro.org>
|
// Guodong Xu <guodong.xu@linaro.org>
|
||||||
|
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/mfd/hi6421-spmi-pmic.h>
|
|
||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
|
#include <linux/of.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
#include <linux/regmap.h>
|
#include <linux/regmap.h>
|
||||||
#include <linux/regulator/driver.h>
|
#include <linux/regulator/driver.h>
|
||||||
@ -237,7 +237,7 @@ static int hi6421_spmi_regulator_probe(struct platform_device *pdev)
|
|||||||
struct hi6421_spmi_reg_priv *priv;
|
struct hi6421_spmi_reg_priv *priv;
|
||||||
struct hi6421_spmi_reg_info *info;
|
struct hi6421_spmi_reg_info *info;
|
||||||
struct device *dev = &pdev->dev;
|
struct device *dev = &pdev->dev;
|
||||||
struct hi6421_spmi_pmic *pmic;
|
struct regmap *regmap;
|
||||||
struct regulator_dev *rdev;
|
struct regulator_dev *rdev;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -246,8 +246,8 @@ static int hi6421_spmi_regulator_probe(struct platform_device *pdev)
|
|||||||
* which should first set drvdata. If this doesn't happen, hit
|
* which should first set drvdata. If this doesn't happen, hit
|
||||||
* a warn on and return.
|
* a warn on and return.
|
||||||
*/
|
*/
|
||||||
pmic = dev_get_drvdata(pmic_dev);
|
regmap = dev_get_drvdata(pmic_dev);
|
||||||
if (WARN_ON(!pmic))
|
if (WARN_ON(!regmap))
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
|
||||||
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
|
priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
|
||||||
@ -261,7 +261,7 @@ static int hi6421_spmi_regulator_probe(struct platform_device *pdev)
|
|||||||
|
|
||||||
config.dev = pdev->dev.parent;
|
config.dev = pdev->dev.parent;
|
||||||
config.driver_data = priv;
|
config.driver_data = priv;
|
||||||
config.regmap = pmic->regmap;
|
config.regmap = regmap;
|
||||||
|
|
||||||
rdev = devm_regulator_register(dev, &info->desc, &config);
|
rdev = devm_regulator_register(dev, &info->desc, &config);
|
||||||
if (IS_ERR(rdev)) {
|
if (IS_ERR(rdev)) {
|
||||||
|
@ -850,18 +850,15 @@ static int s5m8767_pmic_probe(struct platform_device *pdev)
|
|||||||
/* DS4 GPIO */
|
/* DS4 GPIO */
|
||||||
gpio_direction_output(pdata->buck_ds[2], 0x0);
|
gpio_direction_output(pdata->buck_ds[2], 0x0);
|
||||||
|
|
||||||
if (pdata->buck2_gpiodvs || pdata->buck3_gpiodvs ||
|
regmap_update_bits(s5m8767->iodev->regmap_pmic,
|
||||||
pdata->buck4_gpiodvs) {
|
S5M8767_REG_BUCK2CTRL, 1 << 1,
|
||||||
regmap_update_bits(s5m8767->iodev->regmap_pmic,
|
(pdata->buck2_gpiodvs) ? (1 << 1) : (0 << 1));
|
||||||
S5M8767_REG_BUCK2CTRL, 1 << 1,
|
regmap_update_bits(s5m8767->iodev->regmap_pmic,
|
||||||
(pdata->buck2_gpiodvs) ? (1 << 1) : (0 << 1));
|
S5M8767_REG_BUCK3CTRL, 1 << 1,
|
||||||
regmap_update_bits(s5m8767->iodev->regmap_pmic,
|
(pdata->buck3_gpiodvs) ? (1 << 1) : (0 << 1));
|
||||||
S5M8767_REG_BUCK3CTRL, 1 << 1,
|
regmap_update_bits(s5m8767->iodev->regmap_pmic,
|
||||||
(pdata->buck3_gpiodvs) ? (1 << 1) : (0 << 1));
|
S5M8767_REG_BUCK4CTRL, 1 << 1,
|
||||||
regmap_update_bits(s5m8767->iodev->regmap_pmic,
|
(pdata->buck4_gpiodvs) ? (1 << 1) : (0 << 1));
|
||||||
S5M8767_REG_BUCK4CTRL, 1 << 1,
|
|
||||||
(pdata->buck4_gpiodvs) ? (1 << 1) : (0 << 1));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Initialize GPIO DVS registers */
|
/* Initialize GPIO DVS registers */
|
||||||
for (i = 0; i < 8; i++) {
|
for (i = 0; i < 8; i++) {
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
/* SPDX-License-Identifier: GPL-2.0 */
|
|
||||||
/*
|
|
||||||
* Header file for device driver Hi6421 PMIC
|
|
||||||
*
|
|
||||||
* Copyright (c) 2013 Linaro Ltd.
|
|
||||||
* Copyright (C) 2011 Hisilicon.
|
|
||||||
* Copyright (c) 2020-2021 Huawei Technologies Co., Ltd
|
|
||||||
*
|
|
||||||
* Guodong Xu <guodong.xu@linaro.org>
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef __HISI_PMIC_H
|
|
||||||
#define __HISI_PMIC_H
|
|
||||||
|
|
||||||
#include <linux/irqdomain.h>
|
|
||||||
#include <linux/regmap.h>
|
|
||||||
|
|
||||||
struct hi6421_spmi_pmic {
|
|
||||||
struct resource *res;
|
|
||||||
struct device *dev;
|
|
||||||
void __iomem *regs;
|
|
||||||
struct regmap *regmap;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* __HISI_PMIC_H */
|
|
Loading…
x
Reference in New Issue
Block a user