leds: flash: Add driver to support flash LED module in QCOM PMICs

Add initial driver to support flash LED module found in Qualcomm
Technologies, Inc. PMICs. The flash module can have 3 or 4 channels
and each channel can be controlled indepedently and support full scale
current up to 1.5 A. It also supports connecting two channels together
to supply one LED component with full scale current up to 2 A. In that
case, the current will be split on each channel symmetrically and the
channels will be enabled and disabled at the same time.

Signed-off-by: Fenglin Wu <quic_fenglinw@quicinc.com>
Tested-by: Luca Weiss <luca.weiss@fairphone.com> # sm7225-fairphone-fp4 + pm6150l
Signed-off-by: Lee Jones <lee@kernel.org>
Link: https://lore.kernel.org/r/20230303095023.538917-2-quic_fenglinw@quicinc.com
This commit is contained in:
Fenglin Wu
2023-03-03 17:50:22 +08:00
committed by Lee Jones
parent 8f0adae1cb
commit 96a2e242a5
3 changed files with 789 additions and 0 deletions

View File

@@ -61,6 +61,21 @@ config LEDS_MT6360
Independent current sources supply for each flash LED support torch
and strobe mode.
config LEDS_QCOM_FLASH
tristate "LED support for flash module inside Qualcomm Technologies, Inc. PMIC"
depends on MFD_SPMI_PMIC || COMPILE_TEST
depends on LEDS_CLASS && OF
depends on V4L2_FLASH_LED_CLASS || !V4L2_FLASH_LED_CLASS
select REGMAP
help
This option enables support for the flash module found in Qualcomm
Technologies, Inc. PMICs. The flash module can have 3 or 4 flash LED
channels and each channel is programmable to support up to 1.5 A full
scale current. It also supports connecting two channels' output together
to supply one LED component to achieve current up to 2 A. In such case,
the total LED current will be split symmetrically on each channel and
they will be enabled/disabled at the same time.
config LEDS_RT4505
tristate "LED support for RT4505 flashlight controller"
depends on I2C && OF

View File

@@ -6,6 +6,7 @@ obj-$(CONFIG_LEDS_AS3645A) += leds-as3645a.o
obj-$(CONFIG_LEDS_KTD2692) += leds-ktd2692.o
obj-$(CONFIG_LEDS_LM3601X) += leds-lm3601x.o
obj-$(CONFIG_LEDS_MAX77693) += leds-max77693.o
obj-$(CONFIG_LEDS_QCOM_FLASH) += leds-qcom-flash.o
obj-$(CONFIG_LEDS_RT4505) += leds-rt4505.o
obj-$(CONFIG_LEDS_RT8515) += leds-rt8515.o
obj-$(CONFIG_LEDS_SGM3140) += leds-sgm3140.o

File diff suppressed because it is too large Load Diff