clk: pwm: implement the .get_duty_cycle callback
authorMartin Blumenstingl <martin.blumenstingl@googlemail.com>
Sat, 25 May 2019 18:42:53 +0000 (20:42 +0200)
committerStephen Boyd <sboyd@kernel.org>
Thu, 6 Jun 2019 18:31:03 +0000 (11:31 -0700)
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>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/clk-pwm.c

index 02b472a..c0cd6a0 100644 (file)
@@ -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)