Hi Anjelique, On Wed Jun 21, 2023 at 8:59 PM CEST, Anjelique Melendez wrote: > In certain PMICs, LUT pattern and LPG configuration can be stored in SDAM > modules instead of LUT peripheral. This feature is called PPG. > > This change series adds support for PPG. Thanks! Thanks for sending this series! I've tested this on SDM632 Fairphone 3 and everything appears to work fine with setting the pattern. Using fbcli from feedbackd[0] the pattern shows up correctly. The only thing missing really is the addition of the pbs node and adding the nvmem/nvmem-names & qcom,pbs-client to the lpg node in pmi632.dtsi - something like the patch below. Are you planning to include this in the next revision? Otherwise I can also send a patch for the pmi632.dtsi after this series has landed. Tested-by: Luca Weiss <luca.weiss@xxxxxxxxxxxxx> # sdm632-fairphone-fp3 (pmi632) [0] https://source.puri.sm/Librem5/feedbackd Regards Luca diff --git a/arch/arm64/boot/dts/qcom/pmi632.dtsi b/arch/arm64/boot/dts/qcom/pmi632.dtsi index add206dee01d2e..92ddb7ac6bf311 100644 --- a/arch/arm64/boot/dts/qcom/pmi632.dtsi +++ b/arch/arm64/boot/dts/qcom/pmi632.dtsi @@ -127,6 +127,11 @@ status = "disabled"; }; + pmi632_pbs_client3: qcom,pbs@7400 { // TODO: generic node name + compatible = "qcom,pbs"; + reg = <0x7400>; + }; + pmi632_sdam_7: nvram@b600 { compatible = "qcom,spmi-sdam"; reg = <0xb600>; @@ -155,6 +160,10 @@ pmi632_lpg: pwm { compatible = "qcom,pmi632-lpg"; + nvmem = <&pmi632_sdam_7>; + nvmem-names = "lpg_chan_sdam"; + qcom,pbs-client = <&pmi632_pbs_client3>; + #address-cells = <1>; #size-cells = <0>; #pwm-cells = <2>; > > Anjelique Melendez (7): > dt-bindings: soc: qcom: Add qcom-pbs bindings > dt-bindings: leds: leds-qcom-lpg: Add support for LUT through NVMEM > devices > soc: qcom: add QCOM PBS driver > leds: rgb: leds-qcom-lpg: Add support for LUT pattern through single > SDAM > leds: rgb: leds-qcom-lpg: Update PMI632 lpg_data to support PPG > leds: rgb: leds-qcom-lpg: Support two-nvmem PPG Scheme > leds: rgb: Update PM8350C lpg_data to support two-nvmem PPG Scheme > > .../bindings/leds/leds-qcom-lpg.yaml | 85 ++++ > .../bindings/soc/qcom/qcom-pbs.yaml | 41 ++ > drivers/leds/rgb/leds-qcom-lpg.c | 393 ++++++++++++++++-- > drivers/soc/qcom/Kconfig | 9 + > drivers/soc/qcom/Makefile | 1 + > drivers/soc/qcom/qcom-pbs.c | 343 +++++++++++++++ > include/linux/soc/qcom/qcom-pbs.h | 36 ++ > 7 files changed, 877 insertions(+), 31 deletions(-) > create mode 100644 Documentation/devicetree/bindings/soc/qcom/qcom-pbs.yaml > create mode 100644 drivers/soc/qcom/qcom-pbs.c > create mode 100644 include/linux/soc/qcom/qcom-pbs.h