On 3/18/26 7:34 PM, Rudraksha Gupta via B4 Relay wrote:
> From: Rudraksha Gupta <[email protected]>
> 
> Add camera flash support for the Samsung Galaxy Express (expressatt).
> 
> The flash IC uses a one-wire pulse-count protocol on GPIO 3, powered
> by a GPIO-controlled fixed regulator on PMIC MPP 4. The regulator is
> modeled as a regulator-fixed node and supplied to the flash IC via
> vin-supply.
> 
> Downstream references:
> Link: 
> https://github.com/LineageOS/android_kernel_samsung_d2/blob/stable/cm-12.0-YNG4N/drivers/leds/Makefile#L51
> Link: 
> https://github.com/LineageOS/android_kernel_samsung_d2/blob/stable/cm-12.0-YNG4N/arch/arm/mach-msm/board-apexq-camera.c#L591
> 
> Reviewed-by: David Heidelberg <[email protected]>
> Signed-off-by: Rudraksha Gupta <[email protected]>
> ---
>  .../dts/qcom/qcom-msm8960-samsung-expressatt.dts   | 43 
> ++++++++++++++++++++++
>  1 file changed, 43 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/qcom/qcom-msm8960-samsung-expressatt.dts 
> b/arch/arm/boot/dts/qcom/qcom-msm8960-samsung-expressatt.dts
> index c4b98af6955d..ad5169a60937 100644
> --- a/arch/arm/boot/dts/qcom/qcom-msm8960-samsung-expressatt.dts
> +++ b/arch/arm/boot/dts/qcom/qcom-msm8960-samsung-expressatt.dts
> @@ -1,5 +1,6 @@
>  // SPDX-License-Identifier: GPL-2.0
>  #include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/common.h>
>  #include <dt-bindings/reset/qcom,gcc-msm8960.h>
>  
>  #include "qcom-msm8960.dtsi"
> @@ -61,6 +62,32 @@ touchkey_enable: touchkey-enable {
>               regulator-boot-on;
>       };
>  
> +     flash_gpio_reg: regulator-flash {

"vreg_flash:"

> +             compatible = "regulator-fixed";
> +             regulator-name = "flash_led_en";

"_en" makes it sound like it's an enable pin - if we don't have a better
idea, perhaps VREG_FLASH_3P3?

> +             regulator-min-microvolt = <3300000>;
> +             regulator-max-microvolt = <3300000>;
> +             gpio = <&pm8921_mpps 4 GPIO_ACTIVE_HIGH>;
> +             enable-active-high;
> +             pinctrl-0 = <&flash_led_unlock>;
> +             pinctrl-names = "default";
> +     };
> +
> +     camera_flash: led-controller {

Let's drop the label since it's unused

> +             compatible = "richtek,rt8515";
> +             enf-gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>;
> +             vin-supply = <&flash_gpio_reg>;
> +             richtek,rfs-ohms = <16000>;
> +             pinctrl-0 = <&cam_flash_en>;
> +             pinctrl-names = "default";
> +
> +             led {
> +                     function = LED_FUNCTION_FLASH;
> +                     color = <LED_COLOR_ID_WHITE>;
> +                     flash-max-timeout-us = <250000>;
> +             };
> +     };
> +
>       i2c-gpio-touchkey {
>               compatible = "i2c-gpio";
>               #address-cells = <1>;
> @@ -247,6 +274,13 @@ touchkey_irq_pin: touchkey-irq-state {

This label from the context seems not to be present in -next, FWIW

>               drive-strength = <2>;
>               bias-disable;
>       };
> +
> +     cam_flash_en: cam-flash-en-state {
> +             pins = "gpio3";

Please keep the pinctrl entries sorted by the GPIO index

Konrad

Reply via email to