M7350v1_en_gpl

This commit is contained in:
T
2024-09-09 08:52:07 +00:00
commit f9cc65cfda
65988 changed files with 26357421 additions and 0 deletions

View File

@ -0,0 +1,29 @@
Anatop Voltage regulators
Required properties:
- compatible: Must be "fsl,anatop-regulator"
- anatop-reg-offset: Anatop MFD register offset
- anatop-vol-bit-shift: Bit shift for the register
- anatop-vol-bit-width: Number of bits used in the register
- anatop-min-bit-val: Minimum value of this register
- anatop-min-voltage: Minimum voltage of this regulator
- anatop-max-voltage: Maximum voltage of this regulator
Any property defined as part of the core regulator
binding, defined in regulator.txt, can also be used.
Example:
regulator-vddpu {
compatible = "fsl,anatop-regulator";
regulator-name = "vddpu";
regulator-min-microvolt = <725000>;
regulator-max-microvolt = <1300000>;
regulator-always-on;
anatop-reg-offset = <0x140>;
anatop-vol-bit-shift = <9>;
anatop-vol-bit-width = <5>;
anatop-min-bit-val = <1>;
anatop-min-voltage = <725000>;
anatop-max-voltage = <1300000>;
};

View File

@ -0,0 +1,30 @@
Fixed Voltage regulators
Required properties:
- compatible: Must be "regulator-fixed";
Optional properties:
- gpio: gpio to use for enable control
- startup-delay-us: startup time in microseconds
- enable-active-high: Polarity of GPIO is Active high
If this property is missing, the default assumed is Active low.
- parent-supply: phandle to the parent supply/regulator node if one exists.
Any property defined as part of the core regulator
binding, defined in regulator.txt, can also be used.
However a fixed voltage regulator is expected to have the
regulator-min-microvolt and regulator-max-microvolt
to be the same.
Example:
abc: fixedregulator@0 {
compatible = "regulator-fixed";
regulator-name = "fixed-supply";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
gpio = <&gpio1 16 0>;
startup-delay-us = <70000>;
enable-active-high;
regulator-boot-on
};

View File

@ -0,0 +1,31 @@
Qualcomm Global Distributed Switch Controller (GDSC) Regulator Driver
The GDSC driver, implemented under the regulator framework, is responsible for
safely collapsing and restoring power to peripheral cores on chipsets like
msm8974 for power savings.
Required properties:
- compatible: Must be "qcom,gdsc"
- regulator-name: A string used as a descriptive name for regulator outputs
- reg: The address of the GDSCR register
Optional properties:
- parent-supply: phandle to the parent supply/regulator node
- qcom,clock-names: List of string names for core clocks
- qcom,retain-mem: Presence denotes a hardware requirement to leave the
forced core memory retention signals in the core's clock
branch control registers asserted.
- qcom,retain-periph: Presence denotes a hardware requirement to leave the
forced periph memory retention signal in the core's clock
branch control registers asserted.
- qcom,skip-logic-collapse: Presence denotes a requirement to leave power to
the core's logic enabled.
Example:
gdsc_oxili_gx: qcom,gdsc@fd8c4024 {
compatible = "qcom,gdsc";
regulator-name = "gdsc_oxili_gx";
parent-supply = <&pm8841_s4>;
reg = <0xfd8c4024 0x4>;
qcom,clock-names = "core_clk";
};

View File

@ -0,0 +1,89 @@
Krait Voltage regulators
The cpus are powered using a single supply powered by PMIC ganged regulators operating in
different phases. Individual kraits further can draw power from the single supply via
a LDO or a head switch (BHS). The first level node represents the PMIC ganged regulator
and its properties and encompasses second level nodes that represent the individual
krait LDO/BHS control regulator.
[First Level Nodes]
Required properties:
- compatible: Must be "qcom,krait-pdn"
- reg: This property contains a list of physical
addresses for Krait PDN features. The list
should contain the address of the APCS GCC
register base and the address of the phase
scaling factor eFuse.
- reg-names: This property contains a list of strings naming
the registers listed in the reg property.
"apcs_gcc" is a string to identify the area
where the APCS GCC registers reside.
"phase-scaling-efuse" should be used to identify
the phase scaling factor eFuse address.
- qcom,pfm-threshold The power coeff threshold in abstract power units below which
pmic will be made to operate in PFM mode.
Optional properties:
- qcom,use-phase-switching indicates whether the driver should add/shed phases on the PMIC
ganged regulator as cpus are hotplugged.
- qcom,use-phase-scaling-factor Boolean which indicates if the value stored in
the phase scaling eFuse should be used or not.
If this property is not specified, then worst
case scaling will be assumed.
[Second Level Nodes]
Required properties:
- compatible: Must be "qcom,krait-regulator"
- reg: Specifies the address and size for this regulator device,
also specifies the address and the size for the MDD area
to be used along with the regulator
- reg-names: "acs" -string to identify the area where main power control
registers reside.
"mdd" - string to identify the area where mdd registers reside.
- qcom,headroom-voltage: The minimum required voltage drop between the input
voltage and the output voltage for the LDO to be
operational, in microvolts. Acceptable values are from
50000uV to 250000uV
- qcom,retention-voltage: The value for retention voltage in microvolts. Acceptable
values are from 465000uV to 750000uV
- qcom,ldo-default-voltage: The default value for LDO voltage in microvolts. Acceptable
values are from 465000uV to 750000uV
- qcom,ldo-threshold-voltage: The voltage value above which LDO is nonfunctional.
Acceptable values are from 600000uV to 900000uV
- qcom,ldo-delta-voltage: The delta used to reduce the requested voltage in order
to derive the LDO output voltage while switching
to LDO mode. Acceptable values are from 1000uV to 100000uV
- qcom,cpu-num: Indicates what cpu this regulator controls
Any property defined as part of the core regulator
binding, defined in regulator.txt, can also be used.
Example:
krait_pdn: krait-pdn@f9011000 {
reg = <0xf9011000 0x1000>,
<0xfc4b80b0 8>;
reg-names = "apcs_gcc", "phase-scaling-efuse";
compatible = "qcom,krait-pdn";
qcom,use-phase-switching;
qcom,use-phase-scaling-factor;
qcom,pfm-threshold = <376975>;
#address-cells = <1>;
#size-cells = <1>;
ranges;
krait0_vreg: regulator@f9088000 {
compatible = "qcom,krait-regulator";
regulator-name = "krait0";
reg = <0xf9088000 0x1000>, /* APCS_ALIAS0_KPSS_ACS */
<0xf908a800 0x1000>; /* APCS_ALIAS0_KPSS_MDD */
reg-names = "acs", "mdd";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <1100000>;
qcom,headroom-voltage = <150000>;
qcom,retention-voltage = <675000>;
qcom,ldo-default-voltage = <750000>;
qcom,ldo-threshold-voltage = <850000>;
qcom,ldo-delta-voltage = <50000>;
qcom,cpu-num = <0>;
};
};

View File

@ -0,0 +1,158 @@
Qualcomm QPNP Regulators
qpnp-regulator is a regulator driver which supports regulators inside of PMICs
that utilize the MSM SPMI implementation.
Required properties:
- compatible: Must be "qcom,qpnp-regulator"
- reg: Specifies the SPMI address and size for this regulator device
Note, this is the only property which can be used within a
subnode of a node which has specified spmi-dev-container.
- regulator-name: A string used as a descriptive name for regulator outputs
- parent-supply: phandle to the parent supply/regulator node
Required structure:
- A qcom,qpnp-regulator node must be a child of an SPMI node that has specified
the spmi-slave-container property
Optional properties:
- interrupts: List of interrupts used by the regulator.
- interrupt-names: List of strings defining the names of the
interrupts in the 'interrupts' property 1-to-1.
Supported values are "ocp" for voltage switch
type regulators. If an OCP interrupt is
specified, then the voltage switch will be
toggled off and back on when OCP triggers in
order to handle high in-rush current.
- qcom,system-load: Load in uA present on regulator that is not
captured by any consumer request
- qcom,enable-time: Time in us to delay after enabling the regulator
- qcom,auto-mode-enable: 1 = Enable automatic hardware selection of
regulator mode (HPM vs LPM); not available on
boost type regulators
0 = Disable auto mode selection
- qcom,bypass-mode-enable: 1 = Enable bypass mode for an LDO type regulator
so that it acts like a switch and simply outputs
its input voltage
0 = Do not enable bypass mode
- qcom,ocp-enable: 1 = Allow over current protection (OCP) to be
enabled for voltage switch type regulators so
that they latch off automatically when over
current is detected. OCP is enabled when in
HPM or auto mode.
0 = Disable OCP
- qcom,ocp-max-retries: Maximum number of times to try toggling a voltage
switch off and back on as a result of
consecutive over current events.
- qcom,ocp-retry-delay: Time to delay in milliseconds between each
voltage switch toggle after an over current
event takes place.
- qcom,pull-down-enable: 1 = Enable output pull down resistor when the
regulator is disabled
0 = Disable pull down resistor
- qcom,soft-start-enable: 1 = Enable soft start for LDO and voltage switch
type regulators so that output voltage slowly
ramps up when the regulator is enabled
0 = Disable soft start
- qcom,boost-current-limit: This property sets the current limit of boost
type regulators; supported values are:
0 = 300 mA
1 = 600 mA
2 = 900 mA
3 = 1200 mA
4 = 1500 mA
5 = 1800 mA
6 = 2100 mA
7 = 2400 mA
- qcom,pin-ctrl-enable: Bit mask specifying which hardware pins should be
used to enable the regulator, if any; supported
bits are:
0 = ignore all hardware enable signals
BIT(0) = follow HW0_EN signal
BIT(1) = follow HW1_EN signal
BIT(2) = follow HW2_EN signal
BIT(3) = follow HW3_EN signal
- qcom,pin-ctrl-hpm: Bit mask specifying which hardware pins should be
used to force the regulator into high power
mode, if any; supported bits are:
0 = ignore all hardware enable signals
BIT(0) = follow HW0_EN signal
BIT(1) = follow HW1_EN signal
BIT(2) = follow HW2_EN signal
BIT(3) = follow HW3_EN signal
BIT(4) = follow PMIC awake state
- qcom,vs-soft-start-strength: This property sets the soft start strength for
voltage switch type regulators; supported values
are:
0 = 0.05 uA
1 = 0.25 uA
2 = 0.55 uA
3 = 0.75 uA
- qcom,hpm-enable: 1 = Enable high power mode (HPM), also referred
to as NPM. HPM consumes more ground current
than LPM, but it can source significantly higher
load current. HPM is not available on boost
type regulators. For voltage switch type
regulators, HPM implies that over current
protection and soft start are active all the
time. This configuration can be overwritten
by changing the regulator's mode dynamically.
0 = Do not enable HPM
- qcom,force-type: Override the type and subtype register values. Useful for some
regulators that have invalid types advertised by the hardware.
The format is two unsigned integers of the form <type subtype>.
- spmi-dev-container: Specifies that all the device nodes specified
within this node should have their resources coalesced into a
single spmi_device. This is used to specify all SPMI peripherals
that logically make up a single regulator device.
Note, if a given optional qcom,* binding is not present, then the qpnp-regulator
driver will leave that feature in the default hardware state.
All properties specified within the core regulator framework can also be used.
These bindings can be found in regulator.txt.
Example:
qcom,spmi@fc4c0000 {
#address-cells = <1>;
#size-cells = <0>;
interrupt-controller;
#interrupt-cells = <3>;
qcom,pm8941@1 {
spmi-slave-container;
reg = <0x1>;
#address-cells = <1>;
#size-cells = <1>;
regulator@1400 {
regulator-name = "8941_s1";
spmi-dev-container;
#address-cells = <1>;
#size-cells = <1>;
compatible = "qcom,qpnp-regulator";
reg = <0x1400 0x300>;
regulator-min-microvolt = <1300000>;
regulator-max-microvolt = <1400000>;
qcom,ctl@1400 {
reg = <0x1400 0x100>;
};
qcom,ps@1500 {
reg = <0x1500 0x100>;
};
qcom,freq@1600 {
reg = <0x1600 0x100>;
};
};
regulator@4000 {
regulator-name = "8941_l1";
reg = <0x4000 0x100>;
compatible = "qcom,qpnp-regulator";
regulator-min-microvolt = <1225000>;
regulator-max-microvolt = <1300000>;
qcom,pull-down-enable = <1>;
};
};
};

View File

@ -0,0 +1,60 @@
Voltage/Current Regulators
Optional properties:
- regulator-name: A string used as a descriptive name for regulator outputs
- regulator-min-microvolt: smallest voltage consumers may set
- regulator-max-microvolt: largest voltage consumers may set
- regulator-microvolt-offset: Offset applied to voltages to compensate for voltage drops
- regulator-min-microamp: smallest current consumers may set
- regulator-max-microamp: largest current consumers may set
- regulator-always-on: boolean, regulator should never be disabled
- regulator-boot-on: bootloader/firmware enabled regulator
- <name>-supply: phandle to the parent supply/regulator node
- qcom,consumer-supplies: flattened list of supply and dev_name pairs
This property is used to support regulator consumers that have no device
tree node. An empty string, "", can be used to specify a null device
name. A null device name is used to allow calls such as:
regulator_get(NULL, "pll_vdd").
Example:
xyzreg: regulator@0 {
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <2500000>;
regulator-always-on;
vin-supply = <&vin>;
qcom,consumer-supplies = "pll_vdd", "", "lcd_vcc", "foo.1";
};
Regulator Consumers:
Consumer nodes can reference one or more of its supplies/
regulators using the below bindings.
- <name>-supply: phandle to the regulator node
These are the same bindings that a regulator in the above
example used to reference its own supply, in which case
its just seen as a special case of a regulator being a
consumer itself.
Example of a consumer device node (mmc) referencing two
regulators (twl_reg1 and twl_reg2),
twl_reg1: regulator@0 {
...
...
...
};
twl_reg2: regulator@1 {
...
...
...
};
mmc: mmc@0x0 {
...
...
vmmc-supply = <&twl_reg1>;
vmmcaux-supply = <&twl_reg2>;
};

View File

@ -0,0 +1,48 @@
Stub Voltage Regulators
stub-regulators are place-holder regulator devices which do not impact any
hardware state. They provide a means for consumer devices to utilize all
regulator features for testing purposes.
Required properties:
- compatible: Must be "qcom,stub-regulator".
- regulator-name: A string used as a descriptive name for regulator outputs.
Optional properties:
- parent-supply: phandle to the parent supply/regulator node if one exists.
- qcom,hpm-min-load: Load current in uA which corresponds to the minimum load
which requires the regulator to be in high power mode.
- qcom,system-load: Load in uA present on regulator that is not captured by any
consumer request.
All properties specified within the core regulator framework can also be used.
These bindings can be found in regulator.txt.
Example:
/ {
pm8026_s3: regulator-s3 {
compatible = "qcom,stub-regulator";
regulator-name = "8026_s3";
qcom,hpm-min-load = <100000>;
regulator-min-microvolt = <1300000>;
regulator-max-microvolt = <1300000>;
};
pm8026_l1: regulator-l1 {
compatible = "qcom,stub-regulator";
regulator-name = "8026_l1";
parent-supply = <&pm8026_s3>;
qcom,hpm-min-load = <10000>;
regulator-min-microvolt = <1225000>;
regulator-max-microvolt = <1225000>;
};
pm8026_l20: regulator-l20 {
compatible = "qcom,stub-regulator";
regulator-name = "8026_l20";
qcom,hpm-min-load = <5000>;
regulator-min-microvolt = <3075000>;
regulator-max-microvolt = <3075000>;
};
};

View File

@ -0,0 +1,68 @@
TWL family of regulators
Required properties:
For twl6030 regulators/LDOs
- compatible:
- "ti,twl6030-vaux1" for VAUX1 LDO
- "ti,twl6030-vaux2" for VAUX2 LDO
- "ti,twl6030-vaux3" for VAUX3 LDO
- "ti,twl6030-vmmc" for VMMC LDO
- "ti,twl6030-vpp" for VPP LDO
- "ti,twl6030-vusim" for VUSIM LDO
- "ti,twl6030-vana" for VANA LDO
- "ti,twl6030-vcxio" for VCXIO LDO
- "ti,twl6030-vdac" for VDAC LDO
- "ti,twl6030-vusb" for VUSB LDO
- "ti,twl6030-v1v8" for V1V8 LDO
- "ti,twl6030-v2v1" for V2V1 LDO
- "ti,twl6030-clk32kg" for CLK32KG RESOURCE
- "ti,twl6030-vdd1" for VDD1 SMPS
- "ti,twl6030-vdd2" for VDD2 SMPS
- "ti,twl6030-vdd3" for VDD3 SMPS
For twl6025 regulators/LDOs
- compatible:
- "ti,twl6025-ldo1" for LDO1 LDO
- "ti,twl6025-ldo2" for LDO2 LDO
- "ti,twl6025-ldo3" for LDO3 LDO
- "ti,twl6025-ldo4" for LDO4 LDO
- "ti,twl6025-ldo5" for LDO5 LDO
- "ti,twl6025-ldo6" for LDO6 LDO
- "ti,twl6025-ldo7" for LDO7 LDO
- "ti,twl6025-ldoln" for LDOLN LDO
- "ti,twl6025-ldousb" for LDOUSB LDO
- "ti,twl6025-smps3" for SMPS3 SMPS
- "ti,twl6025-smps4" for SMPS4 SMPS
- "ti,twl6025-vio" for VIO SMPS
For twl4030 regulators/LDOs
- compatible:
- "ti,twl4030-vaux1" for VAUX1 LDO
- "ti,twl4030-vaux2" for VAUX2 LDO
- "ti,twl5030-vaux2" for VAUX2 LDO
- "ti,twl4030-vaux3" for VAUX3 LDO
- "ti,twl4030-vaux4" for VAUX4 LDO
- "ti,twl4030-vmmc1" for VMMC1 LDO
- "ti,twl4030-vmmc2" for VMMC2 LDO
- "ti,twl4030-vpll1" for VPLL1 LDO
- "ti,twl4030-vpll2" for VPLL2 LDO
- "ti,twl4030-vsim" for VSIM LDO
- "ti,twl4030-vdac" for VDAC LDO
- "ti,twl4030-vintana2" for VINTANA2 LDO
- "ti,twl4030-vio" for VIO LDO
- "ti,twl4030-vdd1" for VDD1 SMPS
- "ti,twl4030-vdd2" for VDD2 SMPS
- "ti,twl4030-vintana1" for VINTANA1 LDO
- "ti,twl4030-vintdig" for VINTDIG LDO
- "ti,twl4030-vusb1v5" for VUSB1V5 LDO
- "ti,twl4030-vusb1v8" for VUSB1V8 LDO
- "ti,twl4030-vusb3v1" for VUSB3V1 LDO
Optional properties:
- Any optional property defined in bindings/regulator/regulator.txt
Example:
xyz: regulator@0 {
compatible = "ti,twl6030-vaux1";
regulator-min-microvolt = <1000000>;
regulator-max-microvolt = <3000000>;
};