xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/actions,atc260x.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
12eb4d8dcSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
22eb4d8dcSEmmanuel Vadot%YAML 1.2
32eb4d8dcSEmmanuel Vadot---
42eb4d8dcSEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/actions,atc260x.yaml#
52eb4d8dcSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
62eb4d8dcSEmmanuel Vadot
78bab661aSEmmanuel Vadottitle: Actions Semi ATC260x Power Management IC
82eb4d8dcSEmmanuel Vadot
92eb4d8dcSEmmanuel Vadotmaintainers:
102eb4d8dcSEmmanuel Vadot  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
112eb4d8dcSEmmanuel Vadot  - Cristian Ciocaltea <cristian.ciocaltea@gmail.com>
122eb4d8dcSEmmanuel Vadot
132eb4d8dcSEmmanuel Vadotdescription: |
142eb4d8dcSEmmanuel Vadot  ATC260x series PMICs integrates Audio Codec, Power Management, RTC, IR
152eb4d8dcSEmmanuel Vadot  and GPIO controller blocks. Currently only the PM related functionalities
162eb4d8dcSEmmanuel Vadot  (i.e. regulators and system power-off/reboot) for the ATC2603C and ATC2609A
172eb4d8dcSEmmanuel Vadot  chip variants are supported.
182eb4d8dcSEmmanuel Vadot  ATC2603C includes 3 programmable DC-DC converters, 9 programmable LDO
192eb4d8dcSEmmanuel Vadot  regulators and 1 fixed LDO regulator.
202eb4d8dcSEmmanuel Vadot  ATC2609A includes 5 programmable DC-DC converters and 10 programmable LDO
212eb4d8dcSEmmanuel Vadot  regulators.
222eb4d8dcSEmmanuel Vadot
232eb4d8dcSEmmanuel VadotallOf:
242eb4d8dcSEmmanuel Vadot  - $ref: ../input/input.yaml
252eb4d8dcSEmmanuel Vadot
262eb4d8dcSEmmanuel Vadotproperties:
272eb4d8dcSEmmanuel Vadot  compatible:
282eb4d8dcSEmmanuel Vadot    enum:
292eb4d8dcSEmmanuel Vadot      - actions,atc2603c
302eb4d8dcSEmmanuel Vadot      - actions,atc2609a
312eb4d8dcSEmmanuel Vadot
322eb4d8dcSEmmanuel Vadot  reg:
332eb4d8dcSEmmanuel Vadot    maxItems: 1
342eb4d8dcSEmmanuel Vadot
352eb4d8dcSEmmanuel Vadot  interrupts:
362eb4d8dcSEmmanuel Vadot    maxItems: 1
372eb4d8dcSEmmanuel Vadot
382eb4d8dcSEmmanuel Vadot  reset-time-sec:
392eb4d8dcSEmmanuel Vadot    description: |
402eb4d8dcSEmmanuel Vadot      Duration in seconds which the key should be kept pressed for device
412eb4d8dcSEmmanuel Vadot      to reset automatically. The hardware default is 8. Use 0 to disable
422eb4d8dcSEmmanuel Vadot      this functionality.
432eb4d8dcSEmmanuel Vadot    enum: [0, 6, 8, 10, 12]
442eb4d8dcSEmmanuel Vadot
452eb4d8dcSEmmanuel Vadot  regulators:
462eb4d8dcSEmmanuel Vadot    type: object
472eb4d8dcSEmmanuel Vadot    description: |
482eb4d8dcSEmmanuel Vadot      List of child nodes specifying the regulators, depending on chip variant:
492eb4d8dcSEmmanuel Vadot      * ATC2603C: dcdc[1-3], ldo[1-3,5-8,11,12], switchldo1
502eb4d8dcSEmmanuel Vadot      * ATC2609A: dcdc[0-4], ldo[0-9]
512eb4d8dcSEmmanuel Vadot
522eb4d8dcSEmmanuel Vadot    properties:
532eb4d8dcSEmmanuel Vadot      compatible:
542eb4d8dcSEmmanuel Vadot        enum:
552eb4d8dcSEmmanuel Vadot          - actions,atc2603c-regulator
562eb4d8dcSEmmanuel Vadot          - actions,atc2609a-regulator
572eb4d8dcSEmmanuel Vadot
582eb4d8dcSEmmanuel Vadot      switchldo1:
592eb4d8dcSEmmanuel Vadot        type: object
602eb4d8dcSEmmanuel Vadot        $ref: ../regulator/regulator.yaml
612eb4d8dcSEmmanuel Vadot
622eb4d8dcSEmmanuel Vadot        properties:
632eb4d8dcSEmmanuel Vadot          regulator-name: true
642eb4d8dcSEmmanuel Vadot          regulator-boot-on: true
652eb4d8dcSEmmanuel Vadot          regulator-always-on: true
662eb4d8dcSEmmanuel Vadot          regulator-min-microvolt: true
672eb4d8dcSEmmanuel Vadot          regulator-max-microvolt: true
682eb4d8dcSEmmanuel Vadot          regulator-allow-bypass: true
692eb4d8dcSEmmanuel Vadot          regulator-active-discharge: true
702eb4d8dcSEmmanuel Vadot
712eb4d8dcSEmmanuel Vadot        additionalProperties: false
722eb4d8dcSEmmanuel Vadot
732eb4d8dcSEmmanuel Vadot    patternProperties:
742eb4d8dcSEmmanuel Vadot      "^(dcdc[0-4]|ldo[0-9]|ldo1[1-2]|switchldo1)-supply$":
752eb4d8dcSEmmanuel Vadot        description: ATC260x voltage regulators supplies
762eb4d8dcSEmmanuel Vadot
772eb4d8dcSEmmanuel Vadot      "^(dcdc[0-4]|ldo[0-9]|ldo1[1-2])$":
782eb4d8dcSEmmanuel Vadot        type: object
792eb4d8dcSEmmanuel Vadot        $ref: ../regulator/regulator.yaml
802eb4d8dcSEmmanuel Vadot
812eb4d8dcSEmmanuel Vadot        properties:
822eb4d8dcSEmmanuel Vadot          regulator-name: true
832eb4d8dcSEmmanuel Vadot          regulator-boot-on: true
842eb4d8dcSEmmanuel Vadot          regulator-always-on: true
852eb4d8dcSEmmanuel Vadot          regulator-min-microvolt: true
862eb4d8dcSEmmanuel Vadot          regulator-max-microvolt: true
872eb4d8dcSEmmanuel Vadot          regulator-allow-bypass: true
882eb4d8dcSEmmanuel Vadot
892eb4d8dcSEmmanuel Vadot        additionalProperties: false
902eb4d8dcSEmmanuel Vadot
912eb4d8dcSEmmanuel Vadot    allOf:
922eb4d8dcSEmmanuel Vadot      - if:
932eb4d8dcSEmmanuel Vadot          properties:
942eb4d8dcSEmmanuel Vadot            compatible:
952eb4d8dcSEmmanuel Vadot              contains:
962eb4d8dcSEmmanuel Vadot                const: actions,atc2603c-regulator
972eb4d8dcSEmmanuel Vadot        then:
982eb4d8dcSEmmanuel Vadot          patternProperties:
992eb4d8dcSEmmanuel Vadot            "^(dcdc[0,4]|ldo[0,4,9])(-supply)?$": false
1002eb4d8dcSEmmanuel Vadot
1012eb4d8dcSEmmanuel Vadot            "^(ldo|dcdc)":
1022eb4d8dcSEmmanuel Vadot              properties:
1032eb4d8dcSEmmanuel Vadot                regulator-allow-bypass: false
1042eb4d8dcSEmmanuel Vadot      - if:
1052eb4d8dcSEmmanuel Vadot          properties:
1062eb4d8dcSEmmanuel Vadot            compatible:
1072eb4d8dcSEmmanuel Vadot              contains:
1082eb4d8dcSEmmanuel Vadot                const: actions,atc2609a-regulator
1092eb4d8dcSEmmanuel Vadot        then:
1102eb4d8dcSEmmanuel Vadot          patternProperties:
1112eb4d8dcSEmmanuel Vadot            "^(ldo1[1-2]|switchldo1)(-supply)?$": false
1122eb4d8dcSEmmanuel Vadot
1132eb4d8dcSEmmanuel Vadot            "^(dcdc|ldo[3-9])":
1142eb4d8dcSEmmanuel Vadot              properties:
1152eb4d8dcSEmmanuel Vadot                regulator-allow-bypass: false
1162eb4d8dcSEmmanuel Vadot
1172eb4d8dcSEmmanuel Vadot    required:
1182eb4d8dcSEmmanuel Vadot      - compatible
1192eb4d8dcSEmmanuel Vadot
1202eb4d8dcSEmmanuel Vadot    additionalProperties: false
1212eb4d8dcSEmmanuel Vadot
1222eb4d8dcSEmmanuel VadotadditionalProperties: false
1232eb4d8dcSEmmanuel Vadot
1242eb4d8dcSEmmanuel Vadotrequired:
1252eb4d8dcSEmmanuel Vadot  - compatible
1262eb4d8dcSEmmanuel Vadot  - reg
1272eb4d8dcSEmmanuel Vadot  - interrupts
1282eb4d8dcSEmmanuel Vadot
1292eb4d8dcSEmmanuel Vadotexamples:
1302eb4d8dcSEmmanuel Vadot  - |
1312eb4d8dcSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
132*fac71e4eSEmmanuel Vadot    i2c {
1332eb4d8dcSEmmanuel Vadot        #address-cells = <1>;
1342eb4d8dcSEmmanuel Vadot        #size-cells = <0>;
1352eb4d8dcSEmmanuel Vadot
1362eb4d8dcSEmmanuel Vadot        pmic@65 {
1372eb4d8dcSEmmanuel Vadot            compatible = "actions,atc2603c";
1382eb4d8dcSEmmanuel Vadot            reg = <0x65>;
1392eb4d8dcSEmmanuel Vadot            interrupt-parent = <&sirq>;
1402eb4d8dcSEmmanuel Vadot            interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
1412eb4d8dcSEmmanuel Vadot
1422eb4d8dcSEmmanuel Vadot            reset-time-sec = <6>;
1432eb4d8dcSEmmanuel Vadot
1442eb4d8dcSEmmanuel Vadot            regulators {
1452eb4d8dcSEmmanuel Vadot                compatible = "actions,atc2603c-regulator";
1462eb4d8dcSEmmanuel Vadot
1472eb4d8dcSEmmanuel Vadot                dcdc1-supply = <&reg_5v0>;
1482eb4d8dcSEmmanuel Vadot                dcdc3-supply = <&reg_5v0>;
1492eb4d8dcSEmmanuel Vadot                ldo5-supply = <&reg_5v0>;
1502eb4d8dcSEmmanuel Vadot                switchldo1-supply = <&vcc>;
1512eb4d8dcSEmmanuel Vadot
1522eb4d8dcSEmmanuel Vadot                vdd_cpu: dcdc1 {
1532eb4d8dcSEmmanuel Vadot                    regulator-name = "VDD_CPU";
1542eb4d8dcSEmmanuel Vadot                    regulator-min-microvolt = <700000>;
1552eb4d8dcSEmmanuel Vadot                    regulator-max-microvolt = <1400000>;
1562eb4d8dcSEmmanuel Vadot                    regulator-always-on;
1572eb4d8dcSEmmanuel Vadot                };
1582eb4d8dcSEmmanuel Vadot
1592eb4d8dcSEmmanuel Vadot                vcc: dcdc3 {
1602eb4d8dcSEmmanuel Vadot                    regulator-name = "VCC";
1612eb4d8dcSEmmanuel Vadot                    regulator-min-microvolt = <2600000>;
1622eb4d8dcSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
1632eb4d8dcSEmmanuel Vadot                    regulator-always-on;
1642eb4d8dcSEmmanuel Vadot                };
1652eb4d8dcSEmmanuel Vadot
1662eb4d8dcSEmmanuel Vadot                vcc_3v1: ldo5 {
1672eb4d8dcSEmmanuel Vadot                    regulator-name = "VCC_3V1";
1682eb4d8dcSEmmanuel Vadot                    regulator-min-microvolt = <2600000>;
1692eb4d8dcSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
1702eb4d8dcSEmmanuel Vadot                };
1712eb4d8dcSEmmanuel Vadot
1722eb4d8dcSEmmanuel Vadot                sd_vcc: switchldo1 {
1732eb4d8dcSEmmanuel Vadot                    regulator-name = "SD_VCC";
1742eb4d8dcSEmmanuel Vadot                    regulator-min-microvolt = <3000000>;
1752eb4d8dcSEmmanuel Vadot                    regulator-max-microvolt = <3300000>;
1762eb4d8dcSEmmanuel Vadot                    regulator-always-on;
1772eb4d8dcSEmmanuel Vadot                    regulator-boot-on;
1782eb4d8dcSEmmanuel Vadot                };
1792eb4d8dcSEmmanuel Vadot            };
1802eb4d8dcSEmmanuel Vadot        };
1812eb4d8dcSEmmanuel Vadot    };
1822eb4d8dcSEmmanuel Vadot
1832eb4d8dcSEmmanuel Vadot...
184