mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-12 07:37:31 -04:00
Merge "dt-bindings: qti-tri-led: Add bindings"
This commit is contained in:
commit
3320538105
2 changed files with 325 additions and 0 deletions
72
bindings/leds/leds-qti-tri-led.txt
Normal file
72
bindings/leds/leds-qti-tri-led.txt
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
Qualcomm Technologies, Inc. TRI_LED driver specific bindings
|
||||
|
||||
This binding document describes the properties of TRI_LED module in
|
||||
Qualcomm Technologies, Inc. PMIC chips.
|
||||
|
||||
- compatible:
|
||||
Usage: required
|
||||
Value type: <string>
|
||||
Definition: Must be "qcom,tri-led".
|
||||
|
||||
- reg:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: Register base of the TRI_LED module and length.
|
||||
|
||||
- nvmem-names:
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: Nvmem device name for SDAM to do PBS trigger. It must be
|
||||
defined as "pbs_sdam". This is required only for HR_LEDs.
|
||||
|
||||
- nvmem:
|
||||
Usage: optional
|
||||
Value type: <phandle>
|
||||
Definition: Phandle of the nvmem device name to access SDAM to do PBS
|
||||
trigger. This is required only for HR_LEDs.
|
||||
|
||||
Properties for child nodes:
|
||||
- pwms:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: The PWM device (phandle) used for controlling LED.
|
||||
|
||||
- led-sources:
|
||||
Usage: required
|
||||
Value type: <prop-encoded-array>
|
||||
Definition: see Documentation/devicetree/bindings/leds/common.txt;
|
||||
Device current output identifiers are: 0 - LED1_EN,
|
||||
1 - LED2_EN, 2 - LED3_EN.
|
||||
|
||||
- label:
|
||||
Usage: optional
|
||||
Value type: <string>
|
||||
Definition: see Documentation/devicetree/bindings/leds/common.txt;
|
||||
|
||||
- linux,default-trigger:
|
||||
Usage: optional
|
||||
Value_type: <string>
|
||||
Definition: see Documentation/devicetree/bindings/leds/common.txt;
|
||||
|
||||
Example:
|
||||
|
||||
pmi8998_rgb: tri-led@d000{
|
||||
compatible = "qcom,tri-led";
|
||||
reg = <0xd000 0x100>;
|
||||
|
||||
red {
|
||||
label = "red";
|
||||
pwms = <&pmi8998_lpg 4 1000000>;
|
||||
led-sources = <0>;
|
||||
};
|
||||
green {
|
||||
label = "green";
|
||||
pwms = <&pmi8998_lpg 3 1000000>;
|
||||
led-sources = <1>;
|
||||
};
|
||||
blue {
|
||||
label = "blue";
|
||||
pwms = <&pmi8998_lpg 2 1000000>;
|
||||
led-sources = <2>;
|
||||
};
|
||||
};
|
||||
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