You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
422 lines
18 KiB
422 lines
18 KiB
QTI's LAB (LCD/AMOLED BOOST)/IBB (Inverting Buck-Boost) Regulator
|
|
|
|
LAB can be used as a standalone positive boost power supply for general purpose
|
|
applications. IBB can be used as a standalone negative power supply for general
|
|
applications. Also, LAB and IBB can be used together to provide power supply for
|
|
display panels, LCD or AMOLED.
|
|
|
|
Main node required properties:
|
|
|
|
- compatible: Must be "qcom,qpnp-labibb-regulator"
|
|
- qcom,qpnp-labibb-mode: A string used to specify the working mode of LAB/IBB
|
|
regulators when bootloader does not turned on the
|
|
display panel. Could be "lcd" or "amoled".
|
|
"lcd" means using LAB and IBB regulators are
|
|
configured for LCD mode.
|
|
"amoled" means using LAB and IBB regulators are
|
|
configured for AMOLED mode.
|
|
- qcom,pmic-revid: Specifies the phandle of the PMIC revid module.
|
|
Used to identify the PMIC subtype.
|
|
|
|
Main node optional properties:
|
|
|
|
- qcom,qpnp-labibb-touch-to-wake-en: A boolean property which upon set will
|
|
enable support for touch-to-wake mode
|
|
by configuring the required settings
|
|
in LAB and IBB modules. Make sure the
|
|
hardware has needed support before
|
|
enabling this property.
|
|
- qcom,swire-control: A boolean property which indicates if the LAB/IBB is
|
|
controlled by the SWIRE interface. Enable only
|
|
if qcom,qpnp-labibb-mode = "amoled".
|
|
- qcom,labibb-ttw-force-lab-on: A boolean property which forces LAB to be
|
|
always on during TTW mode.
|
|
- qcom,skip-2nd-swire-cmd: A boolean property which indicates if
|
|
the second SWIRE command needs to be skipped.
|
|
- qcom,swire-2nd-cmd-delay: An integer value which specifes the
|
|
delay in millisecs between the first and second
|
|
SWIRE command. If not specified this value
|
|
defaults to 20ms. This delay is applied only
|
|
if 'qcom,skip-2nd-swire-cmd' is defined.
|
|
- qcom,swire-ibb-ps-enable-delay: An integer value which specifes the delay
|
|
in millisecs to enable IBB pulse-skipping
|
|
after the skip-2nd-swire-cmd workaround is applied.
|
|
If not specified this value default to 200ms.
|
|
This property is applicable only if
|
|
'qcom,skip-2nd-swire-cmd' is specified.
|
|
- qcom,labibb-standalone: A boolean property which forces LAB and
|
|
IBB to operate in standalone mode. If
|
|
this is not specified, then LAB and IBB
|
|
are controlled together in dual mode.
|
|
- parent-supply: Parent supply that is needed for LAB
|
|
and IBB regulators. This will be mostly
|
|
needed when LAB and IBB are operating
|
|
in standalone mode to vote for MBG.
|
|
|
|
Following properties are available only for PM660A:
|
|
|
|
- qcom,pbs-control: A boolean property which indicates if
|
|
the LAB/IBB is controlled by the PBS
|
|
sequencer. If this mode is enabled the
|
|
PBS sequencer does the SWIRE remapping
|
|
and program the voltages based on the
|
|
SWIRE count.
|
|
|
|
LAB subnode required properties:
|
|
|
|
- reg: Specifies the SPMI address and size for this peripheral.
|
|
- reg-names: Register names. Must be "lab".
|
|
- regulator-name: A string used to describe the regulator.
|
|
- regulator-min-microvolt: Minimum voltage in microvolts supported by this regulator.
|
|
- regulator-max-microvolt: Maximum voltage in microvolts supported by this regulator.
|
|
|
|
- qcom,qpnp-lab-min-voltage: The minimum voltage in microvolts LAB regulator can support.
|
|
- qcom,qpnp-lab-step-size: The step size in microvolts of LAB regulator.
|
|
- qcom,qpnp-lab-slew-rate: The time in us taken by the regulator to change
|
|
voltage value in one step.
|
|
|
|
- qcom,qpnp-lab-init-voltage: The default initial voltage when the bootloader
|
|
does not turn on LAB regulator.
|
|
- qcom,qpnp-lab-init-amoled-voltage: The default output voltage when LAB regulator
|
|
is configured in amoled mode.
|
|
- qcom,qpnp-lab-init-lcd-voltage: The default output voltage when LAB regulator
|
|
is configured in lcd mode.
|
|
- qcom,qpnp-lab-ps-threshold: The threshold in mA of Pulse Skip Mode for
|
|
LAB regulator. Supported values for
|
|
PMI8994/6 are 20, 30, 40 and 50.
|
|
Supported values for PMI8998/PM660A are
|
|
50, 60, 70 and 80.
|
|
- interrupts: Specify the interrupts as per the interrupt
|
|
encoding.
|
|
Currently "lab-vreg-ok" is required and "lab-sc_err"
|
|
is optional for LCD mode in pmi8998.
|
|
For AMOLED mode, "lab-vreg-ok" is required
|
|
only when SWIRE control is enabled and skipping
|
|
2nd SWIRE pulse is required in pmi8952/8996.
|
|
- interrupt-names: Interrupt names to match up 1-to-1 with
|
|
the interrupts specified in 'interrupts'
|
|
property.
|
|
|
|
LAB subnode optional properties:
|
|
|
|
- qcom,qpnp-lab-current-sense: If this property is specified, the LAB current
|
|
sense gain will be programmed for LAB regulator.
|
|
Otherwise, LAB current sense gain will be
|
|
default to "1x". A string is used to specify the
|
|
LAB current sense gain. Could be "0.5x" or "1x"
|
|
or "1.5x" or "2x". For e.g. "0.5x" means current
|
|
sense gain is 0.5.
|
|
- qcom,qpnp-lab-ps-enable: A boolean proerty which upon set will enable
|
|
pulse skip mode for LAB regulator. Otherwise,
|
|
it is disabled.
|
|
- qcom,qpnp-lab-full-pull-down: A boolean property which upon set will enable
|
|
the pull down strength of LAB regulator to
|
|
full. Otherwise, the pull down strength is
|
|
configured to half.
|
|
- qcom,qpnp-lab-pull-down-enable: A boolean property which upon set will enable
|
|
the pull down for LAB regulator. Otherwise,
|
|
it is disabled.
|
|
- qcom,qpnp-lab-max-precharge-enable: A boolean property which upon set will
|
|
enable fast precharge. Otherwise, it is
|
|
disabled.
|
|
- qcom,qpnp-lab-ring-suppression-enable: A boolean property which upon set will
|
|
enable ring suppression for LAB
|
|
regulator. Otherwise, it is disabled.
|
|
- qcom,qpnp-lab-limit-max-current-enable: A boolean property which upon set will
|
|
enforce maximum inductor current constraint
|
|
for LAB regulator. Otherwise, there is no
|
|
maximum current constraint.
|
|
- qcom,qpnp-lab-switching-clock-frequency: The PWM switching clock frequency in
|
|
kHz of Lab regulator, Supported values
|
|
are: 3200, 2740, 2400, 2130, 1920,
|
|
1750, 1600, 1480, 1370, 1280, 1200,
|
|
1130, 1070, 1010, 960, 910.
|
|
- qcom,qpnp-lab-limit-maximum-current: The maximum inductor current limit in
|
|
mA of LAB regulator. Supported values
|
|
are 200, 400, 600, 800, 1000, 1200,
|
|
1400 and 1600.
|
|
- qcom,qpnp-lab-pfet-size: PFET size in percentage. Supported values
|
|
are 25, 50, 75 and 100.
|
|
- qcom,qpnp-lab-nfet-size: NFET size in percentage. Supported values
|
|
are 25, 50, 75 and 100.
|
|
- qcom,qpnp-lab-max-precharge-time: Precharge time in uS for LAB regulator.
|
|
Supported values are 200, 300, 400 and 500.
|
|
Suggested values for LCD and AMOLED mode
|
|
are 500 and 300uS respectively.
|
|
- qcom,qpnp-lab-use-default-voltage: A boolean property which upon set will
|
|
use the value specified in
|
|
qcom,qpnp-lab-init-voltage property.
|
|
This will be used only if the bootloader
|
|
doesn't configure the output voltage
|
|
already. If it it not specified, then
|
|
output voltage can be configured to
|
|
any value in the allowed limit.
|
|
- qcom,notify-lab-vreg-ok-sts: A boolean property which upon set will
|
|
poll and notify the lab_vreg_ok status.
|
|
- qcom,qpnp-lab-sc-wait-time-ms: This property is used to specify the time
|
|
(in ms) to poll for the short circuit
|
|
detection. If not specified the default time
|
|
is 5 sec.
|
|
|
|
Following properties are available only for PM660A:
|
|
|
|
- qcom,qpnp-lab-soft-start: The soft start time in us of LAB regulator.
|
|
Supported value are 200, 400, 600 and 800.
|
|
- qcom,qpnp-lab-ldo-pulldown-enable: This property is used to enable/disable
|
|
the LDO pull down.
|
|
1 - enable pulldown
|
|
0 - disable pulldown
|
|
- qcom,qpnp-lab-enable-sw-high-psrr: A boolean property to enable the
|
|
software high psrr
|
|
(Power Suppy Rejection Rate) mode.
|
|
- qcom,qpnp-lab-high-psrr-src-select: This property is used to select the LAB
|
|
HW high psrr source.
|
|
The supported values are:
|
|
0 = Either vph_high or high_psrr enable
|
|
1 = vph_high only
|
|
2 = high_psrr enable only
|
|
3 = Either vph_high or high_psrr enable
|
|
This property is not valid if the
|
|
qcom,qpnp-lab-enable-sw-high-psrr property
|
|
is specified.
|
|
- qcom,qpnp-lab-vref-high-psrr-select: This property is required if the
|
|
qcom,qpnp-lab-high-psrr-src-select is
|
|
specified. The supported values (in mV)
|
|
are 350, 400, 450 and 500. Once the
|
|
rejection rate crosses the selected
|
|
high-psrr voltage the LDO is enabled
|
|
based on the value specified under
|
|
qcom,qpnp-lab-high-psrr-src-select
|
|
property.
|
|
This property is not valid if the
|
|
qcom,qpnp-lab-enable-sw-high-psrr property
|
|
is specified.
|
|
|
|
IBB subnode required properties:
|
|
|
|
- reg: Specifies the SPMI address and size for this peripheral.
|
|
- reg-names: Register names. Must be "ibb".
|
|
- regulator-name: A string used to describe the regulator.
|
|
- regulator-min-microvolt: Minimum voltage in microvolts supported by this regulator.
|
|
- regulator-max-microvolt: Maximum voltage in microvolts supported by this regulator.
|
|
|
|
- qcom,qpnp-ibb-min-voltage: The minimum voltage in microvolts IBB regulator can support.
|
|
- qcom,qpnp-ibb-step-size: The step size in microvolts of IBB regulator.
|
|
- qcom,qpnp-ibb-soft-start: The soft start time in us of IBB regulator.
|
|
|
|
- qcom,qpnp-ibb-init-voltage: The default initial voltage when the bootloader does
|
|
not turn on IBB regulator.
|
|
- qcom,qpnp-ibb-init-amoled-voltage: The default output voltage when IBB regulator
|
|
is configured in amoled mode.
|
|
- qcom,qpnp-ibb-init-lcd-voltage: The default output voltage when IBB regulator
|
|
is configured in lcd mode.
|
|
|
|
IBB subnode optional properties:
|
|
|
|
- interrupts: Specify the interrupts as per the interrupt
|
|
encoding.
|
|
Currently "ibb-sc-err" could be used for LCD mode
|
|
in pmi8998 to detect the short circuit fault.
|
|
- interrupt-names: Interrupt names to match up 1-to-1 with
|
|
the interrupts specified in 'interrupts'
|
|
property.
|
|
|
|
- qcom,qpnp-ibb-discharge-resistor: The discharge resistor in Kilo Ohms which
|
|
controls the soft start time. Supported values
|
|
are 300, 64, 32 and 16.
|
|
|
|
- qcom,qpnp-ibb-slew-rate: The time (in us) taken by the regulator to change
|
|
voltage value in one step. This property is not
|
|
applicable to PM660A.
|
|
The following properties can be used as an
|
|
alternate.
|
|
qcom,qpnp-ibb-slew-rate-config
|
|
qcom,qpnp-ibb-fast-slew-rate
|
|
qcom,qpnp-ibb-slow-slew-rate
|
|
- qcom,qpnp-ibb-ps-enable: A boolean property which upon set will enable
|
|
pulse skip mode for IBB regulator. Otherwise,
|
|
it is disabled.
|
|
- qcom,qpnp-ibb-num-swire-trans: The number of SWIRE transactions
|
|
after which the pulse skipping is
|
|
enabled. This property is required when
|
|
qpnp-ibb-smart-ps-enable property is
|
|
set.
|
|
- qcom,qpnp-ibb-neg-curr-limit: This property must be set when the
|
|
qpnp-ibb-smart-ps-enable is specified.
|
|
The supported values in mA are 1, 2, 3,
|
|
4, 5, 6 and 7. The recommended value is
|
|
- qcom,qpnp-ibb-full-pull-down: A boolean property which upon set will
|
|
enable the pull down strength of IBB
|
|
regulator to full. Otherwise, the pull
|
|
down strength is configured to half.
|
|
- qcom,qpnp-ibb-pull-down-enable: A boolean property which upon set will enable
|
|
the pull down for IBB regulator. Otherwise,
|
|
it is disabled.
|
|
- qcom,qpnp-ibb-lab-pwrup-delay: Power up delay (in us) for IBB regulator when
|
|
it is enabled or turned on. Supported values
|
|
are 1000, 2000, 4000 and 8000.
|
|
- qcom,qpnp-ibb-lab-pwrdn-delay: Power down delay (in us) for IBB regulator
|
|
when it is disabled or turned off. Supported
|
|
values are 1000, 2000, 4000 and 8000.
|
|
- qcom,qpnp-ibb-switching-clock-frequency: The PWM switching clock frequency in
|
|
kHz of IBB regulator. Supported values
|
|
are: 3200, 2740, 2400, 2130, 1920,
|
|
1750, 1600, 1480, 1370, 1280, 1200,
|
|
1130, 1070, 1010, 960, 910.
|
|
- qcom,qpnp-ibb-limit-maximum-current: The maximum inductor current limit in
|
|
mA of IBB regulator. Supported values
|
|
are: 0, 50, 100, 150, 200, 250, 300,
|
|
350, 400, 450, 500, 550, 600, 650, 700,
|
|
750, 800, 850, 900, 950, 1000, 1050,
|
|
1100, 1150, 1200, 1250, 1300, 1350,
|
|
1400, 1450, 1500 and 1550.
|
|
- qcom,qpnp-ibb-debounce-cycle: The debounce cycle of IBB regulator.
|
|
Supported values are 8, 16, 32 and 64.
|
|
- qcom,qpnp-ibb-en-discharge: A boolean property which upon set will
|
|
enable discharge for IBB regulator.
|
|
Otherwise, it is kept disabled.
|
|
- qcom,qpnp-ibb-ring-suppression-enable: A boolean property which upon set will
|
|
enable ring suppression for IBB
|
|
regulator. Otherwise, it is disabled.
|
|
- qcom,qpnp-ibb-limit-max-current-enable: A boolean property which upon set will
|
|
enforce maximum inductor current constraint
|
|
for IBB regulator. Otherwise, there is no
|
|
maximum current constraint.
|
|
- qcom,qpnp-ibb-use-default-voltage: A boolean property which upon set will
|
|
use the value specified in
|
|
qcom,qpnp-ibb-init-voltage property.
|
|
This will be used only if the bootloader
|
|
doesn't configure the output voltage
|
|
already. If it it not specified, then
|
|
output voltage can be configured to
|
|
any value in the allowed limit.
|
|
- qcom,output-voltage-one-pulse: The expected voltage (in mV) of VDISN signal
|
|
on the first SWIRE pulse. This property
|
|
can be specified only if 'qcom,swire-control'
|
|
is defined. The minimum and maximum values
|
|
are 1400mV and 7700mV.
|
|
|
|
Following properties are available only for PM660A:
|
|
|
|
- qcom,qpnp-ibb-smart-ps-enable: A boolean property which upon set
|
|
enables smart pulse skip mode for IBB
|
|
regulator. Otherwise, it is disabled.
|
|
This property is only applicable to
|
|
PM660A.
|
|
- qcom,qpnp-ibb-enable-pfm-mode: A boolean property which enables the IBB to work
|
|
in pfm mode.
|
|
- qcom,qpnp-ibb-pfm-peak-curr: The PFM peak current limit settings in mA.
|
|
Supported values are 150, 200, 250, 300,
|
|
350, 400, 450 and 500. This property is
|
|
required if the qcom,qpnp-ibb-enable-pfm-mode
|
|
is true.
|
|
- qcom,qpnp-ibb-pfm-hysteresis: The PFM hysteresis voltage threshold in mV.
|
|
Supported values are 0, 25 and 50.
|
|
This property is required if the
|
|
qcom,qpnp-ibb-enable-pfm-mode is specified.
|
|
- qcom,qpnp-ibb-overload-blank: A boolean property which upon set enables
|
|
the IBB overload blanking.
|
|
- qcom,qpnp-ibb-overload-debounce: The expected overload debounce time (in ms)
|
|
values are 1, 2, 4 and 8.
|
|
This property is required only when the
|
|
qcom,qpnp-ibb-overload-blank is set.
|
|
- qcom,qpnp-ibb-vreg-ok-debounce: The expected vreg-ok-debounce time (us)
|
|
values are 4, 8, 16 and 32.
|
|
This property is required only when the
|
|
qcom,qpnp-ibb-overload-blank is set.
|
|
- qcom,qpnp-ibb-slew-rate-config: A boolean property to configure the
|
|
ibb fast/slow slew rate.
|
|
Either qcom,qpnp-ibb-fast-slew-rate or
|
|
qcom,qpnp-ibb-slow-slew-rate has to be
|
|
specified. Otherwise the
|
|
qcom,qpnp-ibb-slow-slew-rate takes precedence
|
|
over the qcom,qpnp-ibb-fast-slew-rate.
|
|
- qcom,qpnp-ibb-fast-slew-rate: This property is required if the qcom,
|
|
qpnp-ibb-slew-rate-config property is
|
|
specified. Supported values (in us) are
|
|
100, 200, 500, 1000, 2000, 10000, 12000
|
|
and 15000.
|
|
- qcom,qpnp-ibb-slow-slew-rate: This property is required if the qcom,
|
|
qpnp-ibb-slew-rate-config property is
|
|
specified. Supported values (in us) are
|
|
100, 200, 500, 1000, 2000, 10000, 12000
|
|
and 15000.
|
|
|
|
Example:
|
|
qcom,pmi8994@3 {
|
|
qpnp-labibb-regulator {
|
|
compatible = "qcom,qpnp-labibb-regulator";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
qcom,qpnp-labibb-mode = "lcd";
|
|
qcom,pmic-revid = <&pmi8994_revid>;
|
|
qcom,skip-2nd-swire-cmd;
|
|
|
|
lab_regulator: qcom,lab@de00 {
|
|
reg = <0xde00 0x100>;
|
|
reg-names = "lab";
|
|
|
|
interrupts = <0x3 0xde 0x0
|
|
IRQ_TYPE_EDGE_RISING>;
|
|
interrupt-names = "lab-vreg-ok";
|
|
|
|
regulator-name = "lab_reg";
|
|
regulator-min-microvolt = <4600000>;
|
|
regulator-max-microvolt = <6000000>;
|
|
|
|
qcom,qpnp-lab-min-voltage = <4600000>;
|
|
qcom,qpnp-lab-step-size = <100000>;
|
|
qcom,qpnp-lab-slew-rate = <5000>;
|
|
qcom,qpnp-lab-use-default-voltage;
|
|
qcom,qpnp-lab-init-voltage = <5500000>;
|
|
qcom,qpnp-lab-init-amoled-voltage = <4600000>;
|
|
qcom,qpnp-lab-init-lcd-voltage = <5500000>;
|
|
|
|
qcom,qpnp-lab-soft-start = <400>;
|
|
|
|
qcom,qpnp-lab-full-pull-down;
|
|
qcom,qpnp-lab-pull-down-enable;
|
|
qcom,qpnp-lab-switching-clock-frequency = <1600>;
|
|
qcom,qpnp-lab-limit-maximum-current = <1600>;
|
|
qcom,qpnp-lab-limit-max-current-enable;
|
|
qcom,qpnp-lab-ps-threshold = <40>;
|
|
qcom,qpnp-lab-ps-enable;
|
|
qcom,qpnp-lab-nfet-size = <100>;
|
|
qcom,qpnp-lab-pfet-size = <100>;
|
|
qcom,qpnp-lab-max-precharge-time = <200>;
|
|
};
|
|
|
|
ibb_regulator: qcom,ibb@dc00 {
|
|
reg = <0xdc00 0x100>;
|
|
reg-names = "ibb_reg";
|
|
regulator-name = "ibb_reg";
|
|
|
|
regulator-min-microvolt = <4600000>;
|
|
regulator-max-microvolt = <6000000>;
|
|
|
|
qcom,qpnp-ibb-min-voltage = <1400000>;
|
|
qcom,qpnp-ibb-step-size = <100000>;
|
|
qcom,qpnp-ibb-slew-rate = <2000000>;
|
|
qcom,qpnp-ibb-use-default-voltage;
|
|
qcom,qpnp-ibb-init-voltage = <5500000>;
|
|
qcom,qpnp-ibb-init-amoled-voltage = <4000000>;
|
|
qcom,qpnp-ibb-init-lcd-voltage = <5500000>;
|
|
|
|
qcom,qpnp-ibb-soft-start = <400>;
|
|
|
|
qcom,qpnp-ibb-discharge-resistor = <300>;
|
|
qcom,qpnp-ibb-lab-pwrup-delay = <8000>;
|
|
qcom,qpnp-ibb-lab-pwrdn-delay = <8000>;
|
|
qcom,qpnp-ibb-en-discharge;
|
|
|
|
qcom,qpnp-ibb-full-pull-down;
|
|
qcom,qpnp-ibb-pull-down-enable;
|
|
qcom,qpnp-ibb-switching-clock-frequency = <1480>;
|
|
qcom,qpnp-ibb-limit-maximum-current = <1550>;
|
|
qcom,qpnp-ibb-debounce-cycle = <16>;
|
|
qcom,qpnp-ibb-limit-max-current-enable;
|
|
qcom,qpnp-ibb-ps-enable;
|
|
};
|
|
|
|
};
|
|
};
|
|
|