0001 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/mfd/samsung,s5m8767.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006
0007 title: Samsung S5M8767 Power Management IC
0008
0009 maintainers:
0010 - Krzysztof Kozlowski <krzk@kernel.org>
0011
0012 description: |
0013 This is a part of device tree bindings for S2M and S5M family of Power
0014 Management IC (PMIC).
0015
0016 The Samsung S5M8767 is a Power Management IC which includes voltage
0017 and current regulators, RTC, clock outputs and other sub-blocks.
0018
0019 properties:
0020 compatible:
0021 const: samsung,s5m8767-pmic
0022
0023 clocks:
0024 $ref: ../clock/samsung,s2mps11.yaml
0025 description:
0026 Child node describing clock provider.
0027
0028 interrupts:
0029 maxItems: 1
0030
0031 reg:
0032 maxItems: 1
0033
0034 regulators:
0035 $ref: ../regulator/samsung,s5m8767.yaml
0036 description:
0037 List of child nodes that specify the regulators.
0038
0039 s5m8767,pmic-buck2-dvs-voltage:
0040 $ref: /schemas/types.yaml#/definitions/uint32-array
0041 minItems: 8
0042 maxItems: 8
0043 description: |
0044 A set of 8 voltage values in micro-volt (uV) units for buck2 when
0045 changing voltage using gpio dvs.
0046
0047 s5m8767,pmic-buck3-dvs-voltage:
0048 $ref: /schemas/types.yaml#/definitions/uint32-array
0049 minItems: 8
0050 maxItems: 8
0051 description: |
0052 A set of 8 voltage values in micro-volt (uV) units for buck3 when
0053 changing voltage using gpio dvs.
0054
0055 s5m8767,pmic-buck4-dvs-voltage:
0056 $ref: /schemas/types.yaml#/definitions/uint32-array
0057 minItems: 8
0058 maxItems: 8
0059 description: |
0060 A set of 8 voltage values in micro-volt (uV) units for buck4 when
0061 changing voltage using gpio dvs.
0062
0063 s5m8767,pmic-buck-ds-gpios:
0064 minItems: 3
0065 maxItems: 3
0066 description: |
0067 GPIO specifiers for three host gpio's used for selecting GPIO DVS lines.
0068 It is one-to-one mapped to dvs gpio lines.
0069
0070 s5m8767,pmic-buck2-uses-gpio-dvs:
0071 type: boolean
0072 description: buck2 can be controlled by gpio dvs.
0073
0074 s5m8767,pmic-buck3-uses-gpio-dvs:
0075 type: boolean
0076 description: buck3 can be controlled by gpio dvs.
0077
0078 s5m8767,pmic-buck4-uses-gpio-dvs:
0079 type: boolean
0080 description: buck4 can be controlled by gpio dvs.
0081
0082 s5m8767,pmic-buck-default-dvs-idx:
0083 $ref: /schemas/types.yaml#/definitions/uint32-array
0084 minimum: 0
0085 maximum: 7
0086 default: 0
0087 description: |
0088 Default voltage setting selected from the possible 8 options selectable
0089 by the dvs gpios. The value of this property should be between 0 and 7.
0090 If not specified or if out of range, the default value of this property
0091 is set to 0.
0092
0093 s5m8767,pmic-buck-dvs-gpios:
0094 minItems: 3
0095 maxItems: 3
0096 description: |
0097 GPIO specifiers for three host gpio's used for dvs.
0098
0099 vinb1-supply:
0100 description: Power supply for buck1
0101 vinb2-supply:
0102 description: Power supply for buck2
0103 vinb3-supply:
0104 description: Power supply for buck3
0105 vinb4-supply:
0106 description: Power supply for buck4
0107 vinb5-supply:
0108 description: Power supply for buck5
0109 vinb6-supply:
0110 description: Power supply for buck6
0111 vinb7-supply:
0112 description: Power supply for buck7
0113 vinb8-supply:
0114 description: Power supply for buck8
0115 vinb9-supply:
0116 description: Power supply for buck9
0117
0118 vinl1-supply:
0119 description: Power supply for LDO3, LDO10, LDO26, LDO27
0120 vinl2-supply:
0121 description: Power supply for LDO13, LDO16, LDO25, LDO28
0122 vinl3-supply:
0123 description: Power supply for LDO11, LDO14
0124 vinl4-supply:
0125 description: Power supply for LDO4, LDO9
0126 vinl5-supply:
0127 description: Power supply for LDO12, LDO17, LDO19, LDO23
0128 vinl6-supply:
0129 description: Power supply for LDO18, LDO20, LDO21, LDO24
0130 vinl7-supply:
0131 description: Power supply for LDO5, LDO22
0132 vinl8-supply:
0133 description: Power supply for LDO1, LDO6, LDO7, LDO8, LDO15
0134 vinl9-supply:
0135 description: Power supply for LDO2
0136
0137 wakeup-source: true
0138
0139 required:
0140 - compatible
0141 - reg
0142 - regulators
0143 - s5m8767,pmic-buck-ds-gpios
0144
0145 dependencies:
0146 s5m8767,pmic-buck2-dvs-voltage: [ 's5m8767,pmic-buck-dvs-gpios' ]
0147 s5m8767,pmic-buck3-dvs-voltage: [ 's5m8767,pmic-buck-dvs-gpios' ]
0148 s5m8767,pmic-buck4-dvs-voltage: [ 's5m8767,pmic-buck-dvs-gpios' ]
0149 s5m8767,pmic-buck2-uses-gpio-dvs: [ 's5m8767,pmic-buck-dvs-gpios', 's5m8767,pmic-buck2-dvs-voltage' ]
0150 s5m8767,pmic-buck3-uses-gpio-dvs: [ 's5m8767,pmic-buck-dvs-gpios', 's5m8767,pmic-buck3-dvs-voltage' ]
0151 s5m8767,pmic-buck4-uses-gpio-dvs: [ 's5m8767,pmic-buck-dvs-gpios', 's5m8767,pmic-buck4-dvs-voltage' ]
0152
0153 additionalProperties: false
0154
0155 allOf:
0156 - if:
0157 required:
0158 - s5m8767,pmic-buck2-uses-gpio-dvs
0159 then:
0160 properties:
0161 s5m8767,pmic-buck3-uses-gpio-dvs: false
0162 s5m8767,pmic-buck4-uses-gpio-dvs: false
0163
0164 - if:
0165 required:
0166 - s5m8767,pmic-buck3-uses-gpio-dvs
0167 then:
0168 properties:
0169 s5m8767,pmic-buck2-uses-gpio-dvs: false
0170 s5m8767,pmic-buck4-uses-gpio-dvs: false
0171
0172 - if:
0173 required:
0174 - s5m8767,pmic-buck4-uses-gpio-dvs
0175 then:
0176 properties:
0177 s5m8767,pmic-buck2-uses-gpio-dvs: false
0178 s5m8767,pmic-buck3-uses-gpio-dvs: false
0179
0180 examples:
0181 - |
0182 #include <dt-bindings/gpio/gpio.h>
0183 #include <dt-bindings/interrupt-controller/irq.h>
0184
0185 i2c {
0186 #address-cells = <1>;
0187 #size-cells = <0>;
0188
0189 pmic@66 {
0190 compatible = "samsung,s5m8767-pmic";
0191 reg = <0x66>;
0192
0193 interrupt-parent = <&gpx3>;
0194 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
0195 pinctrl-names = "default";
0196 pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>;
0197 wakeup-source;
0198
0199 s5m8767,pmic-buck-default-dvs-idx = <3>;
0200 s5m8767,pmic-buck2-uses-gpio-dvs;
0201
0202 s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>,
0203 <&gpd1 1 GPIO_ACTIVE_LOW>,
0204 <&gpd1 2 GPIO_ACTIVE_LOW>;
0205
0206 s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_LOW>,
0207 <&gpx2 4 GPIO_ACTIVE_LOW>,
0208 <&gpx2 5 GPIO_ACTIVE_LOW>;
0209
0210 s5m8767,pmic-buck2-dvs-voltage = <1350000>, <1300000>,
0211 <1250000>, <1200000>,
0212 <1150000>, <1100000>,
0213 <1000000>, <950000>;
0214
0215 s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>,
0216 <1100000>, <1100000>,
0217 <1000000>, <1000000>,
0218 <1000000>, <1000000>;
0219
0220 s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>,
0221 <1200000>, <1200000>,
0222 <1200000>, <1200000>,
0223 <1200000>, <1200000>;
0224
0225 clocks {
0226 compatible = "samsung,s5m8767-clk";
0227 #clock-cells = <1>;
0228 clock-output-names = "en32khz_ap", "en32khz_cp", "en32khz_bt";
0229 };
0230
0231 regulators {
0232 LDO1 {
0233 regulator-name = "VDD_ALIVE";
0234 regulator-min-microvolt = <1100000>;
0235 regulator-max-microvolt = <1100000>;
0236 regulator-always-on;
0237 regulator-boot-on;
0238 op_mode = <1>; /* Normal Mode */
0239 };
0240
0241 // ...
0242
0243 BUCK1 {
0244 regulator-name = "VDD_MIF";
0245 regulator-min-microvolt = <950000>;
0246 regulator-max-microvolt = <1100000>;
0247 regulator-always-on;
0248 regulator-boot-on;
0249 op_mode = <1>; /* Normal Mode */
0250 };
0251
0252 BUCK2 {
0253 regulator-name = "VDD_ARM";
0254 regulator-min-microvolt = <900000>;
0255 regulator-max-microvolt = <1350000>;
0256 regulator-always-on;
0257 regulator-boot-on;
0258 op_mode = <1>; /* Normal Mode */
0259 };
0260
0261 // ...
0262 };
0263 };
0264 };
0265
0266 - |
0267 #include <dt-bindings/gpio/gpio.h>
0268 #include <dt-bindings/interrupt-controller/irq.h>
0269
0270 i2c {
0271 #address-cells = <1>;
0272 #size-cells = <0>;
0273
0274 pmic@66 {
0275 compatible = "samsung,s5m8767-pmic";
0276 reg = <0x66>;
0277
0278 interrupt-parent = <&gpx3>;
0279 interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
0280 pinctrl-names = "default";
0281 pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>;
0282 wakeup-source;
0283
0284 s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_LOW>,
0285 <&gpx2 4 GPIO_ACTIVE_LOW>,
0286 <&gpx2 5 GPIO_ACTIVE_LOW>;
0287
0288 clocks {
0289 compatible = "samsung,s5m8767-clk";
0290 #clock-cells = <1>;
0291 clock-output-names = "en32khz_ap", "en32khz_cp", "en32khz_bt";
0292 };
0293
0294 regulators {
0295 LDO1 {
0296 regulator-name = "VDD_ALIVE";
0297 regulator-min-microvolt = <1100000>;
0298 regulator-max-microvolt = <1100000>;
0299 regulator-always-on;
0300 regulator-boot-on;
0301 op_mode = <1>; /* Normal Mode */
0302 };
0303
0304 // ...
0305 };
0306 };
0307 };