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