Lines Matching refs:pwm

61 	struct berlin_pwm_chip *pwm = to_berlin_pwm_chip(chip);  in berlin_pwm_config()  local
66 cycles = clk_get_rate(pwm->clk); in berlin_pwm_config()
86 value = berlin_pwm_readl(pwm, pwm_dev->hwpwm, BERLIN_PWM_CONTROL); in berlin_pwm_config()
89 berlin_pwm_writel(pwm, pwm_dev->hwpwm, value, BERLIN_PWM_CONTROL); in berlin_pwm_config()
91 berlin_pwm_writel(pwm, pwm_dev->hwpwm, duty, BERLIN_PWM_DUTY); in berlin_pwm_config()
92 berlin_pwm_writel(pwm, pwm_dev->hwpwm, period, BERLIN_PWM_TCNT); in berlin_pwm_config()
101 struct berlin_pwm_chip *pwm = to_berlin_pwm_chip(chip); in berlin_pwm_set_polarity() local
104 value = berlin_pwm_readl(pwm, pwm_dev->hwpwm, BERLIN_PWM_CONTROL); in berlin_pwm_set_polarity()
111 berlin_pwm_writel(pwm, pwm_dev->hwpwm, value, BERLIN_PWM_CONTROL); in berlin_pwm_set_polarity()
118 struct berlin_pwm_chip *pwm = to_berlin_pwm_chip(chip); in berlin_pwm_enable() local
121 value = berlin_pwm_readl(pwm, pwm_dev->hwpwm, BERLIN_PWM_EN); in berlin_pwm_enable()
123 berlin_pwm_writel(pwm, pwm_dev->hwpwm, value, BERLIN_PWM_EN); in berlin_pwm_enable()
131 struct berlin_pwm_chip *pwm = to_berlin_pwm_chip(chip); in berlin_pwm_disable() local
134 value = berlin_pwm_readl(pwm, pwm_dev->hwpwm, BERLIN_PWM_EN); in berlin_pwm_disable()
136 berlin_pwm_writel(pwm, pwm_dev->hwpwm, value, BERLIN_PWM_EN); in berlin_pwm_disable()
155 struct berlin_pwm_chip *pwm; in berlin_pwm_probe() local
159 pwm = devm_kzalloc(&pdev->dev, sizeof(*pwm), GFP_KERNEL); in berlin_pwm_probe()
160 if (!pwm) in berlin_pwm_probe()
164 pwm->base = devm_ioremap_resource(&pdev->dev, res); in berlin_pwm_probe()
165 if (IS_ERR(pwm->base)) in berlin_pwm_probe()
166 return PTR_ERR(pwm->base); in berlin_pwm_probe()
168 pwm->clk = devm_clk_get(&pdev->dev, NULL); in berlin_pwm_probe()
169 if (IS_ERR(pwm->clk)) in berlin_pwm_probe()
170 return PTR_ERR(pwm->clk); in berlin_pwm_probe()
172 ret = clk_prepare_enable(pwm->clk); in berlin_pwm_probe()
176 pwm->chip.dev = &pdev->dev; in berlin_pwm_probe()
177 pwm->chip.ops = &berlin_pwm_ops; in berlin_pwm_probe()
178 pwm->chip.base = -1; in berlin_pwm_probe()
179 pwm->chip.npwm = 4; in berlin_pwm_probe()
180 pwm->chip.can_sleep = true; in berlin_pwm_probe()
181 pwm->chip.of_xlate = of_pwm_xlate_with_flags; in berlin_pwm_probe()
182 pwm->chip.of_pwm_n_cells = 3; in berlin_pwm_probe()
184 ret = pwmchip_add(&pwm->chip); in berlin_pwm_probe()
187 clk_disable_unprepare(pwm->clk); in berlin_pwm_probe()
191 platform_set_drvdata(pdev, pwm); in berlin_pwm_probe()
198 struct berlin_pwm_chip *pwm = platform_get_drvdata(pdev); in berlin_pwm_remove() local
201 ret = pwmchip_remove(&pwm->chip); in berlin_pwm_remove()
202 clk_disable_unprepare(pwm->clk); in berlin_pwm_remove()