xref: /linux/Documentation/devicetree/bindings/regulator/mediatek,mt6358-regulator.yaml (revision a23e1966932464e1c5226cb9ac4ce1d5fc10ba22)
193880f7eSChen-Yu Tsai# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
293880f7eSChen-Yu Tsai%YAML 1.2
393880f7eSChen-Yu Tsai---
493880f7eSChen-Yu Tsai$id: http://devicetree.org/schemas/regulator/mediatek,mt6358-regulator.yaml#
593880f7eSChen-Yu Tsai$schema: http://devicetree.org/meta-schemas/core.yaml#
693880f7eSChen-Yu Tsai
793880f7eSChen-Yu Tsaititle: MediaTek MT6358 Regulator
893880f7eSChen-Yu Tsai
993880f7eSChen-Yu Tsaimaintainers:
1093880f7eSChen-Yu Tsai  - Zhiyong Tao <zhiyong.tao@mediatek.com>
1193880f7eSChen-Yu Tsai
1293880f7eSChen-Yu Tsaidescription:
1393880f7eSChen-Yu Tsai  Regulator node of the PMIC. This node should under the PMIC's device node.
1493880f7eSChen-Yu Tsai  All voltage regulators provided by the PMIC are described as sub-nodes of
1593880f7eSChen-Yu Tsai  this node.
1693880f7eSChen-Yu Tsai
1793880f7eSChen-Yu Tsaiproperties:
1893880f7eSChen-Yu Tsai  compatible:
19c631494aSZhiyong Tao    oneOf:
20c631494aSZhiyong Tao      - const: mediatek,mt6358-regulator
21c631494aSZhiyong Tao      - items:
22c631494aSZhiyong Tao          - const: mediatek,mt6366-regulator
23c631494aSZhiyong Tao          - const: mediatek,mt6358-regulator
2493880f7eSChen-Yu Tsai
252f384e60SChen-Yu Tsai  vsys-ldo1-supply:
262f384e60SChen-Yu Tsai    description: Supply for LDOs vfe28, vxo22, vcn28, vaux18, vaud28, vsim1, vusb, vbif28
272f384e60SChen-Yu Tsai  vsys-ldo2-supply:
28c631494aSZhiyong Tao    description: Supply for LDOs vldo28 (MT6358 only), vio28, vmc, vmch, vsim2
292f384e60SChen-Yu Tsai  vsys-ldo3-supply:
30c631494aSZhiyong Tao    description: Supply for LDOs vcn33, vcama[12] (MT6358 only), vemc, vibr
312f384e60SChen-Yu Tsai  vsys-vcore-supply:
322f384e60SChen-Yu Tsai    description: Supply for buck regulator vcore
332f384e60SChen-Yu Tsai  vsys-vdram1-supply:
342f384e60SChen-Yu Tsai    description: Supply for buck regulator vdram1
352f384e60SChen-Yu Tsai  vsys-vgpu-supply:
362f384e60SChen-Yu Tsai    description: Supply for buck regulator vgpu
372f384e60SChen-Yu Tsai  vsys-vmodem-supply:
382f384e60SChen-Yu Tsai    description: Supply for buck regulator vmodem
392f384e60SChen-Yu Tsai  vsys-vpa-supply:
402f384e60SChen-Yu Tsai    description: Supply for buck regulator vpa
412f384e60SChen-Yu Tsai  vsys-vproc11-supply:
422f384e60SChen-Yu Tsai    description: Supply for buck regulator vproc11
432f384e60SChen-Yu Tsai  vsys-vproc12-supply:
442f384e60SChen-Yu Tsai    description: Supply for buck regulator vproc12
452f384e60SChen-Yu Tsai  vsys-vs1-supply:
462f384e60SChen-Yu Tsai    description: Supply for buck regulator vs1
472f384e60SChen-Yu Tsai  vsys-vs2-supply:
482f384e60SChen-Yu Tsai    description: Supply for buck regulator vs2
492f384e60SChen-Yu Tsai  vs1-ldo1-supply:
50c631494aSZhiyong Tao    description:
51c631494aSZhiyong Tao      Supply for LDOs vrf18, vefuse, vcn18, vcamio (MT6358 only), vio18, vm18 (MT6366 only)
522f384e60SChen-Yu Tsai  vs2-ldo1-supply:
53c631494aSZhiyong Tao    description: Supply for LDOs vdram2, vmddr (MT6366 only)
542f384e60SChen-Yu Tsai  vs2-ldo2-supply:
552f384e60SChen-Yu Tsai    description: Supply for LDOs vrf12, va12
562f384e60SChen-Yu Tsai  vs2-ldo3-supply:
57c631494aSZhiyong Tao    description:
58c631494aSZhiyong Tao      Supply for LDOs vsram-core (MT6366 only), vsram-gpu, vsram-others, vsram-proc11, vsram-proc12
592f384e60SChen-Yu Tsai  vs2-ldo4-supply:
602f384e60SChen-Yu Tsai    description: Supply for LDO vcamd
6193880f7eSChen-Yu Tsai
6293880f7eSChen-Yu TsaipatternProperties:
63c631494aSZhiyong Tao  "^(buck_)?v(core|dram1|gpu|modem|pa|proc1[12]|s[12])$":
6493880f7eSChen-Yu Tsai    description: Buck regulators
6593880f7eSChen-Yu Tsai    type: object
6693880f7eSChen-Yu Tsai    $ref: regulator.yaml#
670bf4b56bSChen-Yu Tsai    properties:
680bf4b56bSChen-Yu Tsai      regulator-allowed-modes:
690bf4b56bSChen-Yu Tsai        description: |
700bf4b56bSChen-Yu Tsai          Buck regulatpr operating modes allowed. Valid values below.
710bf4b56bSChen-Yu Tsai          Users should use the macros from dt-bindings/regulator/mediatek,mt6397-regulator.h
720bf4b56bSChen-Yu Tsai            0 (MT6397_BUCK_MODE_AUTO): Auto PFM/PWM mode
730bf4b56bSChen-Yu Tsai            1 (MT6397_BUCK_MODE_FORCE_PWM): Forced PWM mode
740bf4b56bSChen-Yu Tsai        items:
750bf4b56bSChen-Yu Tsai          enum: [0, 1]
7693880f7eSChen-Yu Tsai    unevaluatedProperties: false
7793880f7eSChen-Yu Tsai
78c631494aSZhiyong Tao  "^(ldo_)?v(a|rf)12$":
7993880f7eSChen-Yu Tsai    description: LDOs with fixed 1.2V output and 0~100/10mV tuning
8093880f7eSChen-Yu Tsai    type: object
8193880f7eSChen-Yu Tsai    $ref: regulator.yaml#
820bf4b56bSChen-Yu Tsai    properties:
830bf4b56bSChen-Yu Tsai      regulator-allowed-modes: false
8493880f7eSChen-Yu Tsai    unevaluatedProperties: false
8593880f7eSChen-Yu Tsai
86c631494aSZhiyong Tao  "^(ldo_)?v((aux|cn|io|rf)18|camio)$":
87c631494aSZhiyong Tao    description:
88c631494aSZhiyong Tao      LDOs with fixed 1.8V output and 0~100/10mV tuning (vcn18 on MT6366 has variable output)
8993880f7eSChen-Yu Tsai    type: object
9093880f7eSChen-Yu Tsai    $ref: regulator.yaml#
910bf4b56bSChen-Yu Tsai    properties:
920bf4b56bSChen-Yu Tsai      regulator-allowed-modes: false
9393880f7eSChen-Yu Tsai    unevaluatedProperties: false
9493880f7eSChen-Yu Tsai
95c631494aSZhiyong Tao  "^(ldo_)?vxo22$":
96c631494aSZhiyong Tao    description: LDOs with fixed 2.2V output and 0~100/10mV tuning
97c631494aSZhiyong Tao    type: object
98c631494aSZhiyong Tao    $ref: regulator.yaml#
99c631494aSZhiyong Tao    properties:
100c631494aSZhiyong Tao      regulator-allowed-modes: false
101c631494aSZhiyong Tao    unevaluatedProperties: false
102c631494aSZhiyong Tao
103c631494aSZhiyong Tao  "^(ldo_)?v(aud|bif|cn|fe|io)28$":
10493880f7eSChen-Yu Tsai    description: LDOs with fixed 2.8V output and 0~100/10mV tuning
10593880f7eSChen-Yu Tsai    type: object
10693880f7eSChen-Yu Tsai    $ref: regulator.yaml#
1070bf4b56bSChen-Yu Tsai    properties:
1080bf4b56bSChen-Yu Tsai      regulator-allowed-modes: false
10993880f7eSChen-Yu Tsai    unevaluatedProperties: false
11093880f7eSChen-Yu Tsai
111c631494aSZhiyong Tao  "^(ldo_)?vusb$":
112c631494aSZhiyong Tao    description: LDOs with fixed 3.0V output and 0~100/10mV tuning
113c631494aSZhiyong Tao    type: object
114c631494aSZhiyong Tao    $ref: regulator.yaml#
115c631494aSZhiyong Tao    properties:
116c631494aSZhiyong Tao      regulator-allowed-modes: false
117c631494aSZhiyong Tao    unevaluatedProperties: false
118c631494aSZhiyong Tao
119c631494aSZhiyong Tao  "^(ldo_)?vsram[_-](core|gpu|others|proc1[12])$":
12093880f7eSChen-Yu Tsai    description: LDOs with variable output
12193880f7eSChen-Yu Tsai    type: object
12293880f7eSChen-Yu Tsai    $ref: regulator.yaml#
1230bf4b56bSChen-Yu Tsai    properties:
1240bf4b56bSChen-Yu Tsai      regulator-allowed-modes: false
12593880f7eSChen-Yu Tsai    unevaluatedProperties: false
12693880f7eSChen-Yu Tsai
127c631494aSZhiyong Tao  "^(ldo_)?v(cama[12]|camd|cn33|dram2|efuse|emc|ibr|ldo28|m18|mc|mch|mddr|sim[12])$":
12893880f7eSChen-Yu Tsai    description: LDOs with variable output and 0~100/10mV tuning
12993880f7eSChen-Yu Tsai    type: object
13093880f7eSChen-Yu Tsai    $ref: regulator.yaml#
1310bf4b56bSChen-Yu Tsai    properties:
1320bf4b56bSChen-Yu Tsai      regulator-allowed-modes: false
13393880f7eSChen-Yu Tsai    unevaluatedProperties: false
13493880f7eSChen-Yu Tsai
13593880f7eSChen-Yu Tsairequired:
13693880f7eSChen-Yu Tsai  - compatible
13793880f7eSChen-Yu Tsai
13893880f7eSChen-Yu TsaiadditionalProperties: false
13993880f7eSChen-Yu Tsai
140c631494aSZhiyong TaoallOf:
141c631494aSZhiyong Tao  - if:
142c631494aSZhiyong Tao      properties:
143c631494aSZhiyong Tao        compatible:
144c631494aSZhiyong Tao          const: mediatek,mt6358-regulator
145c631494aSZhiyong Tao    then:
146c631494aSZhiyong Tao      patternProperties:
147c631494aSZhiyong Tao        # Old regulator node name scheme (with prefix and underscores) only
148c631494aSZhiyong Tao        # ([^y-] is used to avoid matching -supply
149c631494aSZhiyong Tao        "^(?<!buck_)(?<!ldo_)v.*[^y-](?!-supply)$": false
150c631494aSZhiyong Tao        "^ldo_vsram-": false
151c631494aSZhiyong Tao        # vsram_core regulator doesn't exist on MT6358
152c631494aSZhiyong Tao        "^ldo_vsram[-_]core$": false
153c631494aSZhiyong Tao
154c631494aSZhiyong Tao      properties:
155c631494aSZhiyong Tao        # vm18 and vmddr regulators don't exist on MT6358
156c631494aSZhiyong Tao        ldo_vm18: false
157c631494aSZhiyong Tao        ldo_vmddr: false
158c631494aSZhiyong Tao
159c631494aSZhiyong Tao  - if:
160c631494aSZhiyong Tao      properties:
161c631494aSZhiyong Tao        compatible:
162c631494aSZhiyong Tao          contains:
163c631494aSZhiyong Tao            const: mediatek,mt6366-regulator
164c631494aSZhiyong Tao    then:
165c631494aSZhiyong Tao      patternProperties:
166c631494aSZhiyong Tao        # Prefer cleaned up regulator node names
167c631494aSZhiyong Tao        "^(buck|ldo)_": false
168c631494aSZhiyong Tao        # Don't allow underscores
169c631494aSZhiyong Tao        "^vsram_": false
170c631494aSZhiyong Tao        # vcam* regulators don't exist on MT6366
171c631494aSZhiyong Tao        "^vcam": false
172c631494aSZhiyong Tao
173c631494aSZhiyong Tao      properties:
174c631494aSZhiyong Tao        # vldo28 regulator doesn't exist on MT6366
175c631494aSZhiyong Tao        vldo28: false
176c631494aSZhiyong Tao        # vs2_ldo4 supply pin doesn't exist on MT6366
177c631494aSZhiyong Tao        vs2-ldo4-supply: false
178c631494aSZhiyong Tao
17993880f7eSChen-Yu Tsaiexamples:
18093880f7eSChen-Yu Tsai  - |
1810bf4b56bSChen-Yu Tsai    #include <dt-bindings/regulator/mediatek,mt6397-regulator.h>
1820bf4b56bSChen-Yu Tsai
18393880f7eSChen-Yu Tsai    regulator {
18493880f7eSChen-Yu Tsai        compatible = "mediatek,mt6358-regulator";
18593880f7eSChen-Yu Tsai
18693880f7eSChen-Yu Tsai        buck_vgpu {
18793880f7eSChen-Yu Tsai            regulator-name = "vgpu";
18893880f7eSChen-Yu Tsai            regulator-min-microvolt = <625000>;
18993880f7eSChen-Yu Tsai            regulator-max-microvolt = <900000>;
19093880f7eSChen-Yu Tsai            regulator-ramp-delay = <6250>;
19193880f7eSChen-Yu Tsai            regulator-enable-ramp-delay = <200>;
1920bf4b56bSChen-Yu Tsai            regulator-allowed-modes = <MT6397_BUCK_MODE_AUTO
1930bf4b56bSChen-Yu Tsai                                       MT6397_BUCK_MODE_FORCE_PWM>;
19493880f7eSChen-Yu Tsai        };
19593880f7eSChen-Yu Tsai
19693880f7eSChen-Yu Tsai        ldo_vsram_gpu {
19793880f7eSChen-Yu Tsai            regulator-name = "vsram_gpu";
19893880f7eSChen-Yu Tsai            regulator-min-microvolt = <850000>;
19993880f7eSChen-Yu Tsai            regulator-max-microvolt = <1000000>;
20093880f7eSChen-Yu Tsai            regulator-ramp-delay = <6250>;
20193880f7eSChen-Yu Tsai            regulator-enable-ramp-delay = <240>;
20293880f7eSChen-Yu Tsai        };
20393880f7eSChen-Yu Tsai    };
20493880f7eSChen-Yu Tsai
205c631494aSZhiyong Tao  - |
206c631494aSZhiyong Tao    #include <dt-bindings/regulator/mediatek,mt6397-regulator.h>
207c631494aSZhiyong Tao
208c631494aSZhiyong Tao    regulator {
209c631494aSZhiyong Tao        compatible = "mediatek,mt6366-regulator", "mediatek,mt6358-regulator";
210c631494aSZhiyong Tao
211c631494aSZhiyong Tao        vdram1 {
212c631494aSZhiyong Tao            regulator-name = "pp1125_emi_vdd2";
213c631494aSZhiyong Tao            regulator-min-microvolt = <1125000>;
214c631494aSZhiyong Tao            regulator-max-microvolt = <1125000>;
215c631494aSZhiyong Tao            regulator-ramp-delay = <12500>;
216c631494aSZhiyong Tao            regulator-enable-ramp-delay = <0>;
217c631494aSZhiyong Tao            regulator-allowed-modes = <MT6397_BUCK_MODE_AUTO
218c631494aSZhiyong Tao                                       MT6397_BUCK_MODE_FORCE_PWM>;
219c631494aSZhiyong Tao            regulator-always-on;
220c631494aSZhiyong Tao        };
221c631494aSZhiyong Tao
222c631494aSZhiyong Tao        vproc11 {
223c631494aSZhiyong Tao            regulator-name = "ppvar_dvdd_proc_bc_mt6366";
224c631494aSZhiyong Tao            regulator-min-microvolt = <600000>;
225c631494aSZhiyong Tao            regulator-max-microvolt = <1200000>;
226c631494aSZhiyong Tao            regulator-ramp-delay = <6250>;
227c631494aSZhiyong Tao            regulator-enable-ramp-delay = <200>;
228c631494aSZhiyong Tao            regulator-allowed-modes = <MT6397_BUCK_MODE_AUTO
229c631494aSZhiyong Tao                                       MT6397_BUCK_MODE_FORCE_PWM>;
230c631494aSZhiyong Tao            regulator-always-on;
231c631494aSZhiyong Tao        };
232c631494aSZhiyong Tao
233c631494aSZhiyong Tao        vmddr {
234c631494aSZhiyong Tao            regulator-name = "pm0750_emi_vmddr";
235c631494aSZhiyong Tao            regulator-min-microvolt = <700000>;
236c631494aSZhiyong Tao            regulator-max-microvolt = <750000>;
237c631494aSZhiyong Tao            regulator-enable-ramp-delay = <325>;
238c631494aSZhiyong Tao            regulator-always-on;
239c631494aSZhiyong Tao        };
240c631494aSZhiyong Tao
241c631494aSZhiyong Tao        vsram-proc11 {
242c631494aSZhiyong Tao            regulator-name = "pp0900_dvdd_sram_bc";
243c631494aSZhiyong Tao            regulator-min-microvolt = <850000>;
244c631494aSZhiyong Tao            regulator-max-microvolt = <1120000>;
245c631494aSZhiyong Tao            regulator-ramp-delay = <6250>;
246c631494aSZhiyong Tao            regulator-enable-ramp-delay = <240>;
247c631494aSZhiyong Tao            regulator-always-on;
248c631494aSZhiyong Tao        };
249c631494aSZhiyong Tao    };
25093880f7eSChen-Yu Tsai...
251