dt-bindings: mfd: Add TI TPS6594 PMIC

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.

Signed-off-by: Julien Panis <jpanis@baylibre.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Lee Jones <lee@kernel.org>
Link: https://lore.kernel.org/r/20230511095126.105104-2-jpanis@baylibre.com
This commit is contained in:
Julien Panis 2023-05-11 11:51:21 +02:00 коммит произвёл Lee Jones
Родитель cc5f2eb7ce
Коммит a5f00e38ee
1 изменённых файлов: 193 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,193 @@
# 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;
};
};
};
};