159 lines
5.9 KiB
Plaintext
159 lines
5.9 KiB
Plaintext
|
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>;
|
||
|
};
|
||
|
};
|
||
|
};
|