Lines Matching refs:pwm_chip

63 	struct pwm_chip	chip;
75 static inline struct img_pwm_chip *to_img_pwm_chip(struct pwm_chip *chip) in to_img_pwm_chip()
92 static int img_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, in img_pwm_config()
97 struct img_pwm_chip *pwm_chip = to_img_pwm_chip(chip); in img_pwm_config() local
98 unsigned int max_timebase = pwm_chip->data->max_timebase; in img_pwm_config()
101 if (period_ns < pwm_chip->min_period_ns || in img_pwm_config()
102 period_ns > pwm_chip->max_period_ns) { in img_pwm_config()
107 input_clk_hz = clk_get_rate(pwm_chip->pwm_clk); in img_pwm_config()
135 val = img_pwm_readl(pwm_chip, PWM_CTRL_CFG); in img_pwm_config()
139 img_pwm_writel(pwm_chip, PWM_CTRL_CFG, val); in img_pwm_config()
143 img_pwm_writel(pwm_chip, PWM_CH_CFG(pwm->hwpwm), val); in img_pwm_config()
151 static int img_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm) in img_pwm_enable()
154 struct img_pwm_chip *pwm_chip = to_img_pwm_chip(chip); in img_pwm_enable() local
161 val = img_pwm_readl(pwm_chip, PWM_CTRL_CFG); in img_pwm_enable()
163 img_pwm_writel(pwm_chip, PWM_CTRL_CFG, val); in img_pwm_enable()
165 regmap_update_bits(pwm_chip->periph_regs, PERIP_PWM_PDM_CONTROL, in img_pwm_enable()
172 static void img_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm) in img_pwm_disable()
175 struct img_pwm_chip *pwm_chip = to_img_pwm_chip(chip); in img_pwm_disable() local
177 val = img_pwm_readl(pwm_chip, PWM_CTRL_CFG); in img_pwm_disable()
179 img_pwm_writel(pwm_chip, PWM_CTRL_CFG, val); in img_pwm_disable()
207 struct img_pwm_chip *pwm_chip = dev_get_drvdata(dev); in img_pwm_runtime_suspend() local
209 clk_disable_unprepare(pwm_chip->pwm_clk); in img_pwm_runtime_suspend()
210 clk_disable_unprepare(pwm_chip->sys_clk); in img_pwm_runtime_suspend()
217 struct img_pwm_chip *pwm_chip = dev_get_drvdata(dev); in img_pwm_runtime_resume() local
220 ret = clk_prepare_enable(pwm_chip->sys_clk); in img_pwm_runtime_resume()
226 ret = clk_prepare_enable(pwm_chip->pwm_clk); in img_pwm_runtime_resume()
229 clk_disable_unprepare(pwm_chip->sys_clk); in img_pwm_runtime_resume()
328 struct img_pwm_chip *pwm_chip = platform_get_drvdata(pdev); in img_pwm_remove() local
337 for (i = 0; i < pwm_chip->chip.npwm; i++) { in img_pwm_remove()
338 val = img_pwm_readl(pwm_chip, PWM_CTRL_CFG); in img_pwm_remove()
340 img_pwm_writel(pwm_chip, PWM_CTRL_CFG, val); in img_pwm_remove()
348 return pwmchip_remove(&pwm_chip->chip); in img_pwm_remove()
354 struct img_pwm_chip *pwm_chip = dev_get_drvdata(dev); in img_pwm_suspend() local
363 for (i = 0; i < pwm_chip->chip.npwm; i++) in img_pwm_suspend()
364 pwm_chip->suspend_ch_cfg[i] = img_pwm_readl(pwm_chip, in img_pwm_suspend()
367 pwm_chip->suspend_ctrl_cfg = img_pwm_readl(pwm_chip, PWM_CTRL_CFG); in img_pwm_suspend()
376 struct img_pwm_chip *pwm_chip = dev_get_drvdata(dev); in img_pwm_resume() local
384 for (i = 0; i < pwm_chip->chip.npwm; i++) in img_pwm_resume()
385 img_pwm_writel(pwm_chip, PWM_CH_CFG(i), in img_pwm_resume()
386 pwm_chip->suspend_ch_cfg[i]); in img_pwm_resume()
388 img_pwm_writel(pwm_chip, PWM_CTRL_CFG, pwm_chip->suspend_ctrl_cfg); in img_pwm_resume()
390 for (i = 0; i < pwm_chip->chip.npwm; i++) in img_pwm_resume()
391 if (pwm_chip->suspend_ctrl_cfg & BIT(i)) in img_pwm_resume()
392 regmap_update_bits(pwm_chip->periph_regs, in img_pwm_resume()