diff options
author | Christian Marangi <ansuelsmth@gmail.com> | 2024-06-26 18:00:08 +0200 |
---|---|---|
committer | Lee Jones <lee@kernel.org> | 2024-06-26 17:08:30 +0100 |
commit | a9b202b9cf0e817be756a720920ad4b522e6f6aa (patch) | |
tree | 89079933911e4ebf305a4a4fa74744a46a6f5c7d /scripts/syscalltbl.sh | |
parent | a6ca48430de6e87644203bdca03f4065f5b9df7a (diff) | |
download | lwn-a9b202b9cf0e817be756a720920ad4b522e6f6aa.tar.gz lwn-a9b202b9cf0e817be756a720920ad4b522e6f6aa.zip |
leds: leds-lp55xx: Generalize stop_all_engine OP
In all the lp55xx based driver, we have a similar implementation of the
stop_all_engine function with the only difference of the required sleep
for the OP MODE change.
The main difference is legacy LEDs require a min of 152 us while new one
use a generic 1-2ms. The new one use a 1-2ms sleep as suggested in the
datasheet IN ALTERNATIVE to a much more robust approach by using the
newly introduced ENGINE_BUSY bit in the STATUS reg.
To better handle sleep after OP MODE change, add support for polling the
ENGINE_BUSY bit and use the legacy sleep for old LEDs.
With this change, stop_all_engine can be generalized and moved to
lp55xx-common.
To make more clear the double usage of lp55xx_reg, define a union for
additional scope of mask and shift.
Update all lp55xx based driver to use the new generalized function and
define the required bits in the device_config struct.
Suggested-by: Lee Jones <lee@kernel.org>
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Link: https://lore.kernel.org/r/20240626160027.19703-4-ansuelsmth@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
Diffstat (limited to 'scripts/syscalltbl.sh')
0 files changed, 0 insertions, 0 deletions