mirror of
https://github.com/openwrt/openwrt.git
synced 2025-04-16 15:29:48 +00:00
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] -0829c35dc5
[1] -ec00cd5e63
Signed-off-by: Nick Hainke <vincent@systemli.org>
This commit is contained in:
parent
31b3e61d77
commit
eeeb0b5349
@ -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,
|
||||
+};
|
||||
+
|
||||
|
Loading…
x
Reference in New Issue
Block a user