# 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: - not: required: - s5m8767,pmic-buck2-uses-gpio-dvs - s5m8767,pmic-buck3-uses-gpio-dvs - not: required: - s5m8767,pmic-buck2-uses-gpio-dvs - s5m8767,pmic-buck4-uses-gpio-dvs - not: required: - s5m8767,pmic-buck3-uses-gpio-dvs - s5m8767,pmic-buck4-uses-gpio-dvs 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 */ }; // ... }; }; };