18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/regulator/pfuze100.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: PFUZE100 family of regulators
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Robin Gong <yibin.gong@nxp.com>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cidescription: |
138c2ecf20Sopenharmony_ci  The valid names for regulators are:
148c2ecf20Sopenharmony_ci  --PFUZE100
158c2ecf20Sopenharmony_ci  sw1ab,sw1c,sw2,sw3a,sw3b,sw4,swbst,vsnvs,vrefddr,vgen1~vgen6
168c2ecf20Sopenharmony_ci  --PFUZE200
178c2ecf20Sopenharmony_ci  sw1ab,sw2,sw3a,sw3b,swbst,vsnvs,vrefddr,vgen1~vgen6,coin
188c2ecf20Sopenharmony_ci  --PFUZE3000
198c2ecf20Sopenharmony_ci  sw1a,sw1b,sw2,sw3,swbst,vsnvs,vrefddr,vldo1,vldo2,vccsd,v33,vldo3,vldo4
208c2ecf20Sopenharmony_ci  --PFUZE3001
218c2ecf20Sopenharmony_ci  sw1,sw2,sw3,vsnvs,vldo1,vldo2,vccsd,v33,vldo3,vldo4
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci  Each regulator is defined using the standard binding for regulators.
248c2ecf20Sopenharmony_ci
258c2ecf20Sopenharmony_ciproperties:
268c2ecf20Sopenharmony_ci  $nodename:
278c2ecf20Sopenharmony_ci    pattern: "^pmic@[0-9]$"
288c2ecf20Sopenharmony_ci
298c2ecf20Sopenharmony_ci  compatible:
308c2ecf20Sopenharmony_ci    enum:
318c2ecf20Sopenharmony_ci      - fsl,pfuze100
328c2ecf20Sopenharmony_ci      - fsl,pfuze200
338c2ecf20Sopenharmony_ci      - fsl,pfuze3000
348c2ecf20Sopenharmony_ci      - fsl,pfuze3001
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci  reg:
378c2ecf20Sopenharmony_ci    maxItems: 1
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci  fsl,pfuze-support-disable-sw:
408c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/flag
418c2ecf20Sopenharmony_ci    description: |
428c2ecf20Sopenharmony_ci      Boolean, if present disable all unused switch regulators to save power
438c2ecf20Sopenharmony_ci      consumption. Attention, ensure that all important regulators
448c2ecf20Sopenharmony_ci      (e.g. DDR ref, DDR supply) has set the "regulator-always-on" property.
458c2ecf20Sopenharmony_ci      If not present, the switched regulators are always on and can't be
468c2ecf20Sopenharmony_ci      disabled. This binding is a workaround to keep backward compatibility
478c2ecf20Sopenharmony_ci      with old dtb's which rely on the fact that the switched regulators are
488c2ecf20Sopenharmony_ci      always on and don't mark them explicit as "regulator-always-on".
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci  fsl,pmic-stby-poweroff:
518c2ecf20Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/flag
528c2ecf20Sopenharmony_ci    description: |
538c2ecf20Sopenharmony_ci      if present, configure the PMIC to shutdown all
548c2ecf20Sopenharmony_ci      power rails when PMIC_STBY_REQ line is asserted during the power off sequence.
558c2ecf20Sopenharmony_ci      Use this option if the SoC should be powered off by external power management
568c2ecf20Sopenharmony_ci      IC (PMIC) on PMIC_STBY_REQ signal.
578c2ecf20Sopenharmony_ci      As opposite to PMIC_STBY_REQ boards can implement PMIC_ON_REQ signal.
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci  regulators:
608c2ecf20Sopenharmony_ci    type: object
618c2ecf20Sopenharmony_ci    description: |
628c2ecf20Sopenharmony_ci      list of regulators provided by this controller.
638c2ecf20Sopenharmony_ci
648c2ecf20Sopenharmony_ci    patternProperties:
658c2ecf20Sopenharmony_ci      "^sw([1-4]|[1-4][a-c]|[1-4][a-c][a-c])$":
668c2ecf20Sopenharmony_ci        $ref: "regulator.yaml#"
678c2ecf20Sopenharmony_ci        type: object
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci      "^vgen[1-6]$":
708c2ecf20Sopenharmony_ci        $ref: "regulator.yaml#"
718c2ecf20Sopenharmony_ci        type: object
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci      "^(vsnvs|vref|vrefddr|swbst|coin)$":
748c2ecf20Sopenharmony_ci        $ref: "regulator.yaml#"
758c2ecf20Sopenharmony_ci        type: object
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci    additionalProperties: false
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_cirequired:
808c2ecf20Sopenharmony_ci  - compatible
818c2ecf20Sopenharmony_ci  - reg
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ciadditionalProperties: false
848c2ecf20Sopenharmony_ci
858c2ecf20Sopenharmony_ciexamples:
868c2ecf20Sopenharmony_ci  - |
878c2ecf20Sopenharmony_ci    i2c {
888c2ecf20Sopenharmony_ci        #address-cells = <1>;
898c2ecf20Sopenharmony_ci        #size-cells = <0>;
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ci        pmic@8 {
928c2ecf20Sopenharmony_ci            compatible = "fsl,pfuze100";
938c2ecf20Sopenharmony_ci            reg = <0x08>;
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ci            regulators {
968c2ecf20Sopenharmony_ci                sw1a_reg: sw1ab {
978c2ecf20Sopenharmony_ci                    regulator-min-microvolt = <300000>;
988c2ecf20Sopenharmony_ci                    regulator-max-microvolt = <1875000>;
998c2ecf20Sopenharmony_ci                    regulator-boot-on;
1008c2ecf20Sopenharmony_ci                    regulator-always-on;
1018c2ecf20Sopenharmony_ci                    regulator-ramp-delay = <6250>;
1028c2ecf20Sopenharmony_ci                };
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci                sw1c_reg: sw1c {
1058c2ecf20Sopenharmony_ci                    regulator-min-microvolt = <300000>;
1068c2ecf20Sopenharmony_ci                    regulator-max-microvolt = <1875000>;
1078c2ecf20Sopenharmony_ci                    regulator-boot-on;
1088c2ecf20Sopenharmony_ci                    regulator-always-on;
1098c2ecf20Sopenharmony_ci                };
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci                sw2_reg: sw2 {
1128c2ecf20Sopenharmony_ci                    regulator-min-microvolt = <800000>;
1138c2ecf20Sopenharmony_ci                    regulator-max-microvolt = <3300000>;
1148c2ecf20Sopenharmony_ci                    regulator-boot-on;
1158c2ecf20Sopenharmony_ci                    regulator-always-on;
1168c2ecf20Sopenharmony_ci                };
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ci                sw3a_reg: sw3a {
1198c2ecf20Sopenharmony_ci                    regulator-min-microvolt = <400000>;
1208c2ecf20Sopenharmony_ci                    regulator-max-microvolt = <1975000>;
1218c2ecf20Sopenharmony_ci                    regulator-boot-on;
1228c2ecf20Sopenharmony_ci                    regulator-always-on;
1238c2ecf20Sopenharmony_ci                };
1248c2ecf20Sopenharmony_ci
1258c2ecf20Sopenharmony_ci                sw3b_reg: sw3b {
1268c2ecf20Sopenharmony_ci                    regulator-min-microvolt = <400000>;
1278c2ecf20Sopenharmony_ci                    regulator-max-microvolt = <1975000>;
1288c2ecf20Sopenharmony_ci                    regulator-boot-on;
1298c2ecf20Sopenharmony_ci                    regulator-always-on;
1308c2ecf20Sopenharmony_ci                };
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ci                sw4_reg: sw4 {
1338c2ecf20Sopenharmony_ci                    regulator-min-microvolt = <800000>;
1348c2ecf20Sopenharmony_ci                    regulator-max-microvolt = <3300000>;
1358c2ecf20Sopenharmony_ci                };
1368c2ecf20Sopenharmony_ci
1378c2ecf20Sopenharmony_ci                swbst_reg: swbst {
1388c2ecf20Sopenharmony_ci                    regulator-min-microvolt = <5000000>;
1398c2ecf20Sopenharmony_ci                    regulator-max-microvolt = <5150000>;
1408c2ecf20Sopenharmony_ci                };
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ci                snvs_reg: vsnvs {
1438c2ecf20Sopenharmony_ci                    regulator-min-microvolt = <1000000>;
1448c2ecf20Sopenharmony_ci                    regulator-max-microvolt = <3000000>;
1458c2ecf20Sopenharmony_ci                    regulator-boot-on;
1468c2ecf20Sopenharmony_ci                    regulator-always-on;
1478c2ecf20Sopenharmony_ci                };
1488c2ecf20Sopenharmony_ci
1498c2ecf20Sopenharmony_ci                vref_reg: vrefddr {
1508c2ecf20Sopenharmony_ci                    regulator-boot-on;
1518c2ecf20Sopenharmony_ci                    regulator-always-on;
1528c2ecf20Sopenharmony_ci                };
1538c2ecf20Sopenharmony_ci
1548c2ecf20Sopenharmony_ci                vgen1_reg: vgen1 {
1558c2ecf20Sopenharmony_ci                    regulator-min-microvolt = <800000>;
1568c2ecf20Sopenharmony_ci                    regulator-max-microvolt = <1550000>;
1578c2ecf20Sopenharmony_ci                };
1588c2ecf20Sopenharmony_ci
1598c2ecf20Sopenharmony_ci                vgen2_reg: vgen2 {
1608c2ecf20Sopenharmony_ci                    regulator-min-microvolt = <800000>;
1618c2ecf20Sopenharmony_ci                    regulator-max-microvolt = <1550000>;
1628c2ecf20Sopenharmony_ci                };
1638c2ecf20Sopenharmony_ci
1648c2ecf20Sopenharmony_ci                vgen3_reg: vgen3 {
1658c2ecf20Sopenharmony_ci                    regulator-min-microvolt = <1800000>;
1668c2ecf20Sopenharmony_ci                    regulator-max-microvolt = <3300000>;
1678c2ecf20Sopenharmony_ci                };
1688c2ecf20Sopenharmony_ci
1698c2ecf20Sopenharmony_ci                vgen4_reg: vgen4 {
1708c2ecf20Sopenharmony_ci                    regulator-min-microvolt = <1800000>;
1718c2ecf20Sopenharmony_ci                    regulator-max-microvolt = <3300000>;
1728c2ecf20Sopenharmony_ci                    regulator-always-on;
1738c2ecf20Sopenharmony_ci                };
1748c2ecf20Sopenharmony_ci
1758c2ecf20Sopenharmony_ci                vgen5_reg: vgen5 {
1768c2ecf20Sopenharmony_ci                    regulator-min-microvolt = <1800000>;
1778c2ecf20Sopenharmony_ci                    regulator-max-microvolt = <3300000>;
1788c2ecf20Sopenharmony_ci                    regulator-always-on;
1798c2ecf20Sopenharmony_ci                };
1808c2ecf20Sopenharmony_ci
1818c2ecf20Sopenharmony_ci                vgen6_reg: vgen6 {
1828c2ecf20Sopenharmony_ci                    regulator-min-microvolt = <1800000>;
1838c2ecf20Sopenharmony_ci                    regulator-max-microvolt = <3300000>;
1848c2ecf20Sopenharmony_ci                    regulator-always-on;
1858c2ecf20Sopenharmony_ci                };
1868c2ecf20Sopenharmony_ci            };
1878c2ecf20Sopenharmony_ci        };
1888c2ecf20Sopenharmony_ci    };
189