diff mbox series

[1/1] clk: pwm: implement the .get_duty_cycle callback

Message ID 20190525184253.3088-2-martin.blumenstingl@googlemail.com (mailing list archive)
State Accepted, archived
Headers show
Series clk-pwm: show duty cycle in debugfs | expand

Commit Message

Martin Blumenstingl May 25, 2019, 6:42 p.m. UTC
Commit 9fba738a53dda2 ("clk: add duty cycle support") added support for
getting and setting the duty cycle of a clock. This implements the
get_duty_cycle callback for PWM based clocks so the duty cycle is shown
in the debugfs output (/sys/kernel/debug/clk/clk_summary).

Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
---
 drivers/clk/clk-pwm.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

Comments

Stephen Boyd June 6, 2019, 6:38 p.m. UTC | #1
Quoting Martin Blumenstingl (2019-05-25 11:42:53)
> Commit 9fba738a53dda2 ("clk: add duty cycle support") added support for
> getting and setting the duty cycle of a clock. This implements the
> get_duty_cycle callback for PWM based clocks so the duty cycle is shown
> in the debugfs output (/sys/kernel/debug/clk/clk_summary).
> 
> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
> ---

Seems ok to me. I'm not sure how useful it will be if pwm has debugfs
that can be read too, but I'm not too worried about it.

Applied to clk-next
diff mbox series

Patch

diff --git a/drivers/clk/clk-pwm.c b/drivers/clk/clk-pwm.c
index 02b472a1f9b0..c0cd6a0ff7f8 100644
--- a/drivers/clk/clk-pwm.c
+++ b/drivers/clk/clk-pwm.c
@@ -47,10 +47,24 @@  static unsigned long clk_pwm_recalc_rate(struct clk_hw *hw,
 	return clk_pwm->fixed_rate;
 }
 
+static int clk_pwm_get_duty_cycle(struct clk_hw *hw, struct clk_duty *duty)
+{
+	struct clk_pwm *clk_pwm = to_clk_pwm(hw);
+	struct pwm_state state;
+
+	pwm_get_state(clk_pwm->pwm, &state);
+
+	duty->num = state.duty_cycle;
+	duty->den = state.period;
+
+	return 0;
+}
+
 static const struct clk_ops clk_pwm_ops = {
 	.prepare = clk_pwm_prepare,
 	.unprepare = clk_pwm_unprepare,
 	.recalc_rate = clk_pwm_recalc_rate,
+	.get_duty_cycle = clk_pwm_get_duty_cycle,
 };
 
 static int clk_pwm_probe(struct platform_device *pdev)