Lines Matching refs:pwm_chip

61 	struct pwm_chip	chip;
71 static inline struct img_pwm_chip *to_img_pwm_chip(struct pwm_chip *chip) in to_img_pwm_chip()
88 static int img_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm, in img_pwm_config()
93 struct img_pwm_chip *pwm_chip = to_img_pwm_chip(chip); in img_pwm_config() local
94 unsigned int max_timebase = pwm_chip->data->max_timebase; in img_pwm_config()
96 if (period_ns < pwm_chip->min_period_ns || in img_pwm_config()
97 period_ns > pwm_chip->max_period_ns) { in img_pwm_config()
102 input_clk_hz = clk_get_rate(pwm_chip->pwm_clk); in img_pwm_config()
126 val = img_pwm_readl(pwm_chip, PWM_CTRL_CFG); in img_pwm_config()
130 img_pwm_writel(pwm_chip, PWM_CTRL_CFG, val); in img_pwm_config()
134 img_pwm_writel(pwm_chip, PWM_CH_CFG(pwm->hwpwm), val); in img_pwm_config()
139 static int img_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm) in img_pwm_enable()
142 struct img_pwm_chip *pwm_chip = to_img_pwm_chip(chip); in img_pwm_enable() local
144 val = img_pwm_readl(pwm_chip, PWM_CTRL_CFG); in img_pwm_enable()
146 img_pwm_writel(pwm_chip, PWM_CTRL_CFG, val); in img_pwm_enable()
148 regmap_update_bits(pwm_chip->periph_regs, PERIP_PWM_PDM_CONTROL, in img_pwm_enable()
155 static void img_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm) in img_pwm_disable()
158 struct img_pwm_chip *pwm_chip = to_img_pwm_chip(chip); in img_pwm_disable() local
160 val = img_pwm_readl(pwm_chip, PWM_CTRL_CFG); in img_pwm_disable()
162 img_pwm_writel(pwm_chip, PWM_CTRL_CFG, val); in img_pwm_disable()
273 struct img_pwm_chip *pwm_chip = platform_get_drvdata(pdev); in img_pwm_remove() local
277 for (i = 0; i < pwm_chip->chip.npwm; i++) { in img_pwm_remove()
278 val = img_pwm_readl(pwm_chip, PWM_CTRL_CFG); in img_pwm_remove()
280 img_pwm_writel(pwm_chip, PWM_CTRL_CFG, val); in img_pwm_remove()
283 clk_disable_unprepare(pwm_chip->pwm_clk); in img_pwm_remove()
284 clk_disable_unprepare(pwm_chip->sys_clk); in img_pwm_remove()
286 return pwmchip_remove(&pwm_chip->chip); in img_pwm_remove()