| # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/mfd/samsung,s5m8767.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Samsung S5M8767 Power Management IC |
| |
| maintainers: |
| - Krzysztof Kozlowski <krzk@kernel.org> |
| |
| description: | |
| This is a part of device tree bindings for S2M and S5M family of Power |
| Management IC (PMIC). |
| |
| The Samsung S5M8767 is a Power Management IC which includes voltage |
| and current regulators, RTC, clock outputs and other sub-blocks. |
| |
| properties: |
| compatible: |
| const: samsung,s5m8767-pmic |
| |
| clocks: |
| $ref: ../clock/samsung,s2mps11.yaml |
| description: |
| Child node describing clock provider. |
| |
| interrupts: |
| maxItems: 1 |
| |
| reg: |
| maxItems: 1 |
| |
| regulators: |
| $ref: ../regulator/samsung,s5m8767.yaml |
| description: |
| List of child nodes that specify the regulators. |
| |
| s5m8767,pmic-buck2-dvs-voltage: |
| $ref: /schemas/types.yaml#/definitions/uint32-array |
| minItems: 8 |
| maxItems: 8 |
| description: | |
| A set of 8 voltage values in micro-volt (uV) units for buck2 when |
| changing voltage using gpio dvs. |
| |
| s5m8767,pmic-buck3-dvs-voltage: |
| $ref: /schemas/types.yaml#/definitions/uint32-array |
| minItems: 8 |
| maxItems: 8 |
| description: | |
| A set of 8 voltage values in micro-volt (uV) units for buck3 when |
| changing voltage using gpio dvs. |
| |
| s5m8767,pmic-buck4-dvs-voltage: |
| $ref: /schemas/types.yaml#/definitions/uint32-array |
| minItems: 8 |
| maxItems: 8 |
| description: | |
| A set of 8 voltage values in micro-volt (uV) units for buck4 when |
| changing voltage using gpio dvs. |
| |
| s5m8767,pmic-buck-ds-gpios: |
| minItems: 3 |
| maxItems: 3 |
| description: | |
| GPIO specifiers for three host gpio's used for selecting GPIO DVS lines. |
| It is one-to-one mapped to dvs gpio lines. |
| |
| s5m8767,pmic-buck2-uses-gpio-dvs: |
| type: boolean |
| description: buck2 can be controlled by gpio dvs. |
| |
| s5m8767,pmic-buck3-uses-gpio-dvs: |
| type: boolean |
| description: buck3 can be controlled by gpio dvs. |
| |
| s5m8767,pmic-buck4-uses-gpio-dvs: |
| type: boolean |
| description: buck4 can be controlled by gpio dvs. |
| |
| s5m8767,pmic-buck-default-dvs-idx: |
| $ref: /schemas/types.yaml#/definitions/uint32-array |
| minimum: 0 |
| maximum: 7 |
| default: 0 |
| description: | |
| Default voltage setting selected from the possible 8 options selectable |
| by the dvs gpios. The value of this property should be between 0 and 7. |
| If not specified or if out of range, the default value of this property |
| is set to 0. |
| |
| s5m8767,pmic-buck-dvs-gpios: |
| minItems: 3 |
| maxItems: 3 |
| description: | |
| GPIO specifiers for three host gpio's used for dvs. |
| |
| vinb1-supply: |
| description: Power supply for buck1 |
| vinb2-supply: |
| description: Power supply for buck2 |
| vinb3-supply: |
| description: Power supply for buck3 |
| vinb4-supply: |
| description: Power supply for buck4 |
| vinb5-supply: |
| description: Power supply for buck5 |
| vinb6-supply: |
| description: Power supply for buck6 |
| vinb7-supply: |
| description: Power supply for buck7 |
| vinb8-supply: |
| description: Power supply for buck8 |
| vinb9-supply: |
| description: Power supply for buck9 |
| |
| vinl1-supply: |
| description: Power supply for LDO3, LDO10, LDO26, LDO27 |
| vinl2-supply: |
| description: Power supply for LDO13, LDO16, LDO25, LDO28 |
| vinl3-supply: |
| description: Power supply for LDO11, LDO14 |
| vinl4-supply: |
| description: Power supply for LDO4, LDO9 |
| vinl5-supply: |
| description: Power supply for LDO12, LDO17, LDO19, LDO23 |
| vinl6-supply: |
| description: Power supply for LDO18, LDO20, LDO21, LDO24 |
| vinl7-supply: |
| description: Power supply for LDO5, LDO22 |
| vinl8-supply: |
| description: Power supply for LDO1, LDO6, LDO7, LDO8, LDO15 |
| vinl9-supply: |
| description: Power supply for LDO2 |
| |
| wakeup-source: true |
| |
| required: |
| - compatible |
| - reg |
| - regulators |
| - s5m8767,pmic-buck-ds-gpios |
| |
| dependencies: |
| s5m8767,pmic-buck2-dvs-voltage: [ 's5m8767,pmic-buck-dvs-gpios' ] |
| s5m8767,pmic-buck3-dvs-voltage: [ 's5m8767,pmic-buck-dvs-gpios' ] |
| s5m8767,pmic-buck4-dvs-voltage: [ 's5m8767,pmic-buck-dvs-gpios' ] |
| s5m8767,pmic-buck2-uses-gpio-dvs: [ 's5m8767,pmic-buck-dvs-gpios', 's5m8767,pmic-buck2-dvs-voltage' ] |
| s5m8767,pmic-buck3-uses-gpio-dvs: [ 's5m8767,pmic-buck-dvs-gpios', 's5m8767,pmic-buck3-dvs-voltage' ] |
| s5m8767,pmic-buck4-uses-gpio-dvs: [ 's5m8767,pmic-buck-dvs-gpios', 's5m8767,pmic-buck4-dvs-voltage' ] |
| |
| additionalProperties: false |
| |
| allOf: |
| - if: |
| required: |
| - s5m8767,pmic-buck2-uses-gpio-dvs |
| then: |
| properties: |
| s5m8767,pmic-buck3-uses-gpio-dvs: false |
| s5m8767,pmic-buck4-uses-gpio-dvs: false |
| |
| - if: |
| required: |
| - s5m8767,pmic-buck3-uses-gpio-dvs |
| then: |
| properties: |
| s5m8767,pmic-buck2-uses-gpio-dvs: false |
| s5m8767,pmic-buck4-uses-gpio-dvs: false |
| |
| - if: |
| required: |
| - s5m8767,pmic-buck4-uses-gpio-dvs |
| then: |
| properties: |
| s5m8767,pmic-buck2-uses-gpio-dvs: false |
| s5m8767,pmic-buck3-uses-gpio-dvs: false |
| |
| examples: |
| - | |
| #include <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/interrupt-controller/irq.h> |
| |
| i2c { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| pmic@66 { |
| compatible = "samsung,s5m8767-pmic"; |
| reg = <0x66>; |
| |
| interrupt-parent = <&gpx3>; |
| interrupts = <2 IRQ_TYPE_LEVEL_LOW>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>; |
| wakeup-source; |
| |
| s5m8767,pmic-buck-default-dvs-idx = <3>; |
| s5m8767,pmic-buck2-uses-gpio-dvs; |
| |
| s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>, |
| <&gpd1 1 GPIO_ACTIVE_LOW>, |
| <&gpd1 2 GPIO_ACTIVE_LOW>; |
| |
| s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_LOW>, |
| <&gpx2 4 GPIO_ACTIVE_LOW>, |
| <&gpx2 5 GPIO_ACTIVE_LOW>; |
| |
| s5m8767,pmic-buck2-dvs-voltage = <1350000>, <1300000>, |
| <1250000>, <1200000>, |
| <1150000>, <1100000>, |
| <1000000>, <950000>; |
| |
| s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>, |
| <1100000>, <1100000>, |
| <1000000>, <1000000>, |
| <1000000>, <1000000>; |
| |
| s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>, |
| <1200000>, <1200000>, |
| <1200000>, <1200000>, |
| <1200000>, <1200000>; |
| |
| clocks { |
| compatible = "samsung,s5m8767-clk"; |
| #clock-cells = <1>; |
| clock-output-names = "en32khz_ap", "en32khz_cp", "en32khz_bt"; |
| }; |
| |
| regulators { |
| LDO1 { |
| regulator-name = "VDD_ALIVE"; |
| regulator-min-microvolt = <1100000>; |
| regulator-max-microvolt = <1100000>; |
| regulator-always-on; |
| regulator-boot-on; |
| op_mode = <1>; /* Normal Mode */ |
| }; |
| |
| // ... |
| |
| BUCK1 { |
| regulator-name = "VDD_MIF"; |
| regulator-min-microvolt = <950000>; |
| regulator-max-microvolt = <1100000>; |
| regulator-always-on; |
| regulator-boot-on; |
| op_mode = <1>; /* Normal Mode */ |
| }; |
| |
| BUCK2 { |
| regulator-name = "VDD_ARM"; |
| regulator-min-microvolt = <900000>; |
| regulator-max-microvolt = <1350000>; |
| regulator-always-on; |
| regulator-boot-on; |
| op_mode = <1>; /* Normal Mode */ |
| }; |
| |
| // ... |
| }; |
| }; |
| }; |
| |
| - | |
| #include <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/interrupt-controller/irq.h> |
| |
| i2c { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| pmic@66 { |
| compatible = "samsung,s5m8767-pmic"; |
| reg = <0x66>; |
| |
| interrupt-parent = <&gpx3>; |
| interrupts = <2 IRQ_TYPE_LEVEL_LOW>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>; |
| wakeup-source; |
| |
| s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_LOW>, |
| <&gpx2 4 GPIO_ACTIVE_LOW>, |
| <&gpx2 5 GPIO_ACTIVE_LOW>; |
| |
| clocks { |
| compatible = "samsung,s5m8767-clk"; |
| #clock-cells = <1>; |
| clock-output-names = "en32khz_ap", "en32khz_cp", "en32khz_bt"; |
| }; |
| |
| regulators { |
| LDO1 { |
| regulator-name = "VDD_ALIVE"; |
| regulator-min-microvolt = <1100000>; |
| regulator-max-microvolt = <1100000>; |
| regulator-always-on; |
| regulator-boot-on; |
| op_mode = <1>; /* Normal Mode */ |
| }; |
| |
| // ... |
| }; |
| }; |
| }; |