Lines Matching refs:sun4i_pwm

114 	struct sun4i_pwm_chip *sun4i_pwm = to_sun4i_pwm_chip(chip);  in sun4i_pwm_get_state()  local
119 clk_rate = clk_get_rate(sun4i_pwm->clk); in sun4i_pwm_get_state()
123 val = sun4i_pwm_readl(sun4i_pwm, PWM_CTRL_REG); in sun4i_pwm_get_state()
131 sun4i_pwm->data->has_direct_mod_clk_output) { in sun4i_pwm_get_state()
140 sun4i_pwm->data->has_prescaler_bypass) in sun4i_pwm_get_state()
159 val = sun4i_pwm_readl(sun4i_pwm, PWM_CH_PRD(pwm->hwpwm)); in sun4i_pwm_get_state()
170 static int sun4i_pwm_calculate(struct sun4i_pwm_chip *sun4i_pwm, in sun4i_pwm_calculate() argument
178 clk_rate = clk_get_rate(sun4i_pwm->clk); in sun4i_pwm_calculate()
180 *bypass = sun4i_pwm->data->has_direct_mod_clk_output && in sun4i_pwm_calculate()
190 if (sun4i_pwm->data->has_prescaler_bypass) { in sun4i_pwm_calculate()
236 struct sun4i_pwm_chip *sun4i_pwm = to_sun4i_pwm_chip(chip); in sun4i_pwm_apply() local
246 ret = clk_prepare_enable(sun4i_pwm->clk); in sun4i_pwm_apply()
253 ret = sun4i_pwm_calculate(sun4i_pwm, state, &duty, &period, &prescaler, in sun4i_pwm_apply()
258 clk_disable_unprepare(sun4i_pwm->clk); in sun4i_pwm_apply()
262 spin_lock(&sun4i_pwm->ctrl_lock); in sun4i_pwm_apply()
263 ctrl = sun4i_pwm_readl(sun4i_pwm, PWM_CTRL_REG); in sun4i_pwm_apply()
265 if (sun4i_pwm->data->has_direct_mod_clk_output) { in sun4i_pwm_apply()
269 sun4i_pwm_writel(sun4i_pwm, ctrl, PWM_CTRL_REG); in sun4i_pwm_apply()
270 spin_unlock(&sun4i_pwm->ctrl_lock); in sun4i_pwm_apply()
280 sun4i_pwm_writel(sun4i_pwm, ctrl, PWM_CTRL_REG); in sun4i_pwm_apply()
287 sun4i_pwm_writel(sun4i_pwm, val, PWM_CH_PRD(pwm->hwpwm)); in sun4i_pwm_apply()
299 sun4i_pwm_writel(sun4i_pwm, ctrl, PWM_CTRL_REG); in sun4i_pwm_apply()
301 spin_unlock(&sun4i_pwm->ctrl_lock); in sun4i_pwm_apply()
313 spin_lock(&sun4i_pwm->ctrl_lock); in sun4i_pwm_apply()
314 ctrl = sun4i_pwm_readl(sun4i_pwm, PWM_CTRL_REG); in sun4i_pwm_apply()
317 sun4i_pwm_writel(sun4i_pwm, ctrl, PWM_CTRL_REG); in sun4i_pwm_apply()
318 spin_unlock(&sun4i_pwm->ctrl_lock); in sun4i_pwm_apply()
320 clk_disable_unprepare(sun4i_pwm->clk); in sun4i_pwm_apply()