Re: [PATCH 3/3] arm64: dts: qcom: sm7225-fairphone-fp4: configure flash LED

From: Fenglin Wu
Date: Wed Jan 04 2023 - 22:31:01 EST




On 2022/12/12 21:59, Luca Weiss wrote:
On Sat Dec 10, 2022 at 6:16 PM CET, Pavel Machek wrote:
Hi!

Configure the pm6150l flash node for the dual flash LEDs found on FP4.

+&pm6150l_flash {
+ status = "okay";
+
+ led-0 {
+ function = LED_FUNCTION_FLASH;
+ color = <LED_COLOR_ID_YELLOW>;
+ led-sources = <1>;
+ led-max-microamp = <180000>;
+ flash-max-microamp = <1000000>;
+ flash-max-timeout-us = <1280000>;
+ };

Hi Pavel,


I'm pretty sure the flash is not yellow.

The marketing term is Dual LED flash or Dual-tone flash, one LED is a
blue-ish white and one is a yellow-ish white, but from what I can tell,
in the original code it's always referred to as white and yellow so I
also followed that here.

Also the LEDs are right next to each other so in practise for torch just
both go on, and for camera flash I cannot really tell you but I guess
it's doing something there with the camera tuning.

See also this picture:
https://shop.fairphone.com/media/catalog/product/cache/b752d78484639b19641a8560800d919d/p/_/p_5b_main_camera_back.jpg

Hi Pavel,

Luca is right. It is normally called dual CCT (Correlated Color Temperature) flash LED. It has 2 LEDs, one is with higher CCT (~6000K) so it looks like a white LED, another is with lower CCT (~2000K) and it looks like a yellow LED. I am not an expert of this but my understanding is the camera tuning process normally adjusts the brightness of the two LEDs and enables them to get different CCT for different snapshots.
I was thinking to use the "white" and "yellow" to name the flash LEDs which should be much better that just using indexes, it implicitly tell that the "white" one is having higher CCT and the "yellow" one is having lower CCT.

Fenglin

Plus, how is the node in /sys/class/leds called? Can you make an entry
in Documentation/leds/well-known-leds.txt and ensure the name stays
consistent across devices?

/ # ls -al /sys/class/leds/white:flash/
total 0
drwxr-xr-x 3 0 0 0 Jan 1 00:00 .
drwxr-xr-x 4 0 0 0 Jan 1 00:00 ..
-rw-r--r-- 1 0 0 4096 Jan 1 00:00 brightness
lrwxrwxrwx 1 0 0 0 Jan 1 00:00 device -> ../../../c440000.spmi:pmic@5:led-controller@d300
-rw-r--r-- 1 0 0 4096 Jan 1 00:00 flash_brightness
-r--r--r-- 1 0 0 4096 Jan 1 00:00 flash_fault
-rw-r--r-- 1 0 0 4096 Jan 1 00:00 flash_strobe
-rw-r--r-- 1 0 0 4096 Jan 1 00:00 flash_timeout
-r--r--r-- 1 0 0 4096 Jan 1 00:00 max_brightness
-r--r--r-- 1 0 0 4096 Jan 1 00:00 max_flash_brightness
-r--r--r-- 1 0 0 4096 Jan 1 00:00 max_flash_timeout
drwxr-xr-x 2 0 0 0 Jan 1 00:00 power
lrwxrwxrwx 1 0 0 0 Jan 1 00:00 subsystem -> ../../../../../../../../../class/leds
-rw-r--r-- 1 0 0 4096 Jan 1 00:00 uevent
/ # ls -al /sys/class/leds/yellow:flash/
total 0
drwxr-xr-x 3 0 0 0 Jan 1 00:00 .
drwxr-xr-x 4 0 0 0 Jan 1 00:00 ..
-rw-r--r-- 1 0 0 4096 Jan 1 00:00 brightness
lrwxrwxrwx 1 0 0 0 Jan 1 00:00 device -> ../../../c440000.spmi:pmic@5:led-controller@d300
-rw-r--r-- 1 0 0 4096 Jan 1 00:00 flash_brightness
-r--r--r-- 1 0 0 4096 Jan 1 00:00 flash_fault
-rw-r--r-- 1 0 0 4096 Jan 1 00:00 flash_strobe
-rw-r--r-- 1 0 0 4096 Jan 1 00:00 flash_timeout
-r--r--r-- 1 0 0 4096 Jan 1 00:00 max_brightness
-r--r--r-- 1 0 0 4096 Jan 1 00:00 max_flash_brightness
-r--r--r-- 1 0 0 4096 Jan 1 00:00 max_flash_timeout
drwxr-xr-x 2 0 0 0 Jan 1 00:00 power
lrwxrwxrwx 1 0 0 0 Jan 1 00:00 subsystem -> ../../../../../../../../../class/leds
-rw-r--r-- 1 0 0 4096 Jan 1 00:00 uevent

There's also already flash LED on PinePhone and some MSM8916 devices,
but I think they also have white:flash based on the dt.


Best regards,
Pavel
--
People of Russia, stop Putin before his war on Ukraine escalates.