mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
32b6d3f602
Palmas rails like LDOs, SMPSs, REGENs, SYSENs can be enable and disable by register programming through I2C communication as well as it can be enable/disable with the external control input ENABLE1, ENABLE2 and NSLEEP. Add support for configuring these rails to be controlled by external control inputs. This is require to configure the rail's control register as well as configuration of resource register. Provide the external input names through parameter "roof-floor". Updated the DT binding document to details different value of the roof-floor. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Acked-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Mark Brown <broonie@linaro.org>
82 lines
2.6 KiB
Plaintext
82 lines
2.6 KiB
Plaintext
* palmas regulator IP block devicetree bindings
|
|
|
|
Required properties:
|
|
- compatible : Should be from the list
|
|
ti,twl6035-pmic
|
|
ti,twl6036-pmic
|
|
ti,twl6037-pmic
|
|
ti,tps65913-pmic
|
|
ti,tps65914-pmic
|
|
and also the generic series names
|
|
ti,palmas-pmic
|
|
- interrupt-parent : The parent interrupt controller which is palmas.
|
|
- interrupts : The interrupt number and the type which can be looked up here:
|
|
arch/arm/boot/dts/include/dt-bindings/interrupt-controller/irq.h
|
|
- interrupts-name: The names of the individual interrupts.
|
|
|
|
Optional properties:
|
|
- ti,ldo6-vibrator : ldo6 is in vibrator mode
|
|
|
|
Optional nodes:
|
|
- regulators : Must contain a sub-node per regulator from the list below.
|
|
Each sub-node should contain the constraints and initialization
|
|
information for that regulator. See regulator.txt for a
|
|
description of standard properties for these sub-nodes.
|
|
Additional custom properties are listed below.
|
|
|
|
For ti,palmas-pmic - smps12, smps123, smps3 depending on OTP,
|
|
smps45, smps457, smps7 depending on variant, smps6, smps[8-9],
|
|
smps10_out2, smps10_out1, ldo[1-9], ldoln, ldousb.
|
|
|
|
Optional sub-node properties:
|
|
ti,warm-reset - maintain voltage during warm reset(boolean)
|
|
ti,roof-floor - This takes as optional argument on platform supporting
|
|
the rail from desired external control. If there is no argument then
|
|
it will be assume that it is controlled by NSLEEP pin.
|
|
The valid value for external pins are:
|
|
ENABLE1 then 1,
|
|
ENABLE2 then 2 or
|
|
NSLEEP then 3.
|
|
ti,mode-sleep - mode to adopt in pmic sleep 0 - off, 1 - auto,
|
|
2 - eco, 3 - forced pwm
|
|
ti,smps-range - OTP has the wrong range set for the hardware so override
|
|
0 - low range, 1 - high range.
|
|
|
|
- ti,system-power-controller: Telling whether or not this pmic is controlling
|
|
the system power.
|
|
|
|
Example:
|
|
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
|
|
pmic {
|
|
compatible = "ti,twl6035-pmic", "ti,palmas-pmic";
|
|
interrupt-parent = <&palmas>;
|
|
interrupts = <14 IRQ_TYPE_NONE>;
|
|
interrupts-name = "short-irq";
|
|
|
|
ti,ldo6-vibrator;
|
|
|
|
ti,system-power-controller;
|
|
|
|
regulators {
|
|
smps12_reg : smps12 {
|
|
regulator-name = "smps12";
|
|
regulator-min-microvolt = < 600000>;
|
|
regulator-max-microvolt = <1500000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
ti,warm-reset;
|
|
ti,roof-floor = <1>; /* ENABLE1 control */
|
|
ti,mode-sleep = <0>;
|
|
ti,smps-range = <1>;
|
|
};
|
|
|
|
ldo1_reg: ldo1 {
|
|
regulator-name = "ldo1";
|
|
regulator-min-microvolt = <2800000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
};
|
|
};
|
|
};
|