Re: [PATCH 0/7] Add support for LUT PPG

From: Luca Weiss
Date: Mon Jun 26 2023 - 04:28:30 EST


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