# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause %YAML 1.2 --- $id: http://devicetree.org/schemas/mfd/ti,tps6594.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: TI TPS6594 Power Management Integrated Circuit maintainers: - Julien Panis <jpanis@baylibre.com> description: TPS6594 is a Power Management IC which provides regulators and others features like GPIOs, RTC, watchdog, ESMs (Error Signal Monitor), and PFSM (Pre-configurable Finite State Machine) managing the state of the device. TPS6594 is the super-set device while TPS6593 and LP8764 are derivatives. properties: compatible: enum: - ti,lp8764-q1 - ti,tps6593-q1 - ti,tps6594-q1 reg: description: I2C slave address or SPI chip select number. maxItems: 1 ti,primary-pmic: type: boolean description: | Identify the primary PMIC on SPMI bus. A multi-PMIC synchronization scheme is implemented in the PMIC device to synchronize the power state changes with other PMIC devices. This is accomplished through a SPMI bus: the primary PMIC is the controller device on the SPMI bus, and the secondary PMICs are the target devices on the SPMI bus. system-power-controller: true gpio-controller: true '#gpio-cells': const: 2 description: | The first cell is the pin number, the second cell is used to specify flags. See ../gpio/gpio.txt for more information. interrupts: maxItems: 1 regulators: type: object description: List of regulators provided by this controller. patternProperties: "^buck([1-5]|12|34|123|1234)$": type: object $ref: /schemas/regulator/regulator.yaml# unevaluatedProperties: false "^ldo[1-4]$": type: object $ref: /schemas/regulator/regulator.yaml# unevaluatedProperties: false allOf: - if: required: - buck12 then: properties: buck123: false buck1234: false - if: required: - buck123 then: properties: buck34: false - if: required: - buck1234 then: properties: buck34: false additionalProperties: false patternProperties: "^buck([1-5]|12|34|123|1234)-supply$": description: Input supply phandle for each buck. "^ldo[1-4]-supply$": description: Input supply phandle for each ldo. required: - compatible - reg - interrupts additionalProperties: false examples: - | #include <dt-bindings/interrupt-controller/arm-gic.h> i2c { #address-cells = <1>; #size-cells = <0>; tps6593: pmic@48 { compatible = "ti,tps6593-q1"; reg = <0x48>; ti,primary-pmic; system-power-controller; gpio-controller; #gpio-cells = <2>; pinctrl-names = "default"; pinctrl-0 = <&pmic_irq_pins_default>; interrupt-parent = <&mcu_gpio0>; interrupts = <0 IRQ_TYPE_EDGE_FALLING>; buck123-supply = <&vcc_3v3_sys>; buck4-supply = <&vcc_3v3_sys>; buck5-supply = <&vcc_3v3_sys>; ldo1-supply = <&vcc_3v3_sys>; ldo2-supply = <&vcc_3v3_sys>; ldo3-supply = <&buck5>; ldo4-supply = <&vcc_3v3_sys>; regulators { buck123: buck123 { regulator-name = "vcc_core"; regulator-min-microvolt = <750000>; regulator-max-microvolt = <850000>; regulator-boot-on; regulator-always-on; }; buck4: buck4 { regulator-name = "vcc_1v1"; regulator-min-microvolt = <1100000>; regulator-max-microvolt = <1100000>; regulator-boot-on; regulator-always-on; }; buck5: buck5 { regulator-name = "vcc_1v8_sys"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-boot-on; regulator-always-on; }; ldo1: ldo1 { regulator-name = "vddshv5_sdio"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; regulator-boot-on; regulator-always-on; }; ldo2: ldo2 { regulator-name = "vpp_1v8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-boot-on; regulator-always-on; }; ldo3: ldo3 { regulator-name = "vcc_0v85"; regulator-min-microvolt = <850000>; regulator-max-microvolt = <850000>; regulator-boot-on; regulator-always-on; }; ldo4: ldo4 { regulator-name = "vdda_1v8"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-boot-on; regulator-always-on; }; }; }; };