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);
198 struct spear_pwm_chip *pc;
202 pc = devm_kzalloc(&pdev->dev, sizeof(*pc), GFP_KERNEL);
203 if (!pc)
206 pc->mmio_base = devm_platform_ioremap_resource(pdev, 0);
207 if (IS_ERR(pc->mmio_base))
208 return PTR_ERR(pc->mmio_base);
210 pc->clk = devm_clk_get(&pdev->dev, NULL);
211 if (IS_ERR(pc->clk))
212 return PTR_ERR(pc->clk);
214 platform_set_drvdata(pdev, pc);
216 pc->chip.dev = &pdev->dev;
217 pc->chip.ops = &spear_pwm_ops;
218 pc->chip.npwm = NUM_PWM;
220 ret = clk_prepare(pc->clk);
225 ret = clk_enable(pc->clk);
227 clk_unprepare(pc->clk);
234 val = readl_relaxed(pc->mmio_base + PWMMCR);
236 writel_relaxed(val, pc->mmio_base + PWMMCR);
238 clk_disable(pc->clk);
241 ret = pwmchip_add(&pc->chip);
243 clk_unprepare(pc->clk);
252 struct spear_pwm_chip *pc = platform_get_drvdata(pdev);
254 pwmchip_remove(&pc->chip);
257 clk_unprepare(pc->clk);