Lines Matching refs:pc

53 	struct ecap_pwm_chip *pc = to_ecap_pwm_chip(chip);
61 c = pc->clk_rate;
70 c = pc->clk_rate;
76 pm_runtime_get_sync(pc->chip.dev);
78 value = readw(pc->mmio_base + ECCTL2);
83 writew(value, pc->mmio_base + ECCTL2);
87 writel(duty_cycles, pc->mmio_base + CAP2);
88 writel(period_cycles, pc->mmio_base + CAP1);
95 writel(duty_cycles, pc->mmio_base + CAP4);
96 writel(period_cycles, pc->mmio_base + CAP3);
100 value = readw(pc->mmio_base + ECCTL2);
103 writew(value, pc->mmio_base + ECCTL2);
106 pm_runtime_put_sync(pc->chip.dev);
114 struct ecap_pwm_chip *pc = to_ecap_pwm_chip(chip);
117 pm_runtime_get_sync(pc->chip.dev);
119 value = readw(pc->mmio_base + ECCTL2);
128 writew(value, pc->mmio_base + ECCTL2);
130 pm_runtime_put_sync(pc->chip.dev);
137 struct ecap_pwm_chip *pc = to_ecap_pwm_chip(chip);
141 pm_runtime_get_sync(pc->chip.dev);
147 value = readw(pc->mmio_base + ECCTL2);
149 writew(value, pc->mmio_base + ECCTL2);
156 struct ecap_pwm_chip *pc = to_ecap_pwm_chip(chip);
163 value = readw(pc->mmio_base + ECCTL2);
165 writew(value, pc->mmio_base + ECCTL2);
168 pm_runtime_put_sync(pc->chip.dev);
198 struct ecap_pwm_chip *pc;
203 pc = devm_kzalloc(&pdev->dev, sizeof(*pc), GFP_KERNEL);
204 if (!pc)
220 pc->clk_rate = clk_get_rate(clk);
221 if (!pc->clk_rate) {
226 pc->chip.dev = &pdev->dev;
227 pc->chip.ops = &ecap_pwm_ops;
228 pc->chip.of_xlate = of_pwm_xlate_with_flags;
229 pc->chip.of_pwm_n_cells = 3;
230 pc->chip.base = -1;
231 pc->chip.npwm = 1;
234 pc->mmio_base = devm_ioremap_resource(&pdev->dev, r);
235 if (IS_ERR(pc->mmio_base))
236 return PTR_ERR(pc->mmio_base);
238 ret = pwmchip_add(&pc->chip);
244 platform_set_drvdata(pdev, pc);
252 struct ecap_pwm_chip *pc = platform_get_drvdata(pdev);
256 return pwmchip_remove(&pc->chip);
260 static void ecap_pwm_save_context(struct ecap_pwm_chip *pc)
262 pm_runtime_get_sync(pc->chip.dev);
263 pc->ctx.ecctl2 = readw(pc->mmio_base + ECCTL2);
264 pc->ctx.cap4 = readl(pc->mmio_base + CAP4);
265 pc->ctx.cap3 = readl(pc->mmio_base + CAP3);
266 pm_runtime_put_sync(pc->chip.dev);
269 static void ecap_pwm_restore_context(struct ecap_pwm_chip *pc)
271 writel(pc->ctx.cap3, pc->mmio_base + CAP3);
272 writel(pc->ctx.cap4, pc->mmio_base + CAP4);
273 writew(pc->ctx.ecctl2, pc->mmio_base + ECCTL2);
278 struct ecap_pwm_chip *pc = dev_get_drvdata(dev);
279 struct pwm_device *pwm = pc->chip.pwms;
281 ecap_pwm_save_context(pc);
292 struct ecap_pwm_chip *pc = dev_get_drvdata(dev);
293 struct pwm_device *pwm = pc->chip.pwms;
299 ecap_pwm_restore_context(pc);