Re: [PATCH v8 1/2] leds: flash: add driver to support flash LED module in QCOM PMICs

From: Fenglin Wu
Date: Tue Mar 28 2023 - 04:14:32 EST




On 3/26/2023 1:36 AM, Pavel Machek wrote:
On Fri 2023-03-03 17:50:22, Fenglin Wu wrote:
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@xxxxxxxxxxx>
Tested-by: Luca Weiss <luca.weiss@xxxxxxxxxxxxx> # sm7225-fairphone-fp4 + pm6150l

+ flash->led_cdev.brightness_set_blocking = qcom_flash_led_brightness_set;
+
+ init_data.fwnode = node;
+ init_data.devicename = NULL;
+ init_data.default_label = NULL;
+ init_data.devname_mandatory = false;
+
+ rc = devm_led_classdev_flash_register_ext(dev, flash, &init_data);
+ if (rc < 0) {
+ dev_err(dev, "Register flash LED classdev failed, rc=%d\n", rc);
+ return rc;
+ }

I'd expect setting max_brightness somewhere around here.

What does cat /sys/class/leds/*/max_brightness say (and what directory
name are you using)?

LED_FULL is used as the default max_brightness, the driver will do the calculation based on LED_FULL (as below) and set the corresponding current when brightness is updated :

u32 current_ma = brightness * led->max_torch_current_ma / LED_FULL;

This is how max_brightness shows on my device:

# cat /sys/class/leds/white:flash-0/max_brightness
255


BR, Pavel