Lines Matching refs:chip
30 struct pwm_chip chip;
36 static inline struct atmel_hlcdc_pwm *to_atmel_hlcdc_pwm(struct pwm_chip *chip)
38 return container_of(chip, struct atmel_hlcdc_pwm, chip);
44 struct atmel_hlcdc_pwm *chip = to_atmel_hlcdc_pwm(c);
45 struct atmel_hlcdc *hlcdc = chip->hlcdc;
57 if (!chip->errata || !chip->errata->slow_clk_erratum) {
67 if ((chip->errata && chip->errata->slow_clk_erratum) ||
80 if (!pres && chip->errata &&
81 chip->errata->div1_clk_erratum)
93 if (new_clk != chip->cur_clk) {
101 clk_disable_unprepare(chip->cur_clk);
102 chip->cur_clk = new_clk;
163 clk_disable_unprepare(chip->cur_clk);
164 chip->cur_clk = NULL;
186 struct atmel_hlcdc_pwm *chip = dev_get_drvdata(dev);
189 if (pwm_is_enabled(&chip->chip.pwms[0]))
190 clk_disable_unprepare(chip->hlcdc->periph_clk);
197 struct atmel_hlcdc_pwm *chip = dev_get_drvdata(dev);
201 pwm_get_state(&chip->chip.pwms[0], &state);
205 ret = clk_prepare_enable(chip->hlcdc->periph_clk);
210 return atmel_hlcdc_pwm_apply(&chip->chip, &chip->chip.pwms[0], &state);
247 struct atmel_hlcdc_pwm *chip;
253 chip = devm_kzalloc(dev, sizeof(*chip), GFP_KERNEL);
254 if (!chip)
263 chip->errata = match->data;
265 chip->hlcdc = hlcdc;
266 chip->chip.ops = &atmel_hlcdc_pwm_ops;
267 chip->chip.dev = dev;
268 chip->chip.base = -1;
269 chip->chip.npwm = 1;
270 chip->chip.of_xlate = of_pwm_xlate_with_flags;
271 chip->chip.of_pwm_n_cells = 3;
273 ret = pwmchip_add_with_polarity(&chip->chip, PWM_POLARITY_INVERSED);
279 platform_set_drvdata(pdev, chip);
286 struct atmel_hlcdc_pwm *chip = platform_get_drvdata(pdev);
289 ret = pwmchip_remove(&chip->chip);
293 clk_disable_unprepare(chip->hlcdc->periph_clk);