[PATCH v2 0/4] Add support for QCOM SPMI Flash LEDs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

this patch series adds support for Qualcomm's SPMI Flash LEDs present in the
PM8941 PMIC. It is used as part of MSM8974 based devices, like the Nexus 5
(hammerhead), as a camera flash or as a lantern when in torch mode.

Patch 1 adds the dt-bindings for the driver, together with a header for the
values of some properties.

Patch 2 adds the driver, which was ported from downstream [1], and is now using
the flash LED class framework.

Patch 3 enables the driver as a module in qcom_defconfig, and also enables
CONFIG_LEDS_CLASS_FLASH since it is required by the driver.

Patch 4 adds the device tree nodes configuring the driver in the pm8941 dtsi.

After the feedback I received from the v1 RFC patch (thank you Jacek and
Bjorn!), I implemented the flash LED class framework, renamed the driver to
qcom-spmi-flash and added the dt-bindings. I also did a whole lot of cleanup.

Some caveats:
- I still didn't implement get_strobe() and get_fault() for the flash LEDs,
  because I'm still not sure how to do it. get_strobe() in particular I'm not
  even sure if is possible, since after the flash turns off automatically after
  the timeout, I don't see any change in the SPMI registers. So I'm unsure how
  one would get the current strobe state.
- I have yet to add the V4L2 flash wrapper for the flash LEDs. I still didn't do
  it because I wasn't sure if it was needed, so wanted to double check. But
  being a camera flash it seems that would be useful. Also, it would be great if
  someone could point me how I would go about testing the flash usage through
  V4L2.

Another thing worth mentioning: for v1 the dt nodes were added in hammerhead's
dts (just to simplify testing), but I have now moved them to pm8941's dtsi,
since it was like that in downstream. So if folks using devices based on
PM8941/MSM8974 other than the Nexus 5 could test it, that would be great, since
I have only tested on the Nexus 5.

v1 RFC: https://lore.kernel.org/lkml/20201106165737.1029106-1-nfraprado@xxxxxxxxxxxxxx/

[1] https://github.com/AICP/kernel_lge_hammerhead/blob/n7.1/drivers/leds/leds-qpnp.c

Nícolas F. R. A. Prado (4):
  dt-bindings: leds: Add binding for qcom-spmi-flash
  leds: Add driver for QCOM SPMI Flash LEDs
  ARM: qcom_defconfig: Enable QCOM SPMI Flash LEDs
  ARM: dts: qcom: pm8941: Add nodes for QCOM SPMI Flash LEDs

 .../bindings/leds/leds-qcom-spmi-flash.yaml   |   94 ++
 arch/arm/boot/dts/qcom-pm8941.dtsi            |   38 +
 arch/arm/configs/qcom_defconfig               |    2 +
 drivers/leds/Kconfig                          |    8 +
 drivers/leds/Makefile                         |    1 +
 drivers/leds/leds-qcom-spmi-flash.c           | 1153 +++++++++++++++++
 .../dt-bindings/leds/leds-qcom-spmi-flash.h   |   15 +
 7 files changed, 1311 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/leds/leds-qcom-spmi-flash.yaml
 create mode 100644 drivers/leds/leds-qcom-spmi-flash.c
 create mode 100644 include/dt-bindings/leds/leds-qcom-spmi-flash.h

-- 
2.30.0






[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux