Lines Matching refs:pc
80 struct spear_pwm_chip *pc = to_spear_pwm_chip(chip); in spear_pwm_config() local
95 clk_rate = clk_get_rate(pc->clk); in spear_pwm_config()
124 ret = clk_enable(pc->clk); in spear_pwm_config()
128 spear_pwm_writel(pc, pwm->hwpwm, PWMCR, in spear_pwm_config()
130 spear_pwm_writel(pc, pwm->hwpwm, PWMDCR, dc); in spear_pwm_config()
131 spear_pwm_writel(pc, pwm->hwpwm, PWMPCR, pv); in spear_pwm_config()
132 clk_disable(pc->clk); in spear_pwm_config()
139 struct spear_pwm_chip *pc = to_spear_pwm_chip(chip); in spear_pwm_enable() local
143 rc = clk_enable(pc->clk); in spear_pwm_enable()
147 val = spear_pwm_readl(pc, pwm->hwpwm, PWMCR); in spear_pwm_enable()
149 spear_pwm_writel(pc, pwm->hwpwm, PWMCR, val); in spear_pwm_enable()
156 struct spear_pwm_chip *pc = to_spear_pwm_chip(chip); in spear_pwm_disable() local
159 val = spear_pwm_readl(pc, pwm->hwpwm, PWMCR); in spear_pwm_disable()
161 spear_pwm_writel(pc, pwm->hwpwm, PWMCR, val); in spear_pwm_disable()
163 clk_disable(pc->clk); in spear_pwm_disable()
176 struct spear_pwm_chip *pc; in spear_pwm_probe() local
187 pc = devm_kzalloc(&pdev->dev, sizeof(*pc), GFP_KERNEL); in spear_pwm_probe()
188 if (!pc) { in spear_pwm_probe()
193 pc->mmio_base = devm_ioremap_resource(&pdev->dev, r); in spear_pwm_probe()
194 if (IS_ERR(pc->mmio_base)) in spear_pwm_probe()
195 return PTR_ERR(pc->mmio_base); in spear_pwm_probe()
197 pc->clk = devm_clk_get(&pdev->dev, NULL); in spear_pwm_probe()
198 if (IS_ERR(pc->clk)) in spear_pwm_probe()
199 return PTR_ERR(pc->clk); in spear_pwm_probe()
201 platform_set_drvdata(pdev, pc); in spear_pwm_probe()
203 pc->chip.dev = &pdev->dev; in spear_pwm_probe()
204 pc->chip.ops = &spear_pwm_ops; in spear_pwm_probe()
205 pc->chip.base = -1; in spear_pwm_probe()
206 pc->chip.npwm = NUM_PWM; in spear_pwm_probe()
208 ret = clk_prepare(pc->clk); in spear_pwm_probe()
213 ret = clk_enable(pc->clk); in spear_pwm_probe()
215 clk_unprepare(pc->clk); in spear_pwm_probe()
222 val = readl_relaxed(pc->mmio_base + PWMMCR); in spear_pwm_probe()
224 writel_relaxed(val, pc->mmio_base + PWMMCR); in spear_pwm_probe()
226 clk_disable(pc->clk); in spear_pwm_probe()
229 ret = pwmchip_add(&pc->chip); in spear_pwm_probe()
231 clk_unprepare(pc->clk); in spear_pwm_probe()
240 struct spear_pwm_chip *pc = platform_get_drvdata(pdev); in spear_pwm_remove() local
244 pwm_disable(&pc->chip.pwms[i]); in spear_pwm_remove()
247 clk_unprepare(pc->clk); in spear_pwm_remove()
248 return pwmchip_remove(&pc->chip); in spear_pwm_remove()