File Index
Files and directories
Sign in
FILE

actions,atc260x.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/mfd/actions,atc260x.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/mfd/actions,atc260x.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: Actions Semi ATC260x Power Management IC
  8
  9maintainers:
 10  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
 11  - Cristian Ciocaltea <cristian.ciocaltea@gmail.com>
 12
 13description: |
 14  ATC260x series PMICs integrates Audio Codec, Power Management, RTC, IR
 15  and GPIO controller blocks. Currently only the PM related functionalities
 16  (i.e. regulators and system power-off/reboot) for the ATC2603C and ATC2609A
 17  chip variants are supported.
 18  ATC2603C includes 3 programmable DC-DC converters, 9 programmable LDO
 19  regulators and 1 fixed LDO regulator.
 20  ATC2609A includes 5 programmable DC-DC converters and 10 programmable LDO
 21  regulators.
 22
 23allOf:
 24  - $ref: /schemas/input/input.yaml
 25
 26properties:
 27  compatible:
 28    enum:
 29      - actions,atc2603c
 30      - actions,atc2609a
 31
 32  reg:
 33    maxItems: 1
 34
 35  interrupts:
 36    maxItems: 1
 37
 38  reset-time-sec:
 39    description: |
 40      Duration in seconds which the key should be kept pressed for device
 41      to reset automatically. The hardware default is 8. Use 0 to disable
 42      this functionality.
 43    enum: [0, 6, 8, 10, 12]
 44
 45  regulators:
 46    type: object
 47    description: |
 48      List of child nodes specifying the regulators, depending on chip variant:
 49      * ATC2603C: dcdc[1-3], ldo[1-3,5-8,11,12], switchldo1
 50      * ATC2609A: dcdc[0-4], ldo[0-9]
 51
 52    properties:
 53      compatible:
 54        enum:
 55          - actions,atc2603c-regulator
 56          - actions,atc2609a-regulator
 57
 58      switchldo1:
 59        type: object
 60        $ref: /schemas/regulator/regulator.yaml
 61
 62        properties:
 63          regulator-name: true
 64          regulator-boot-on: true
 65          regulator-always-on: true
 66          regulator-min-microvolt: true
 67          regulator-max-microvolt: true
 68          regulator-allow-bypass: true
 69          regulator-active-discharge: true
 70
 71        additionalProperties: false
 72
 73    patternProperties:
 74      "^(dcdc[0-4]|ldo[0-9]|ldo1[1-2]|switchldo1)-supply$":
 75        description: ATC260x voltage regulators supplies
 76
 77      "^(dcdc[0-4]|ldo[0-9]|ldo1[1-2])$":
 78        type: object
 79        $ref: /schemas/regulator/regulator.yaml
 80
 81        properties:
 82          regulator-name: true
 83          regulator-boot-on: true
 84          regulator-always-on: true
 85          regulator-min-microvolt: true
 86          regulator-max-microvolt: true
 87          regulator-allow-bypass: true
 88
 89        additionalProperties: false
 90
 91    allOf:
 92      - if:
 93          properties:
 94            compatible:
 95              contains:
 96                const: actions,atc2603c-regulator
 97        then:
 98          patternProperties:
 99            "^(dcdc[0,4]|ldo[0,4,9])(-supply)?$": false
100
101            "^(ldo|dcdc)":
102              properties:
103                regulator-allow-bypass: false
104      - if:
105          properties:
106            compatible:
107              contains:
108                const: actions,atc2609a-regulator
109        then:
110          patternProperties:
111            "^(ldo1[1-2]|switchldo1)(-supply)?$": false
112
113            "^(dcdc|ldo[3-9])":
114              properties:
115                regulator-allow-bypass: false
116
117    required:
118      - compatible
119
120    additionalProperties: false
121
122additionalProperties: false
123
124required:
125  - compatible
126  - reg
127  - interrupts
128
129examples:
130  - |
131    #include <dt-bindings/interrupt-controller/arm-gic.h>
132    i2c {
133        #address-cells = <1>;
134        #size-cells = <0>;
135
136        pmic@65 {
137            compatible = "actions,atc2603c";
138            reg = <0x65>;
139            interrupt-parent = <&sirq>;
140            interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
141
142            reset-time-sec = <6>;
143
144            regulators {
145                compatible = "actions,atc2603c-regulator";
146
147                dcdc1-supply = <&reg_5v0>;
148                dcdc3-supply = <&reg_5v0>;
149                ldo5-supply = <&reg_5v0>;
150                switchldo1-supply = <&vcc>;
151
152                vdd_cpu: dcdc1 {
153                    regulator-name = "VDD_CPU";
154                    regulator-min-microvolt = <700000>;
155                    regulator-max-microvolt = <1400000>;
156                    regulator-always-on;
157                };
158
159                vcc: dcdc3 {
160                    regulator-name = "VCC";
161                    regulator-min-microvolt = <2600000>;
162                    regulator-max-microvolt = <3300000>;
163                    regulator-always-on;
164                };
165
166                vcc_3v1: ldo5 {
167                    regulator-name = "VCC_3V1";
168                    regulator-min-microvolt = <2600000>;
169                    regulator-max-microvolt = <3300000>;
170                };
171
172                sd_vcc: switchldo1 {
173                    regulator-name = "SD_VCC";
174                    regulator-min-microvolt = <3000000>;
175                    regulator-max-microvolt = <3300000>;
176                    regulator-always-on;
177                    regulator-boot-on;
178                };
179            };
180        };
181    };
182
183...
~/ Read-only file preview.