brintos

brintos / linux-shallow public Read only

0
0
Text · 7.2 KiB · a4be642 Raw
268 lines · yaml
1# SPDX-License-Identifier: GPL-2.0-only2%YAML 1.23---4$id: http://devicetree.org/schemas/mfd/samsung,s2mps11.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Samsung S2MPS11/13/14/15 and S2MPU02 Power Management IC8 9maintainers:10  - Krzysztof Kozlowski <krzk@kernel.org>11 12description: |13  This is a part of device tree bindings for S2M and S5M family of Power14  Management IC (PMIC).15 16  The Samsung S2MPS11/13/14/15 and S2MPU02 is a family of Power Management IC17  which include voltage and current regulators, RTC, clock outputs and other18  sub-blocks.19 20properties:21  compatible:22    enum:23      - samsung,s2mps11-pmic24      - samsung,s2mps13-pmic25      - samsung,s2mps14-pmic26      - samsung,s2mps15-pmic27      - samsung,s2mpu02-pmic28 29  clocks:30    $ref: /schemas/clock/samsung,s2mps11.yaml31    description:32      Child node describing clock provider.33 34  interrupts:35    maxItems: 136 37  reg:38    maxItems: 139 40  regulators:41    type: object42    description:43      List of child nodes that specify the regulators.44 45  samsung,s2mps11-acokb-ground:46    description: |47      Indicates that ACOKB pin of S2MPS11 PMIC is connected to the ground so48      the PMIC must manually set PWRHOLD bit in CTRL1 register to turn off the49      power. Usually the ACOKB is pulled up to VBATT so when PWRHOLD pin goes50      low, the rising ACOKB will trigger power off.51    type: boolean52 53  samsung,s2mps11-wrstbi-ground:54    description: |55      Indicates that WRSTBI pin of PMIC is pulled down. When the system is56      suspended it will always go down thus triggering unwanted buck warm57      reset (setting buck voltages to default values).58    type: boolean59 60  wakeup-source: true61 62required:63  - compatible64  - reg65  - regulators66 67additionalProperties: false68 69allOf:70  - if:71      properties:72        compatible:73          contains:74            const: samsung,s2mps11-pmic75    then:76      properties:77        regulators:78          $ref: /schemas/regulator/samsung,s2mps11.yaml79        samsung,s2mps11-wrstbi-ground: false80 81  - if:82      properties:83        compatible:84          contains:85            const: samsung,s2mps13-pmic86    then:87      properties:88        regulators:89          $ref: /schemas/regulator/samsung,s2mps13.yaml90        samsung,s2mps11-acokb-ground: false91 92  - if:93      properties:94        compatible:95          contains:96            const: samsung,s2mps14-pmic97    then:98      properties:99        regulators:100          $ref: /schemas/regulator/samsung,s2mps14.yaml101        samsung,s2mps11-acokb-ground: false102        samsung,s2mps11-wrstbi-ground: false103 104  - if:105      properties:106        compatible:107          contains:108            const: samsung,s2mps15-pmic109    then:110      properties:111        regulators:112          $ref: /schemas/regulator/samsung,s2mps15.yaml113        samsung,s2mps11-acokb-ground: false114        samsung,s2mps11-wrstbi-ground: false115 116  - if:117      properties:118        compatible:119          contains:120            const: samsung,s2mpu02-pmic121    then:122      properties:123        regulators:124          $ref: /schemas/regulator/samsung,s2mpu02.yaml125        samsung,s2mps11-acokb-ground: false126        samsung,s2mps11-wrstbi-ground: false127 128examples:129  - |130    #include <dt-bindings/interrupt-controller/irq.h>131 132    i2c {133        #address-cells = <1>;134        #size-cells = <0>;135 136        pmic@66 {137            compatible = "samsung,s2mps11-pmic";138            reg = <0x66>;139 140            interrupt-parent = <&gpx0>;141            interrupts = <4 IRQ_TYPE_LEVEL_LOW>;142            pinctrl-names = "default";143            pinctrl-0 = <&s2mps11_irq>;144            samsung,s2mps11-acokb-ground;145            wakeup-source;146 147            clocks {148                compatible = "samsung,s2mps11-clk";149                #clock-cells = <1>;150                clock-output-names = "s2mps11_ap", "s2mps11_cp", "s2mps11_bt";151            };152 153            regulators {154                LDO1 {155                    regulator-name = "vdd_ldo1";156                    regulator-min-microvolt = <1000000>;157                    regulator-max-microvolt = <1000000>;158                    regulator-always-on;159                };160 161                LDO4 {162                    regulator-name = "vdd_adc";163                    regulator-min-microvolt = <1800000>;164                    regulator-max-microvolt = <1800000>;165 166                    regulator-state-mem {167                        regulator-off-in-suspend;168                    };169                };170 171                // ....172 173                BUCK1 {174                    regulator-name = "vdd_mif";175                    regulator-min-microvolt = <800000>;176                    regulator-max-microvolt = <1300000>;177                    regulator-always-on;178                    regulator-boot-on;179 180                    regulator-state-mem {181                        regulator-off-in-suspend;182                    };183                };184 185                BUCK2 {186                    regulator-name = "vdd_arm";187                    regulator-min-microvolt = <800000>;188                    regulator-max-microvolt = <1500000>;189                    regulator-always-on;190                    regulator-boot-on;191                    regulator-coupled-with = <&buck3_reg>;192                    regulator-coupled-max-spread = <300000>;193 194                    regulator-state-mem {195                        regulator-off-in-suspend;196                    };197                };198 199                BUCK3 {200                    regulator-name = "vdd_int";201                    regulator-min-microvolt = <800000>;202                    regulator-max-microvolt = <1400000>;203                    regulator-always-on;204                    regulator-boot-on;205                    regulator-coupled-with = <&buck2_reg>;206                    regulator-coupled-max-spread = <300000>;207 208                    regulator-state-mem {209                        regulator-off-in-suspend;210                    };211                };212 213                // ...214            };215        };216    };217 218  - |219    #include <dt-bindings/interrupt-controller/irq.h>220 221    i2c {222        #address-cells = <1>;223        #size-cells = <0>;224 225        pmic@66 {226            compatible = "samsung,s2mps14-pmic";227            reg = <0x66>;228 229            interrupt-parent = <&gpx0>;230            interrupts = <7 IRQ_TYPE_LEVEL_LOW>;231            wakeup-source;232 233            clocks {234                compatible = "samsung,s2mps14-clk";235                #clock-cells = <1>;236                clock-output-names = "s2mps14_ap", "unused", "s2mps14_bt";237            };238 239            regulators {240                LDO1 {241                    regulator-name = "VLDO1_1.0V";242                    regulator-min-microvolt = <1000000>;243                    regulator-max-microvolt = <1000000>;244                    regulator-always-on;245 246                    regulator-state-mem {247                        regulator-on-in-suspend;248                    };249                };250 251                // ...252 253                BUCK1 {254                    regulator-name = "VBUCK1_1.0V";255                    regulator-min-microvolt = <800000>;256                    regulator-max-microvolt = <1000000>;257                    regulator-always-on;258 259                    regulator-state-mem {260                        regulator-off-in-suspend;261                    };262                };263 264                // ...265            };266        };267    };268