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