Lines Matching refs:p

70 static inline u32 brcmstb_pwm_readl(struct brcmstb_pwm *p,  in brcmstb_pwm_readl()  argument
74 return __raw_readl(p->base + offset); in brcmstb_pwm_readl()
76 return readl_relaxed(p->base + offset); in brcmstb_pwm_readl()
79 static inline void brcmstb_pwm_writel(struct brcmstb_pwm *p, u32 value, in brcmstb_pwm_writel() argument
83 __raw_writel(value, p->base + offset); in brcmstb_pwm_writel()
85 writel_relaxed(value, p->base + offset); in brcmstb_pwm_writel()
109 struct brcmstb_pwm *p = to_brcmstb_pwm(chip); in brcmstb_pwm_config() local
132 rate = (u64)clk_get_rate(p->clk) * (u64)cword; in brcmstb_pwm_config()
176 spin_lock(&p->lock); in brcmstb_pwm_config()
177 brcmstb_pwm_writel(p, cword >> 8, PWM_CWORD_MSB(channel)); in brcmstb_pwm_config()
178 brcmstb_pwm_writel(p, cword & 0xff, PWM_CWORD_LSB(channel)); in brcmstb_pwm_config()
181 value = brcmstb_pwm_readl(p, PWM_CTRL2); in brcmstb_pwm_config()
183 brcmstb_pwm_writel(p, value, PWM_CTRL2); in brcmstb_pwm_config()
186 brcmstb_pwm_writel(p, pc, PWM_PERIOD(channel)); in brcmstb_pwm_config()
187 brcmstb_pwm_writel(p, dc, PWM_ON(channel)); in brcmstb_pwm_config()
188 spin_unlock(&p->lock); in brcmstb_pwm_config()
193 static inline void brcmstb_pwm_enable_set(struct brcmstb_pwm *p, in brcmstb_pwm_enable_set() argument
199 spin_lock(&p->lock); in brcmstb_pwm_enable_set()
200 value = brcmstb_pwm_readl(p, PWM_CTRL); in brcmstb_pwm_enable_set()
210 brcmstb_pwm_writel(p, value, PWM_CTRL); in brcmstb_pwm_enable_set()
211 spin_unlock(&p->lock); in brcmstb_pwm_enable_set()
216 struct brcmstb_pwm *p = to_brcmstb_pwm(chip); in brcmstb_pwm_enable() local
218 brcmstb_pwm_enable_set(p, pwm->hwpwm, true); in brcmstb_pwm_enable()
225 struct brcmstb_pwm *p = to_brcmstb_pwm(chip); in brcmstb_pwm_disable() local
227 brcmstb_pwm_enable_set(p, pwm->hwpwm, false); in brcmstb_pwm_disable()
245 struct brcmstb_pwm *p; in brcmstb_pwm_probe() local
249 p = devm_kzalloc(&pdev->dev, sizeof(*p), GFP_KERNEL); in brcmstb_pwm_probe()
250 if (!p) in brcmstb_pwm_probe()
253 spin_lock_init(&p->lock); in brcmstb_pwm_probe()
255 p->clk = devm_clk_get(&pdev->dev, NULL); in brcmstb_pwm_probe()
256 if (IS_ERR(p->clk)) { in brcmstb_pwm_probe()
258 return PTR_ERR(p->clk); in brcmstb_pwm_probe()
261 ret = clk_prepare_enable(p->clk); in brcmstb_pwm_probe()
267 platform_set_drvdata(pdev, p); in brcmstb_pwm_probe()
269 p->chip.dev = &pdev->dev; in brcmstb_pwm_probe()
270 p->chip.ops = &brcmstb_pwm_ops; in brcmstb_pwm_probe()
271 p->chip.base = -1; in brcmstb_pwm_probe()
272 p->chip.npwm = 2; in brcmstb_pwm_probe()
273 p->chip.can_sleep = true; in brcmstb_pwm_probe()
276 p->base = devm_ioremap_resource(&pdev->dev, res); in brcmstb_pwm_probe()
277 if (IS_ERR(p->base)) { in brcmstb_pwm_probe()
278 ret = PTR_ERR(p->base); in brcmstb_pwm_probe()
282 ret = pwmchip_add(&p->chip); in brcmstb_pwm_probe()
291 clk_disable_unprepare(p->clk); in brcmstb_pwm_probe()
297 struct brcmstb_pwm *p = platform_get_drvdata(pdev); in brcmstb_pwm_remove() local
300 ret = pwmchip_remove(&p->chip); in brcmstb_pwm_remove()
301 clk_disable_unprepare(p->clk); in brcmstb_pwm_remove()
309 struct brcmstb_pwm *p = dev_get_drvdata(dev); in brcmstb_pwm_suspend() local
311 clk_disable(p->clk); in brcmstb_pwm_suspend()
318 struct brcmstb_pwm *p = dev_get_drvdata(dev); in brcmstb_pwm_resume() local
320 clk_enable(p->clk); in brcmstb_pwm_resume()