]> git.ipfire.org Git - thirdparty/openwrt.git/commitdiff
ramips: mt76x8: add missing clocks to PWM peripheral
authorShiji Yang <yangshiji66@outlook.com>
Sat, 28 Feb 2026 11:25:07 +0000 (19:25 +0800)
committerHauke Mehrtens <hauke@hauke-m.de>
Mon, 16 Mar 2026 00:30:03 +0000 (01:30 +0100)
The upstream MediaTek PWM driver requires these clock sources to
work properly.

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/22214
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
target/linux/ramips/dts/mt7628an.dtsi
target/linux/ramips/patches-6.12/101-clk-ralink-mtmips-add-pwm-clocks-for-mt76x8.patch [new file with mode: 0644]

index 7c37b952f3fa0b4357f035ae7ec3db170e5c5f8e..bf39ec307b1d69ae6565782ce4913426563b01bf 100644 (file)
                        reg = <0x5000 0x1000>;
                        #pwm-cells = <2>;
 
+                       clocks = <&sysc MT76X8_CLK_PWM_TOP>,
+                                <&sysc MT76X8_CLK_PWM_MAIN>,
+                                <&sysc MT76X8_CLK_PWM_CH1>,
+                                <&sysc MT76X8_CLK_PWM_CH2>,
+                                <&sysc MT76X8_CLK_PWM_CH3>,
+                                <&sysc MT76X8_CLK_PWM_CH4>;
+                       clock-names = "top", "main",
+                                     "pwm1", "pwm2", "pwm3", "pwm4";
+
                        pinctrl-names = "default";
                        pinctrl-0 = <&pwm0_pins>, <&pwm1_pins>;
 
diff --git a/target/linux/ramips/patches-6.12/101-clk-ralink-mtmips-add-pwm-clocks-for-mt76x8.patch b/target/linux/ramips/patches-6.12/101-clk-ralink-mtmips-add-pwm-clocks-for-mt76x8.patch
new file mode 100644 (file)
index 0000000..94880f7
--- /dev/null
@@ -0,0 +1,42 @@
+From f0300b3fc74a71742eee50ac596166b5780e0df6 Mon Sep 17 00:00:00 2001
+From: Shiji Yang <yangshiji66@outlook.com>
+Date: Tue, 24 Feb 2026 19:19:14 +0800
+Subject: [PATCH] clk: ralink: mtmips: add pwm clocks for mt76x8
+
+Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
+---
+ drivers/clk/ralink/clk-mtmips.c                  | 8 +++++++-
+ include/dt-bindings/clock/mediatek,mtmips-sysc.h | 6 ++++++
+ 2 files changed, 13 insertions(+), 1 deletion(-)
+
+--- a/drivers/clk/ralink/clk-mtmips.c
++++ b/drivers/clk/ralink/clk-mtmips.c
+@@ -222,7 +222,13 @@ static struct mtmips_clk mt76x8_pherip_c
+       { CLK_PERIPH("10000d00.uart1", "periph") },
+       { CLK_PERIPH("10000e00.uart2", "periph") },
+       { CLK_PERIPH("10130000.mmc", "sdhc") },
+-      { CLK_PERIPH("10300000.wmac", "xtal") }
++      { CLK_PERIPH("10300000.wmac", "xtal") },
++      { CLK_PERIPH("10005000.pwm-top", "periph") },
++      { CLK_PERIPH("10005000.pwm-main", "periph") },
++      { CLK_PERIPH("10005000.pwm-ch1", "periph") },
++      { CLK_PERIPH("10005000.pwm-ch2", "periph") },
++      { CLK_PERIPH("10005000.pwm-ch3", "periph") },
++      { CLK_PERIPH("10005000.pwm-ch4", "periph") }
+ };
+ static int mtmips_register_pherip_clocks(struct device_node *np,
+--- a/include/dt-bindings/clock/mediatek,mtmips-sysc.h
++++ b/include/dt-bindings/clock/mediatek,mtmips-sysc.h
+@@ -126,5 +126,11 @@
+ #define MT76X8_CLK_UART2      15
+ #define MT76X8_CLK_MMC                16
+ #define MT76X8_CLK_WMAC               17
++#define MT76X8_CLK_PWM_TOP    18
++#define MT76X8_CLK_PWM_MAIN   19
++#define MT76X8_CLK_PWM_CH1    20
++#define MT76X8_CLK_PWM_CH2    21
++#define MT76X8_CLK_PWM_CH3    22
++#define MT76X8_CLK_PWM_CH4    23
+ #endif /* _DT_BINDINGS_CLK_MTMIPS_H */