2023-05-07 17:33:59

by Dylan Van Assche

[permalink] [raw]
Subject: [PATCH 0/2] leds: flash: leds-qcom-flash: add PMI8998 support

This patchserie adds support for the Qualcomm PMI8998 PMIC to the
pending leds-qcom-flash LED driver (v8) [1]. The following changes
are necessary to support the Qualcomm PMI8998 PMIC:

- Add subtype 0x3 for the Qualcomm PMI8998 PMIC.
- Disable LED when changing the brightness to make brightness changes
propagate when the LED was already enabled.

@Fenglin Wu: Feel free to pull these patches in with your v9 if you like them.
We discussed support for this PMIC in the past around v3, but never could make
it work until now.

[1] https://lore.kernel.org/all/[email protected]/

Kind regards,
Dylan Van Assche

Dylan Van Assche (2):
leds: flash: leds-qcom-flash: add PMI8998 support
leds: flash: leds-qcom-flash: disable LED when changing brightness

drivers/leds/flash/leds-qcom-flash.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)

--
2.40.1


2023-05-07 17:34:53

by Dylan Van Assche

[permalink] [raw]
Subject: [PATCH 2/2] leds: flash: leds-qcom-flash: disable LED when changing brightness

The Qualcomm PMI8998 PMIC requires the LED to be disabled when configuring
the brightness. Always disable the LED when setting the brightness and
re-enable it afterwards.

Signed-off-by: Dylan Van Assche <[email protected]>
---
drivers/leds/flash/leds-qcom-flash.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/drivers/leds/flash/leds-qcom-flash.c b/drivers/leds/flash/leds-qcom-flash.c
index 16045b5d89b1..c8d41a3caf38 100644
--- a/drivers/leds/flash/leds-qcom-flash.c
+++ b/drivers/leds/flash/leds-qcom-flash.c
@@ -417,6 +417,14 @@ static int qcom_flash_led_brightness_set(struct led_classdev *led_cdev,
bool enable = !!brightness;
int rc;

+ rc = set_flash_strobe(led, SW_STROBE, false);
+ if (rc)
+ return rc;
+
+ rc = set_flash_module_en(led, false);
+ if (rc)
+ return rc;
+
rc = set_flash_current(led, current_ma, TORCH_MODE);
if (rc)
return rc;
--
2.40.1

2023-05-07 17:38:48

by Dylan Van Assche

[permalink] [raw]
Subject: [PATCH 1/2] leds: flash: leds-qcom-flash: add PMI8998 support

Add subtype for the Qualcomm PMI8998 PMIC to support it besides the
PM8150 PMIC which has the same registers. Adjust the driver to recognize
both PMIC subtypes as a 3 channel LED driver.

Signed-off-by: Dylan Van Assche <[email protected]>
---
drivers/leds/flash/leds-qcom-flash.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/leds/flash/leds-qcom-flash.c b/drivers/leds/flash/leds-qcom-flash.c
index 90a24fa25a49..16045b5d89b1 100644
--- a/drivers/leds/flash/leds-qcom-flash.c
+++ b/drivers/leds/flash/leds-qcom-flash.c
@@ -18,7 +18,8 @@
#define FLASH_TYPE_VAL 0x18

#define FLASH_SUBTYPE_REG 0x05
-#define FLASH_SUBTYPE_3CH_VAL 0x04
+#define FLASH_SUBTYPE_3CH_PM8150_VAL 0x04
+#define FLASH_SUBTYPE_3CH_PMI8998_VAL 0x03
#define FLASH_SUBTYPE_4CH_VAL 0x07

#define FLASH_STS_3CH_OTST1 BIT(0)
@@ -682,7 +683,7 @@ static int qcom_flash_led_probe(struct platform_device *pdev)
return rc;
}

- if (val == FLASH_SUBTYPE_3CH_VAL) {
+ if (val == FLASH_SUBTYPE_3CH_PM8150_VAL || val == FLASH_SUBTYPE_3CH_PMI8998_VAL) {
flash_data->hw_type = QCOM_MVFLASH_3CH;
flash_data->max_channels = 3;
regs = mvflash_3ch_regs;
--
2.40.1

2023-05-15 16:26:56

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH 1/2] leds: flash: leds-qcom-flash: add PMI8998 support

On Sun, 07 May 2023, Dylan Van Assche wrote:

> Add subtype for the Qualcomm PMI8998 PMIC to support it besides the
> PM8150 PMIC which has the same registers. Adjust the driver to recognize
> both PMIC subtypes as a 3 channel LED driver.
>
> Signed-off-by: Dylan Van Assche <[email protected]>
> ---
> drivers/leds/flash/leds-qcom-flash.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)

Applied, thanks

--
Lee Jones [李琼斯]

2023-05-15 16:32:48

by Lee Jones

[permalink] [raw]
Subject: Re: [PATCH 2/2] leds: flash: leds-qcom-flash: disable LED when changing brightness

On Sun, 07 May 2023, Dylan Van Assche wrote:

> The Qualcomm PMI8998 PMIC requires the LED to be disabled when configuring
> the brightness. Always disable the LED when setting the brightness and
> re-enable it afterwards.
>
> Signed-off-by: Dylan Van Assche <[email protected]>
> ---
> drivers/leds/flash/leds-qcom-flash.c | 8 ++++++++
> 1 file changed, 8 insertions(+)

Applied, thanks

--
Lee Jones [李琼斯]