Unverified Commit 574c7958 authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Stephen Boyd
Browse files

clk: pwm: Convert to use pwm_apply_might_sleep()



pwm_config() is an old function that I'd like to remove. So convert this
driver to use pwm_apply_might_sleep().

There is a minor change in behaviour as the explicitly calculated
duty_cycle used an uprounding division while pwm_set_relative_duty_cycle()
rounds down. I don't expect that difference to matter in practice though.

Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@baylibre.com>
Link: https://lore.kernel.org/r/f194fad5ee8bdd3fda6159324524979729683653.1746006578.git.ukleinek@baylibre.com


Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
parent 6ae97be5
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@
struct clk_pwm {
	struct clk_hw hw;
	struct pwm_device *pwm;
	struct pwm_state state;
	u32 fixed_rate;
};

@@ -26,7 +27,7 @@ static int clk_pwm_prepare(struct clk_hw *hw)
{
	struct clk_pwm *clk_pwm = to_clk_pwm(hw);

	return pwm_enable(clk_pwm->pwm);
	return pwm_apply_might_sleep(clk_pwm->pwm, &clk_pwm->state);
}

static void clk_pwm_unprepare(struct clk_hw *hw)
@@ -106,15 +107,16 @@ static int clk_pwm_probe(struct platform_device *pdev)
		return -EINVAL;
	}

	/*
	 * FIXME: pwm_apply_args() should be removed when switching to the
	 * atomic PWM API.
	 */
	pwm_apply_args(pwm);
	ret = pwm_config(pwm, (pargs.period + 1) >> 1, pargs.period);
	pwm_init_state(pwm, &clk_pwm->state);
	pwm_set_relative_duty_cycle(&clk_pwm->state, 1, 2);

	ret = pwm_apply_might_sleep(pwm, &clk_pwm->state);
	if (ret < 0)
		return ret;

	/* set enabled only now to not enable output above */
	clk_pwm->state.enabled = true;

	clk_name = node->name;
	of_property_read_string(node, "clock-output-names", &clk_name);