98 lines
4.0 KiB
Plaintext
98 lines
4.0 KiB
Plaintext
|
QPNP Haptic
|
||
|
|
||
|
QPNP (Qualcomm Technologies Plug N Play) Haptic is a peripheral on
|
||
|
Qualcomm Technologies PMICs. The PMIC is connected to Host processor
|
||
|
via SPMI bus.
|
||
|
|
||
|
This device can be operated in four modes - direct, buffer,
|
||
|
pwm(pulse width modulation) and audio.
|
||
|
|
||
|
Required Properties:
|
||
|
- compatible: must be "qcom,qpnp-haptic"
|
||
|
- reg: address of device
|
||
|
- qcom,actuator-type: must be one of "erm" or "lra"
|
||
|
- qcom,play-mode : must be one of "buffer", "direct", "pwm" or "audio"
|
||
|
|
||
|
Optional Properties:
|
||
|
- qcom,timeout-ms: timeout in ms.
|
||
|
- qcom,vmax-mv : maximum output voltage in milli volts
|
||
|
- qcom,ilim-ma : maximum output current limit threshold in milli amps
|
||
|
- qcom,int-pwm-freq-khz : frequency for internal pwm
|
||
|
- qcom,en-brake : specify to enable internal reverse braking
|
||
|
- qcom,brake-pattern : 4 byte active brake pattern. Each pattern represents
|
||
|
2-bit amplitude control 0x00: 0, 0x01: vmax/4, 0x02: vmax/2,
|
||
|
0x03: vmax. Default values are 0x00.
|
||
|
- qcom,sc-deb-cycles : short circuit debounce in internal pwm switching clock cycles
|
||
|
- qcom,use-play-irq : boolean, use this if the device uses irq for play
|
||
|
- qcom,use-sc-irq : boolean, use this if the device uses irq for play
|
||
|
- interrupts: Specifies the interrupt associated with Haptics. The available
|
||
|
interrupts are play and short circuit. The values for play and
|
||
|
short circuit are <0x3 0xc0 0x0> and <0x3 0xc0 0x1>.
|
||
|
- interrupt-names: Specify the interrupt names associated with interrupts. Must be
|
||
|
one of "play-irq" or "sc-irq"
|
||
|
- vcc_pon-supply: power-on driver regulator
|
||
|
|
||
|
Optional properties for buffer play mode:
|
||
|
- qcom,wave-samples : 8 byte buffer representing the wave. The bits in each sample
|
||
|
are represented as follows- bit 0: reserved, bits 1 to 5: amplitude
|
||
|
of the waveform, bit 6: over drive and bit 7: direction.
|
||
|
- qcom,wave-shape : must be "sine" or "square"
|
||
|
- qcom,wave-rep-cnt : repetition count for wave form
|
||
|
- qcom,wave-samp-rep-cnt : repetition count for each sample of wave
|
||
|
- qcom,wave-play-rate-us : duration at which each sample to be played in micro seconds
|
||
|
|
||
|
Required properties for pwm play mode:
|
||
|
- qcom,pwm-channel: pwm channel the led will operate on
|
||
|
- qcom,period-us: pwm period in us
|
||
|
- qcom,duty-us: pwm duty cycle in us
|
||
|
- qcom,ext-pwm-dtest-line: dtest line to used with pwm
|
||
|
|
||
|
Optional properties for pwm play mode:
|
||
|
- qcom,ext-pwm-freq-khz : frequency for external pwm in kilo HZ
|
||
|
|
||
|
Optional properties when qcom,actuator-type is "lra"
|
||
|
- qcom,correct-lra-drive-freq : boolean, use this to ensure LRA is driven at correct resonant
|
||
|
frequency, which may change due to operating conditions.
|
||
|
- qcom,misc-trim-error-rc19p2-clk-reg-present : boolean, use this if TRIM_ERROR_RC19P2_CLK
|
||
|
register is present in MISC module. This register holds
|
||
|
the frequency error in 19.2Mhz RC clock.
|
||
|
- qcom,lra-auto-res-mode : auto resonance technique, four different modes
|
||
|
"none" : no auto resonance
|
||
|
"zxd" : zero crossing based discontinuous method
|
||
|
"qwd" : quarter wave drive method
|
||
|
"max-qwd" : Maximum QWD
|
||
|
"zxd-eop" : ZXD + End of pattern (This is the Default)
|
||
|
- qcom,lra-high-z : High Z configuration for auto resonance. Possible string values are
|
||
|
"none", "opt1", "opt2" and "opt3" (default)
|
||
|
- qcom,lra-res-cal-period : Auto resonance calibration period. The values range from
|
||
|
4 to 32(default)
|
||
|
|
||
|
Example:
|
||
|
qcom,haptic@c000 {
|
||
|
status = "disabled";
|
||
|
compatible = "qcom,qpnp-haptic";
|
||
|
reg = <0xc000 0x100>;
|
||
|
interrupts = <0x3 0xc0 0x0>,
|
||
|
<0x3 0xc0 0x1>;
|
||
|
interrupt-names = "sc-irq", "play-irq";
|
||
|
vcc_pon-supply = <&pon_perph_reg>;
|
||
|
qcom,play-mode = "direct";
|
||
|
qcom,wave-play-rate-us = <5263>;
|
||
|
qcom,actuator-type = "lra";
|
||
|
qcom,wave-shape = "square";
|
||
|
qcom,vmax-mv = <2000>;
|
||
|
qcom,ilim-ma = <800>;
|
||
|
qcom,sc-deb-cycles = <8>;
|
||
|
qcom,int-pwm-freq-khz = <505>;
|
||
|
qcom,en-brake;
|
||
|
qcom,brake-pattern = [03 03 00 00];
|
||
|
qcom,use-play-irq;
|
||
|
qcom,use-sc-irq;
|
||
|
qcom,wave-samples = [3e 3e 3e 3e 3e 3e 3e 3e];
|
||
|
qcom,wave-rep-cnt = <1>;
|
||
|
qcom,wave-samp-rep-cnt = <1>;
|
||
|
qcom,lra-high-z = "opt1";
|
||
|
qcom,lra-auto-res-mode = "qwd";
|
||
|
qcom,lra-res-cal-period = <4>;
|
||
|
};
|