Add devicetree binding for Actions Semi ATC260x PMICs.
Signed-off-by: Cristian Ciocaltea
---
Changes in v3 (according to Rob's review):
- Dropped the 'pwrc' and 'onkey' nodes
- Used a common 'reset-time-sec' property
.../bindings/mfd/actions,atc260x.yaml | 181 ++
1 file changed, 181 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mfd/actions,atc260x.yaml
diff --git a/Documentation/devicetree/bindings/mfd/actions,atc260x.yaml
b/Documentation/devicetree/bindings/mfd/actions,atc260x.yaml
new file mode 100644
index ..86aab77ba688
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/actions,atc260x.yaml
@@ -0,0 +1,181 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/actions,atc260x.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Actions Semi ATC260x Power Management IC bindings
+
+maintainers:
+ - Manivannan Sadhasivam
+ - Cristian Ciocaltea
+
+description: |
+ ATC260x series PMICs integrates Audio Codec, Power Management, RTC, IR
+ and GPIO controller blocks. Currently only the PM related functionalities
+ (i.e. regulators and system power-off/reboot) for the ATC2603C and ATC2609A
+ chip variants are supported.
+ ATC2603C includes 3 programmable DC-DC converters and 9 LDO regulators.
+ ATC2609A includes 5 programmable DC-DC converters and 10 LDO regulators.
+
+allOf:
+ - $ref: ../input/input.yaml
+
+properties:
+ compatible:
+enum:
+ - actions,atc2603c
+ - actions,atc2609a
+
+ reg:
+maxItems: 1
+
+ interrupts:
+maxItems: 1
+
+ reset-time-sec:
+description: |
+ Duration in seconds which the key should be kept pressed for device
+ to reset automatically. The hardware default is 8. Use 0 to disable
+ this functionality.
+enum: [0, 6, 8, 10, 12]
+
+ regulators:
+type: object
+description: |
+ List of child nodes specifying the regulators, depending on chip variant:
+ * ATC2603C: dcdc[1-3], ldo[1-3,5-8,11], switchldo1
+ * ATC2609A: dcdc[0-4], ldo[0-9]
+
+properties:
+ compatible:
+enum:
+ - actions,atc2603c-regulator
+ - actions,atc2609a-regulator
+
+ switchldo1:
+type: object
+$ref: ../regulator/regulator.yaml
+
+properties:
+ regulator-name: true
+ regulator-boot-on: true
+ regulator-always-on: true
+ regulator-min-microvolt: true
+ regulator-max-microvolt: true
+ regulator-allow-bypass: true
+ regulator-active-discharge: true
+
+additionalProperties: false
+
+patternProperties:
+ "^(dcdc[0-4]|ldo[0-9]|ldo11|switchldo1)-supply$":
+description: ATC260x voltage regulators supplies
+
+ "^(dcdc[0-4]|ldo[0-9]|ldo11)$":
+type: object
+$ref: ../regulator/regulator.yaml
+
+properties:
+ regulator-name: true
+ regulator-boot-on: true
+ regulator-always-on: true
+ regulator-min-microvolt: true
+ regulator-max-microvolt: true
+ regulator-allow-bypass: true
+
+additionalProperties: false
+
+allOf:
+ - if:
+ properties:
+compatible:
+ contains:
+const: actions,atc2603c-regulator
+then:
+ patternProperties:
+"^(dcdc[0,4]|ldo[0,4,9])(-supply)?$": false
+
+"^(ldo|dcdc)":
+ properties:
+regulator-allow-bypass: false
+ - if:
+ properties:
+compatible:
+ contains:
+const: actions,atc2609a-regulator
+then:
+ patternProperties:
+"^(ldo11|switchldo1)(-supply)?$": false
+
+"^(dcdc|ldo[3-9])":
+ properties:
+regulator-allow-bypass: false
+
+required:
+ - compatible
+
+additionalProperties: false
+
+additionalProperties: false
+
+required:
+ - compatible
+ - reg
+ - interrupts
+
+examples:
+ - |
+#include
+i2c0 {
+#address-cells = <1>;
+#size-cells = <0>;
+
+pmic@65 {
+compatible = "actions,atc2603c";
+reg = <0x65>;
+interrupt-parent = <&sirq>;
+interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
+
+reset-time-sec = <6>;
+
+regulators {
+compatible = "actions,atc2603c-regulator";
+
+dcdc1-supply = <®_5v0>;
+dcdc3-supply = <®_5v0>;
+ldo5-supply = <®_5v0>;
+switchldo1-supply = <&vcc>;
+
+vdd_cpu: dcdc1 {
+regulator-name = "VDD_CPU";
+regulator-min-microvolt = <70>;
+regulator-max-microvolt = <140>;
+regulator-always-on;
+};
+
+vcc: dcdc3 {
+regulator-name = "VCC";
+