mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
a9bc67de0c
This enables configuring the PMIC's sleep mode via device-tree. A pointer indirection to sleep mode data is removed, as it simplifies the implementation slightly. In current kernel tree, platform data structure is not used outside MFD cell drivers. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Signed-off-by: Mark Brown <broonie@kernel.org>
206 lines
6.5 KiB
Plaintext
206 lines
6.5 KiB
Plaintext
TPS65910 Power Management Integrated Circuit
|
|
|
|
Required properties:
|
|
- compatible: "ti,tps65910" or "ti,tps65911"
|
|
- reg: I2C slave address
|
|
- interrupts: the interrupt outputs of the controller
|
|
- #gpio-cells: number of cells to describe a GPIO, this should be 2.
|
|
The first cell is the GPIO number.
|
|
The second cell is used to specify additional options <unused>.
|
|
- gpio-controller: mark the device as a GPIO controller
|
|
- #interrupt-cells: the number of cells to describe an IRQ, this should be 2.
|
|
The first cell is the IRQ number.
|
|
The second cell is the flags, encoded as the trigger masks from
|
|
Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
|
|
- regulators: This is the list of child nodes that specify the regulator
|
|
initialization data for defined regulators. Not all regulators for the given
|
|
device need to be present. The definition for each of these nodes is defined
|
|
using the standard binding for regulators found at
|
|
Documentation/devicetree/bindings/regulator/regulator.txt.
|
|
The regulator is matched with the regulator-compatible.
|
|
|
|
The valid regulator-compatible values are:
|
|
tps65910: vrtc, vio, vdd1, vdd2, vdd3, vdig1, vdig2, vpll, vdac, vaux1,
|
|
vaux2, vaux33, vmmc, vbb
|
|
tps65911: vrtc, vio, vdd1, vdd3, vddctrl, ldo1, ldo2, ldo3, ldo4, ldo5,
|
|
ldo6, ldo7, ldo8
|
|
|
|
- xxx-supply: Input voltage supply regulator.
|
|
These entries are require if regulators are enabled for a device. Missing of these
|
|
properties can cause the regulator registration fails.
|
|
If some of input supply is powered through battery or always-on supply then
|
|
also it is require to have these parameters with proper node handle of always
|
|
on power supply.
|
|
tps65910:
|
|
vcc1-supply: VDD1 input.
|
|
vcc2-supply: VDD2 input.
|
|
vcc3-supply: VAUX33 and VMMC input.
|
|
vcc4-supply: VAUX1 and VAUX2 input.
|
|
vcc5-supply: VPLL and VDAC input.
|
|
vcc6-supply: VDIG1 and VDIG2 input.
|
|
vcc7-supply: VRTC and VBB input.
|
|
vccio-supply: VIO input.
|
|
tps65911:
|
|
vcc1-supply: VDD1 input.
|
|
vcc2-supply: VDD2 input.
|
|
vcc3-supply: LDO6, LDO7 and LDO8 input.
|
|
vcc4-supply: LDO5 input.
|
|
vcc5-supply: LDO3 and LDO4 input.
|
|
vcc6-supply: LDO1 and LDO2 input.
|
|
vcc7-supply: VRTC input.
|
|
vccio-supply: VIO input.
|
|
|
|
Optional properties:
|
|
- ti,vmbch-threshold: (tps65911) main battery charged threshold
|
|
comparator. (see VMBCH_VSEL in TPS65910 datasheet)
|
|
- ti,vmbch2-threshold: (tps65911) main battery discharged threshold
|
|
comparator. (see VMBCH_VSEL in TPS65910 datasheet)
|
|
- ti,en-ck32k-xtal: enable external 32-kHz crystal oscillator (see CK32K_CTRL
|
|
in TPS6591X datasheet)
|
|
- ti,en-gpio-sleep: enable sleep control for gpios
|
|
There should be 9 entries here, one for each gpio.
|
|
- ti,system-power-controller: Telling whether or not this pmic is controlling
|
|
the system power.
|
|
- ti,sleep-enable: Enable SLEEP state.
|
|
- ti,sleep-keep-therm: Keep thermal monitoring on in sleep state.
|
|
- ti,sleep-keep-ck32k: Keep the 32KHz clock output on in sleep state.
|
|
- ti,sleep-keep-hsclk: Keep high speed internal clock on in sleep state.
|
|
|
|
Regulator Optional properties:
|
|
- ti,regulator-ext-sleep-control: enable external sleep
|
|
control through external inputs [0 (not enabled), 1 (EN1), 2 (EN2) or 4(EN3)]
|
|
If this property is not defined, it defaults to 0 (not enabled).
|
|
|
|
Example:
|
|
|
|
pmu: tps65910@d2 {
|
|
compatible = "ti,tps65910";
|
|
reg = <0xd2>;
|
|
interrupt-parent = <&intc>;
|
|
interrupts = < 0 118 0x04 >;
|
|
|
|
#gpio-cells = <2>;
|
|
gpio-controller;
|
|
|
|
#interrupt-cells = <2>;
|
|
interrupt-controller;
|
|
|
|
ti,system-power-controller;
|
|
|
|
ti,vmbch-threshold = 0;
|
|
ti,vmbch2-threshold = 0;
|
|
ti,en-ck32k-xtal;
|
|
ti,en-gpio-sleep = <0 0 1 0 0 0 0 0 0>;
|
|
|
|
vcc1-supply = <®_parent>;
|
|
vcc2-supply = <&some_reg>;
|
|
vcc3-supply = <...>;
|
|
vcc4-supply = <...>;
|
|
vcc5-supply = <...>;
|
|
vcc6-supply = <...>;
|
|
vcc7-supply = <...>;
|
|
vccio-supply = <...>;
|
|
|
|
regulators {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
vdd1_reg: regulator@0 {
|
|
regulator-compatible = "vdd1";
|
|
reg = <0>;
|
|
regulator-min-microvolt = < 600000>;
|
|
regulator-max-microvolt = <1500000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
ti,regulator-ext-sleep-control = <0>;
|
|
};
|
|
vdd2_reg: regulator@1 {
|
|
regulator-compatible = "vdd2";
|
|
reg = <1>;
|
|
regulator-min-microvolt = < 600000>;
|
|
regulator-max-microvolt = <1500000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
ti,regulator-ext-sleep-control = <4>;
|
|
};
|
|
vddctrl_reg: regulator@2 {
|
|
regulator-compatible = "vddctrl";
|
|
reg = <2>;
|
|
regulator-min-microvolt = < 600000>;
|
|
regulator-max-microvolt = <1400000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
ti,regulator-ext-sleep-control = <0>;
|
|
};
|
|
vio_reg: regulator@3 {
|
|
regulator-compatible = "vio";
|
|
reg = <3>;
|
|
regulator-min-microvolt = <1500000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
ti,regulator-ext-sleep-control = <1>;
|
|
};
|
|
ldo1_reg: regulator@4 {
|
|
regulator-compatible = "ldo1";
|
|
reg = <4>;
|
|
regulator-min-microvolt = <1000000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
ti,regulator-ext-sleep-control = <0>;
|
|
};
|
|
ldo2_reg: regulator@5 {
|
|
regulator-compatible = "ldo2";
|
|
reg = <5>;
|
|
regulator-min-microvolt = <1050000>;
|
|
regulator-max-microvolt = <1050000>;
|
|
ti,regulator-ext-sleep-control = <0>;
|
|
};
|
|
ldo3_reg: regulator@6 {
|
|
regulator-compatible = "ldo3";
|
|
reg = <6>;
|
|
regulator-min-microvolt = <1000000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
ti,regulator-ext-sleep-control = <0>;
|
|
};
|
|
ldo4_reg: regulator@7 {
|
|
regulator-compatible = "ldo4";
|
|
reg = <7>;
|
|
regulator-min-microvolt = <1000000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
ti,regulator-ext-sleep-control = <0>;
|
|
};
|
|
ldo5_reg: regulator@8 {
|
|
regulator-compatible = "ldo5";
|
|
reg = <8>;
|
|
regulator-min-microvolt = <1000000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
ti,regulator-ext-sleep-control = <0>;
|
|
};
|
|
ldo6_reg: regulator@9 {
|
|
regulator-compatible = "ldo6";
|
|
reg = <9>;
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
ti,regulator-ext-sleep-control = <0>;
|
|
};
|
|
ldo7_reg: regulator@10 {
|
|
regulator-compatible = "ldo7";
|
|
reg = <10>;
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1200000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
ti,regulator-ext-sleep-control = <1>;
|
|
};
|
|
ldo8_reg: regulator@11 {
|
|
regulator-compatible = "ldo8";
|
|
reg = <11>;
|
|
regulator-min-microvolt = <1000000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-always-on;
|
|
ti,regulator-ext-sleep-control = <1>;
|
|
};
|
|
};
|
|
};
|