Lines Matching refs:pc
80 struct spear_pwm_chip *pc = to_spear_pwm_chip(chip);
95 clk_rate = clk_get_rate(pc->clk);
124 ret = clk_enable(pc->clk);
128 spear_pwm_writel(pc, pwm->hwpwm, PWMCR,
130 spear_pwm_writel(pc, pwm->hwpwm, PWMDCR, dc);
131 spear_pwm_writel(pc, pwm->hwpwm, PWMPCR, pv);
132 clk_disable(pc->clk);
139 struct spear_pwm_chip *pc = to_spear_pwm_chip(chip);
143 rc = clk_enable(pc->clk);
147 val = spear_pwm_readl(pc, pwm->hwpwm, PWMCR);
149 spear_pwm_writel(pc, pwm->hwpwm, PWMCR, val);
156 struct spear_pwm_chip *pc = to_spear_pwm_chip(chip);
159 val = spear_pwm_readl(pc, pwm->hwpwm, PWMCR);
161 spear_pwm_writel(pc, pwm->hwpwm, PWMCR, val);
163 clk_disable(pc->clk);
176 struct spear_pwm_chip *pc;
181 pc = devm_kzalloc(&pdev->dev, sizeof(*pc), GFP_KERNEL);
182 if (!pc)
186 pc->mmio_base = devm_ioremap_resource(&pdev->dev, r);
187 if (IS_ERR(pc->mmio_base))
188 return PTR_ERR(pc->mmio_base);
190 pc->clk = devm_clk_get(&pdev->dev, NULL);
191 if (IS_ERR(pc->clk))
192 return PTR_ERR(pc->clk);
194 platform_set_drvdata(pdev, pc);
196 pc->chip.dev = &pdev->dev;
197 pc->chip.ops = &spear_pwm_ops;
198 pc->chip.base = -1;
199 pc->chip.npwm = NUM_PWM;
201 ret = clk_prepare(pc->clk);
206 ret = clk_enable(pc->clk);
208 clk_unprepare(pc->clk);
215 val = readl_relaxed(pc->mmio_base + PWMMCR);
217 writel_relaxed(val, pc->mmio_base + PWMMCR);
219 clk_disable(pc->clk);
222 ret = pwmchip_add(&pc->chip);
224 clk_unprepare(pc->clk);
233 struct spear_pwm_chip *pc = platform_get_drvdata(pdev);
236 clk_unprepare(pc->clk);
237 return pwmchip_remove(&pc->chip);