[PATCH] Fix IMX PWM period setting
Krebs, Olaf
Olaf.Krebs at emh-metering.com
Thu Oct 30 01:51:20 PDT 2025
From: Olaf krebs <olaf.krebs at emh-metering.com>
We use 3 PWM channels to control an RGB LED. Without this patch we get an error:
[ 7.395326] leds_pwm_multicolor led-controller: error -EBUSY: failed to set led PWM value for (null)
[ 7.405167] leds_pwm_multicolor led-controller: probe with driver leds_pwm_multicolor failed with error -16
Our DTS-Config for an imx93-Board:
...
led-controller {
compatible = "pwm-leds-multicolor";
multi-led {
label = "RGBled";
color = <LED_COLOR_ID_RGB>;
function = LED_FUNCTION_INDICATOR;
max-brightness = <255>;
led-red {
pwms = <&tpm5 0 1000000 PWM_POLARITY_INVERTED>;
color = <LED_COLOR_ID_RED>;
};
led-green {
pwms = <&tpm6 2 1000000 PWM_POLARITY_INVERTED>;
color = <LED_COLOR_ID_GREEN>;
};
led-blue {
pwms = <&tpm5 1 1000000 PWM_POLARITY_INVERTED>;
color = <LED_COLOR_ID_BLUE>;
};
};
};
...
Signed-off-by: Olaf krebs <olaf.krebs at emh-metering.com>
---
drivers/pwm/pwm-imx-tpm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pwm/pwm-imx-tpm.c b/drivers/pwm/pwm-imx-tpm.c index 5b399de16d60..82db43f56da8 100644
--- a/drivers/pwm/pwm-imx-tpm.c
+++ b/drivers/pwm/pwm-imx-tpm.c
@@ -190,7 +190,7 @@ static int pwm_imx_tpm_apply_hw(struct pwm_chip *chip,
* there are multiple channels in use with different
* period settings.
*/
- if (tpm->user_count > 1)
+ if ((tpm->user_count > 1) && (tmp->real_period != 0))
return -EBUSY;
val = readl(tpm->base + PWM_IMX_TPM_SC);
--
2.43.0
More information about the linux-arm-kernel
mailing list