Back to home page

OSCL-LXR

 
 

    


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     };