aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Hainke <vincent@systemli.org>2024-02-08 15:08:18 +0100
committerNick Hainke <vincent@systemli.org>2024-02-10 13:06:05 +0100
commiteeeb0b53494ec08da8b5c746890158834b5ff263 (patch)
tree5e6d43db1965e2d9c4eab9a12dc1ceb08af3f5cc
parent31b3e61d77eccf62b13340013eae6aea40940444 (diff)
downloadupstream-eeeb0b53494ec08da8b5c746890158834b5ff263.tar.gz
upstream-eeeb0b53494ec08da8b5c746890158834b5ff263.tar.bz2
upstream-eeeb0b53494ec08da8b5c746890158834b5ff263.zip
ramips: 6.1: pwm: rewrite mtk_pwm_ops to fix pwm driver
Upstream dropped support for legacy driver [0]. Rewrite the driver like the renesas pwm driver [1]. Fixes erros in the form of: make: *** [/__w/openwrt/openwrt/openwrt/include/toplevel.mk:232: target/compile] Error 1 ====== Make errors from logs/target/linux/compile.txt ====== | ^~~~~~~~~~~~~~ drivers/pwm/pwm-mediatek-ramips.c:107:19: note: (near initialization for 'mtk_pwm_ops.free') drivers/pwm/pwm-mediatek-ramips.c:108:10: error: 'const struct pwm_ops' has no member named 'disable' 108 | .disable = mtk_pwm_disable, | ^~~~~~~ drivers/pwm/pwm-mediatek-ramips.c:108:20: error: initialization of 'int (*)(struct pwm_chip *, struct pwm_device *, struct pwm_capture *, long unsigned int)' from incompatible pointer type 'void (*)(struct pwm_chip *, struct pwm_device *)' [-Werror=incompatible-pointer-types] 108 | .disable = mtk_pwm_disable, | ^~~~~~~~~~~~~~~ drivers/pwm/pwm-mediatek-ramips.c:108:20: note: (near initialization for 'mtk_pwm_ops.capture') cc1: all warnings being treated as errors [0] - https://github.com/torvalds/linux/commit/0829c35dc5346e90f428de61896362b51ab58296 [1] - https://github.com/torvalds/linux/commit/ec00cd5e63f05461ab48128775c73c851c3c2b18 Signed-off-by: Nick Hainke <vincent@systemli.org>
-rw-r--r--target/linux/ramips/patches-6.1/845-pwm-add-mediatek-support.patch30
1 files changed, 26 insertions, 4 deletions
diff --git a/target/linux/ramips/patches-6.1/845-pwm-add-mediatek-support.patch b/target/linux/ramips/patches-6.1/845-pwm-add-mediatek-support.patch
index 06074d60310..15c7cf39a29 100644
--- a/target/linux/ramips/patches-6.1/845-pwm-add-mediatek-support.patch
+++ b/target/linux/ramips/patches-6.1/845-pwm-add-mediatek-support.patch
@@ -41,7 +41,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
obj-$(CONFIG_PWM_NTXEC) += pwm-ntxec.o
--- /dev/null
+++ b/drivers/pwm/pwm-mediatek-ramips.c
-@@ -0,0 +1,175 @@
+@@ -0,0 +1,197 @@
+/*
+ * Mediatek Pulse Width Modulator driver
+ *
@@ -146,10 +146,32 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
+ iowrite32(val, pc->mmio_base);
+}
+
++static int mtk_pwm_apply(struct pwm_chip *chip, struct pwm_device *pwm,
++ const struct pwm_state *state)
++{
++ int err;
++ bool enabled = pwm->state.enabled;
++
++ if (!state->enabled) {
++ if (enabled)
++ mtk_pwm_disable(chip, pwm);
++
++ return 0;
++ }
++
++ err = mtk_pwm_config(pwm->chip, pwm,
++ state->duty_cycle, state->period);
++ if (err)
++ return err;
++
++ if (!enabled)
++ err = mtk_pwm_enable(chip, pwm);
++
++ return err;
++}
++
+static const struct pwm_ops mtk_pwm_ops = {
-+ .config = mtk_pwm_config,
-+ .enable = mtk_pwm_enable,
-+ .disable = mtk_pwm_disable,
++ .apply = mtk_pwm_apply,
+ .owner = THIS_MODULE,
+};
+