* [PATCH] arm64: dts: qcom: msm8917-xiaomi-wingtech: enable flash LED
@ 2026-09-12 13:41 Martin
2026-09-12 13:49 ` sashiko-bot
0 siblings, 1 reply; 2+ messages in thread
From: Martin @ 2026-09-12 13:41 UTC (permalink / raw)
To: andersson@kernel.org, konradybcio@kernel.org, robh@kernel.org,
krzk+dt@kernel.org, conor+dt@kernel.org
Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, hemisputnik
From: hemisputnik <hemisputnik@proton.me>
Add SGM3780 flash LED controller to msm8917-xiaomi-wingtech device tree.
Although the devices this device tree describes have a SGM3780, the
existing driver for SGM3140 is compatible with it, hence why there is a
fallback for it.
While there is no camera suppport in the device tree at the moment, having
this allows using the LED as a torch.
Tested on Xiaomi Redmi 5A (xiaomi-riva).
Signed-off-by: hemisputnik <hemisputnik@proton.me>
---
.../dts/qcom/msm8917-xiaomi-wingtech.dtsi | 23 +++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/msm8917-xiaomi-wingtech.dtsi b/arch/arm64/boot/dts/qcom/msm8917-xiaomi-wingtech.dtsi
index 69eda5f42c06..c0b5094efced 100644
--- a/arch/arm64/boot/dts/qcom/msm8917-xiaomi-wingtech.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8917-xiaomi-wingtech.dtsi
@@ -7,6 +7,7 @@
#include <dt-bindings/arm/qcom,ids.h>
#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
#include "msm8917.dtsi"
#include "pm8937.dtsi"
@@ -25,6 +26,20 @@ pwm_backlight: backlight {
default-brightness-level = <128>;
};
+ flash-led-controller {
+ compatible = "sgmicro,sgm3780", "sgmicro,sgm3140";
+ enable-gpios = <&tlmm 93 GPIO_ACTIVE_HIGH>;
+ flash-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&flash_led_default>;
+ pinctrl-names = "default";
+
+ led {
+ function = LED_FUNCTION_FLASH;
+ color = <LED_COLOR_ID_WHITE>;
+ };
+ };
+
chosen {
#address-cells = <2>;
#size-cells = <2>;
@@ -306,6 +321,14 @@ tsp_int_rst_default: tsp-int-rst-default-state {
drive-strength = <8>;
bias-pull-up;
};
+
+ flash_led_default: flash-led-default-state {
+ pins = "gpio90", "gpio93";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ output-high;
+ };
};
&wcnss {
--
2.55.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] arm64: dts: qcom: msm8917-xiaomi-wingtech: enable flash LED
2026-09-12 13:41 [PATCH] arm64: dts: qcom: msm8917-xiaomi-wingtech: enable flash LED Martin
@ 2026-09-12 13:49 ` sashiko-bot
0 siblings, 0 replies; 2+ messages in thread
From: sashiko-bot @ 2026-09-12 13:49 UTC (permalink / raw)
To: Martin; +Cc: conor+dt, robh, devicetree
Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
- [High] Setting 'output-high' in the pinctrl default state drives the flash LED pins high, turning on the LED at maximum brightness during boot and bypassing safety timeouts.
- [Low] The new compatible string "sgmicro,sgm3780" is used but not documented in the YAML bindings.
- [Low] Missing `flash-max-timeout-us` property causes an unconditional kernel warning on boot.
--
commit 900520fbc3c9b249fa3d066d01078e01c28af4a8
Author: hemisputnik <hemisputnik@proton.me>
arm64: dts: qcom: msm8917-xiaomi-wingtech: enable flash LED
This commit adds the SGM3780 flash LED controller to the msm8917-xiaomi-wingtech
device tree. It falls back to the existing sgm3140 driver compatibility to
enable torch functionality.
> diff --git a/arch/arm64/boot/dts/qcom/msm8917-xiaomi-wingtech.dtsi b/arch/arm64/boot/dts/qcom/msm8917-xiaomi-wingtech.dtsi
> index 69eda5f42c069..c0b5094efced3 100644
> --- a/arch/arm64/boot/dts/qcom/msm8917-xiaomi-wingtech.dtsi
> +++ b/arch/arm64/boot/dts/qcom/msm8917-xiaomi-wingtech.dtsi
[ ... ]
> @@ -25,6 +26,20 @@ pwm_backlight: backlight {
> default-brightness-level = <128>;
> };
>
> + flash-led-controller {
> + compatible = "sgmicro,sgm3780", "sgmicro,sgm3140";
[Severity: Low]
Will make dtbs_check fail with this change? The new compatible string
"sgmicro,sgm3780" doesn't appear to be documented in the YAML bindings yet.
> + enable-gpios = <&tlmm 93 GPIO_ACTIVE_HIGH>;
> + flash-gpios = <&tlmm 90 GPIO_ACTIVE_HIGH>;
> +
> + pinctrl-0 = <&flash_led_default>;
> + pinctrl-names = "default";
> +
> + led {
> + function = LED_FUNCTION_FLASH;
> + color = <LED_COLOR_ID_WHITE>;
[Severity: Low]
Will this cause a kernel warning on every boot? The sgm3140 driver expects
the flash-max-timeout-us property to be defined in the led child node.
If it is missing, the driver falls back to a default value but emits a
dev_warn during probe, which can unnecessarily pollute the kernel log.
> + };
> + };
> +
[ ... ]
> @@ -306,6 +321,14 @@ tsp_int_rst_default: tsp-int-rst-default-state {
> drive-strength = <8>;
> bias-pull-up;
> };
> +
> + flash_led_default: flash-led-default-state {
> + pins = "gpio90", "gpio93";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + output-high;
[Severity: High]
Does configuring output-high here risk permanent hardware damage?
The pinctrl framework applies the flash_led_default state during device
binding, which sets the flash-gpios and enable-gpios pins high before the
driver probes, or permanently if probing is deferred or fails.
This turns on the flash LED at maximum brightness during boot and bypasses
the driver's safety timeouts. Flash LEDs are typically not designed for
continuous operation at high brightness and can quickly overheat.
> + };
> };
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260912134056.3347741-1-hemisputnik@proton.me?part=1
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-09-12 13:49 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-12 13:41 [PATCH] arm64: dts: qcom: msm8917-xiaomi-wingtech: enable flash LED Martin
2026-09-12 13:49 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox