mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 00:24:41 -04:00
dt-bindings: pwm-qti-lpg: Add bindings
Add snapshot of the devicetree bindings for the pwm-qti-lpg driver as of
msm-4.19 'commit 00392c21d13b ("Merge "ARM: dts: msm: add VRR
resolutions for qsync panel on lito"")'.
Change-Id: I320051bd6a36879f38dffff7d835a28e3f43aa67
This commit is contained in:
parent
23d68b589a
commit
b038982eec
1 changed files with 253 additions and 0 deletions
253
bindings/pwm/pwm-qti-lpg.txt
Normal file
253
bindings/pwm/pwm-qti-lpg.txt
Normal file
|
|
@ -0,0 +1,253 @@
|
|||
Qualcomm Technologies, Inc. LPG driver specific bindings
|
||||
|
||||
This binding document describes the properties of LPG (Light Pulse Generator)
|
||||
device module in Qualcomm Technologies, Inc. PMIC chips.
|
||||
|
||||
- compatible:
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Must be "qcom,pwm-lpg".
|
||||
|
||||
- reg:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: Register base for LPG and LUT modules.
|
||||
|
||||
- reg-names:
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: The name of the register defined in the reg property.
|
||||
It must have "lpg-base", "lut-base" is optional but
|
||||
it's required if any LPG channels support LUT mode
|
||||
with a LUT module.
|
||||
|
||||
- #pwm-cells:
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: The number of cells in "pwms" property specified in
|
||||
PWM user nodes. It should be 2. The first cell is
|
||||
the PWM channel ID indexed from 0, and the second
|
||||
cell is the PWM default period in nanoseconds.
|
||||
|
||||
- qcom,num-lpg-channels:
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: The number of the consecutive LPG/PWM channels in the chip.
|
||||
|
||||
- nvmem-names:
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: The nvmem device name for the SDAM module where the LUT
|
||||
pattern is stored. It must be "ppg_sdam". This property
|
||||
is required only when LUT mode is supported with a SDAM
|
||||
module instead of a LUT module.
|
||||
|
||||
- nvmem:
|
||||
Usage: optional
|
||||
Value type: <phandle>
|
||||
Definition: Phandle of the nvmem device to access the LUT stored
|
||||
in the SDAM module. This property is required only when
|
||||
LUT mode is supported and the LUT pattern is stored in a
|
||||
SDAM module instead of a LUT module.
|
||||
|
||||
- qcom,pbs-client
|
||||
Usage: optional
|
||||
Value type: <phandle>
|
||||
Definition: Phandle of the PBS client used for sending the PBS
|
||||
trigger. This property is required when LUT mode is
|
||||
supported and the LUT pattern is stored in a SDAM
|
||||
module instead of a LUT module.
|
||||
|
||||
- qcom,lut-sdam-base:
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: The register base of the LUT entries stored in SDAM. This
|
||||
property is required only when LUT mode is supported and
|
||||
the LUT pattern is stored in a SDAM module instead of a
|
||||
LUT module.
|
||||
|
||||
- qcom,lut-patterns:
|
||||
Usage: optional
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: Duty ratios in percentages for LPG working at LUT mode.
|
||||
These duty ratios will be translated into PWM values
|
||||
and stored in LUT or SDAM module shared for all LPG
|
||||
channels. The LUT module has resource to store 47 PWM
|
||||
values at max while SDAM module can store upto 64 PWM
|
||||
values. This property is required if any LPG channels
|
||||
support LUT mode.
|
||||
|
||||
- qcom,sync-channel-ids:
|
||||
Usage: optional
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: The hardware IDs of the LPG channel that required be
|
||||
grouped together. These channels will share the same LUT
|
||||
ramping configuration so that they will be enabled with a
|
||||
synchronized pattern. If the LUT ramping configuration
|
||||
differs for the channels grouped for synchronization,
|
||||
configuration of the first channel will be applied for
|
||||
all others.
|
||||
|
||||
Subnode is optional if LUT mode is not required, it's required if any LPG
|
||||
channels expected to be supported in LUT mode.
|
||||
|
||||
Subnode properties:
|
||||
Subnodes for each LPG channel (lpg@X) can be defined if any of the following
|
||||
parameters needs to be configured for that channel.
|
||||
|
||||
- qcom,lpg-chan-id:
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: The LPG channel's hardware ID indexed from 1. Allowed
|
||||
range is 1 - 8. Maximum value depends on the number of
|
||||
channels supported on PMIC.
|
||||
|
||||
- qcom,lpg-sdam-base:
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: Register base address for LPG configuration in SDAM for
|
||||
the LPG channel specified under "qcom,lpg-chan-id".
|
||||
This property is required if LUT mode is supported with
|
||||
a SDAM module.
|
||||
|
||||
- qcom,ramp-step-ms:
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: The step duration in milliseconds for LPG staying at each
|
||||
duty specified in the LUT pattern. Allowed range:
|
||||
1 - 511 when LUT module is used, and 8 - 2000 when SDAM
|
||||
is used.
|
||||
|
||||
- qcom,ramp-high-index:
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: The high index of the LUT pattern where LPG ends up
|
||||
ramping to. Allowed range: 1 - 47 when LUT module
|
||||
is used, and 1 - 64 when SDAM module is used.
|
||||
|
||||
- qcom,ramp-low-index:
|
||||
Usage: required
|
||||
Value type: <u32>
|
||||
Definition: The low index of the LUT pattern from where LPG begins
|
||||
ramping from. The ramp-low-index should be always less
|
||||
than ramp-high-index when SDAM module is used. Allowed
|
||||
range: 0 - 46 when LUT module is used, and 0 - 63 when
|
||||
SDAM module is used.
|
||||
|
||||
- qcom,ramp-pattern-repeat:
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: The flag to specify if LPG would be ramping with the LUT
|
||||
pattern repeatedly.
|
||||
|
||||
- qcom,ramp-from-low-to-high:
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: The flag to specify the LPG ramping direction. The ramping
|
||||
direction is from low index to high index of the LUT
|
||||
pattern if it's specified. This property is not required
|
||||
when SDAM module is used.
|
||||
|
||||
- qcom,ramp-toggle:
|
||||
Usage: optional
|
||||
Value type: <empty>
|
||||
Definition: The flag to specify if LPG would toggle the LUT pattern
|
||||
in ramping. If toggling enabled, LPG would return to the
|
||||
low index when high index is reached, or return to the high
|
||||
index when low index is reached. This property is not
|
||||
required when SDAM module is used.
|
||||
|
||||
- qcom,ramp-pause-hi-count:
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: The step count that LPG stop the output when it ramped up
|
||||
to the high index of the LUT. This property is not
|
||||
required when SDAM module is used.
|
||||
|
||||
- qcom,ramp-pause-lo-count:
|
||||
Usage: optional
|
||||
Value type: <u32>
|
||||
Definition: The step count that LPG stop the output when it ramped up
|
||||
to the low index of the LUT. This property is not
|
||||
required when SDAM module is used.
|
||||
|
||||
Example when LUT pattern is stored in a LUT module:
|
||||
|
||||
pm8150l_lpg: lpg@b100 {
|
||||
compatible = "qcom,pwm-lpg";
|
||||
reg = <0xb100 0x600>, <0xb000 0x100>;
|
||||
reg-names = "lpg-base", "lut-base";
|
||||
qcom,num-lpg-channels = <6>;
|
||||
#pwm-cells = <2>;
|
||||
qcom,lut-patterns = <0 14 28 42 56 70 84 100
|
||||
100 84 70 56 42 28 14 0>;
|
||||
lpg@1 {
|
||||
qcom,lpg-chan-id = <1>;
|
||||
qcom,ramp-step-ms = <200>;
|
||||
qcom,ramp-pause-hi-count = <10>;
|
||||
qcom,ramp-pause-lo-count = <10>;
|
||||
qcom,ramp-low-index = <0>;
|
||||
qcom,ramp-high-index = <15>;
|
||||
qcom,ramp-from-low-to-high;
|
||||
qcom,ramp-pattern-repeat;
|
||||
};
|
||||
lpg@2 {
|
||||
qcom,lpg-chan-id = <2>;
|
||||
qcom,ramp-step-ms = <200>;
|
||||
qcom,ramp-pause-hi-count = <10>;
|
||||
qcom,ramp-pause-lo-count = <10>;
|
||||
qcom,ramp-low-index = <0>;
|
||||
qcom,ramp-high-index = <15>;
|
||||
qcom,ramp-from-low-to-high;
|
||||
qcom,ramp-pattern-repeat;
|
||||
};
|
||||
lpg@3 {
|
||||
qcom,lpg-chan-id = <3>;
|
||||
qcom,ramp-step-ms = <200>;
|
||||
qcom,ramp-pause-hi-count = <10>;
|
||||
qcom,ramp-pause-lo-count = <10>;
|
||||
qcom,ramp-low-index = <0>;
|
||||
qcom,ramp-high-index = <15>;
|
||||
qcom,ramp-from-low-to-high;
|
||||
qcom,ramp-pattern-repeat;
|
||||
};
|
||||
};
|
||||
|
||||
Example when LUT pattern is stored in a SDAM module:
|
||||
|
||||
pmi632_lpg: lpg@b100 {
|
||||
compatible = "qcom,pwm-lpg";
|
||||
reg = <0xb100 0x600>;
|
||||
reg-names = "lpg-base";
|
||||
#pwm-cells = <2>;
|
||||
nvmem-names = "ppg_sdam";
|
||||
nvmem = <&sdam7>;
|
||||
qcom,pbs-client = <&pbs_client_3>;
|
||||
qcom,lut-sdam-base = <0x80>;
|
||||
qcom,lut-patterns = <0 14 28 42 56 70 84 100
|
||||
100 84 70 56 42 28 14 0>;
|
||||
lpg@1 {
|
||||
qcom,lpg-chan-id = <1>;
|
||||
qcom,ramp-step-ms = <200>;
|
||||
qcom,ramp-low-index = <0>;
|
||||
qcom,ramp-high-index = <15>;
|
||||
qcom,ramp-pattern-repeat;
|
||||
qcom,lpg-sdam-base = <0x48>:
|
||||
};
|
||||
lpg@2 {
|
||||
qcom,lpg-chan-id = <2>;
|
||||
qcom,ramp-step-ms = <200>;
|
||||
qcom,ramp-low-index = <0>;
|
||||
qcom,ramp-high-index = <15>;
|
||||
qcom,ramp-pattern-repeat;
|
||||
qcom,lpg-sdam-base = <0x56>;
|
||||
};
|
||||
lpg@3 {
|
||||
qcom,lpg-chan-id = <3>;
|
||||
qcom,ramp-step-ms = <200>;
|
||||
qcom,ramp-low-index = <0>;
|
||||
qcom,ramp-high-index = <15>;
|
||||
qcom,ramp-pattern-repeat;
|
||||
qcom,lpg-sdam-base = <0x64>;
|
||||
};
|
||||
};
|
||||
Loading…
Reference in a new issue