135 lines
6.5 KiB
Plaintext
135 lines
6.5 KiB
Plaintext
Qualcomm Technologies QPNP WLED
|
|
|
|
QPNP (Qualcomm Technologies Plug N Play) WLED (White Light
|
|
Emitting Diode) driver is used for controlling display
|
|
backlight that is part of PMIC on Qualcomm Technologies
|
|
reference platforms. The PMIC is connected to the host
|
|
processor via SPMI bus.
|
|
|
|
Required properties:
|
|
- compatible : should be "qcom,qpnp-wled"
|
|
- reg : base address and size for wled modules
|
|
- reg-names : names associated with base addresses. It
|
|
should be "qpnp-wled-ctrl-base", "qpnp-wled-sink-base",
|
|
"qpnp-wled-ibb-base", "qpnp-wled-lab-base".
|
|
- qcom,pmic-revid : phandle of PMIC revid module. This is used to
|
|
identify the PMIC subtype.
|
|
|
|
Optional properties for WLED:
|
|
- interrupts : Specifies the interrupts associated with WLED. The available
|
|
interrupts are over voltage protection(ovp) and short circuit(sc).
|
|
The values for ovp and sc are <0x3 0xd8 0x1> and <0x3 0xd8 0x2>.
|
|
- interrupt-names : Specify the interrupt names associated with interrupts. Must be
|
|
one of "ovp-irq" or "sc-irq"
|
|
- linux,name : name of the wled. default is "wled".
|
|
- linux,default-trigger : trigger for the backlight. default is NONE.
|
|
- qcom,fdbk-output : string feedback current output for wled module. The accepted values
|
|
are "wled1", "wled2", "wled3", "wled4" and "auto". default is "auto".
|
|
- qcom,vref-uv : maximum reference voltage in uV.
|
|
For pmi8994/8952/8996, supported values are from 300000 to 675000
|
|
with a step size of 25000, the default value is 350000.
|
|
For pmi8998/pm660l, supported values are from 60000 to 397500
|
|
with a step size of 22500, the default value is 127500.
|
|
- qcom,switch-freq-khz : switch frequency in khz. default is 800.
|
|
- qcom,ovp-mv : Over voltage protection threshold in mV. Default is
|
|
29500. Supported values are:
|
|
- 31000, 29500, 19400, 17800 for pmi8994/8952/8996.
|
|
- 31100, 29600, 19600, 18100 for pmi8998/pm660l.
|
|
Should only be used if qcom,disp-type-amoled is not
|
|
specified.
|
|
- qcom,ilim-ma : Current limit threshold in mA.
|
|
For pmi8994/8952/8996, default value for LCD is 980mA
|
|
and AMOLED is 385mA.
|
|
Supported values are:
|
|
- 105, 385, 660, 980, 1150, 1420, 1700, 1980.
|
|
For pmi8998/pm660l, default value for LCD is
|
|
970mA and AMOLED is 620mA.
|
|
Supported values are:
|
|
- 105, 280, 450, 620, 970, 1150, 1300, 1500.
|
|
- qcom,boost-duty-ns : maximum boost duty cycle in ns. default is 104.
|
|
- qcom,mod-freq-khz : modulation frequency in khz. default is 9600.
|
|
- qcom,dim-mode : dimming mode. supporting dimming modes are "analog",
|
|
"digital", and "hybrid". default is "hybrid".
|
|
- qcom,hyb-thres : threshold value when used in hybrid mode. It represents the
|
|
percentage of brightntess at which dimming mode is switched
|
|
from "digital" to "analog". the default value is 6.25%. as the
|
|
floating point cannot be represented directly, the value is
|
|
multiplied by 100. so the default is 625.
|
|
- qcom,sync-dly-us : delay for current sync in us. default is 400.
|
|
- qcom,fs-curr-ua : maximum full scale current in ua. default is 25000.
|
|
- qcom,en-9b-dim-res : boolean, specify if 9-bit dim resultion is needed. otherwise 12-bit is used.
|
|
- qcom,en-phase-stag : boolean, specify if phase staggering is needed.
|
|
- qcom,en-cabc : boolean, specify if cabc (content adaptive backlight control) is needed.
|
|
- qcom,disp-type-amoled : specify if the display is amoled
|
|
- qcom,led-strings-list : Wled module has four strings of leds numbered from 0 to 3. each string of leds
|
|
are operated individually. specify the list of strings used by the device.
|
|
any combination of led strings can be used. default value is [00 01 02 03]
|
|
- qcom,en-ext-pfet-sc-pro : Specify if external pfet short circuit protection is needed
|
|
- qcom,cons-sync-write-delay-us : Specify in 'us' the duration of delay between two consecutive writes to
|
|
SYNC register.
|
|
- qcom,sc-debounce-cycles : debounce time for short circuit detection
|
|
- qcom,loop-ea-gm : control the gm for gm stage in control loop. default is 3.
|
|
- qcom,loop-auto-gm-en : A boolean property to specify if auto gm is enabled.
|
|
- qcom,loop-auto-gm-thresh : Specify auto gm threshold if "loop-auto-gm-en" is defined.
|
|
Supported values are: 0 - 3.
|
|
- qcom,lcd-auto-pfm-thresh : Specify the auto-pfm threshold, if the headroom voltage level
|
|
falls below this threshold and auto PFM is enabled, boost
|
|
controller will enter into PFM mode automatically.
|
|
- qcom,lcd-psm-ctrl : A boolean property to specify if PSM needs to be
|
|
controlled dynamically when WLED module is enabled
|
|
or disabled.
|
|
- qcom,auto-calibration-enable : A boolean property which enables auto-calibration
|
|
of the WLED sink configuration.
|
|
- qcom,wled-brightness-map : Array of brightness map codes of size 256.
|
|
These codes will be mapped to the brightness
|
|
level requested in the scale of 0-4095. Code
|
|
entry is of 16 bit size.
|
|
- qcom,wled-stepper-en : A boolean property to specify if stepper algorithm
|
|
needs to be enabled. This needs the brightness map
|
|
table to be specified.
|
|
|
|
Optional properties if 'qcom,disp-type-amoled' is mentioned in DT:
|
|
- qcom,loop-comp-res-kohm : control to select the compensation resistor in kohm. default is 320.
|
|
- qcom,vref-psm-mv : reference psm voltage in mv. default for amoled is 450.
|
|
- qcom,avdd-mode-spmi: Boolean property to enable AMOLED_VOUT programming via SPMI. If not specified,
|
|
AMOLED_VOUT is programmed via S-wire. This can be specified only for newer
|
|
PMICs like pmi8998/pm660l.
|
|
- qcom,avdd-target-voltage-mv: The voltage required for AMOLED_VOUT. Accepted values are in the range
|
|
of 5650 to 7900 in steps of 150. Default value is 7600. Unit is in mV.
|
|
For old revisions, accepted values are: 7900, 7600, 7300, 6400, 6100,
|
|
5800.
|
|
|
|
Example:
|
|
qcom,leds@d800 {
|
|
compatible = "qcom,qpnp-wled";
|
|
reg = <0xd800 0x100>,
|
|
<0xd900 0x100>,
|
|
<0xdc00 0x100>,
|
|
<0xde00 0x100>;
|
|
reg-names = "qpnp-wled-ctrl-base",
|
|
"qpnp-wled-sink-base",
|
|
"qpnp-wled-ibb-base",
|
|
"qpnp-wled-lab-base";
|
|
interrupts = <0x3 0xd8 0x2>;
|
|
interrupt-names = "sc-irq";
|
|
status = "okay";
|
|
linux,name = "wled";
|
|
linux,default-trigger = "bkl-trigger";
|
|
qcom,fdbk-output = "auto";
|
|
qcom,vref-uv = <350000>;
|
|
qcom,switch-freq-khz = <800>;
|
|
qcom,ovp-mv = <29500>;
|
|
qcom,ilim-ma = <980>;
|
|
qcom,boost-duty-ns = <26>;
|
|
qcom,mod-freq-khz = <9600>;
|
|
qcom,dim-mode = "hybrid";
|
|
qcom,dim-method = "linear";
|
|
qcom,hyb-thres = <625>;
|
|
qcom,sync-dly-us = <800>;
|
|
qcom,fs-curr-ua = <16000>;
|
|
qcom,en-phase-stag;
|
|
qcom,led-strings-list = [00 01 02 03];
|
|
qcom,en-ext-pfet-sc-pro;
|
|
qcom,wled-brightness-map = /bits/ 16 <0 . . 4095>;
|
|
};
|