Lines Matching refs:tcbpwm
65 struct atmel_tcb_pwm_device *tcbpwm = pwm_get_chip_data(pwm); in atmel_tcb_pwm_set_polarity() local
67 tcbpwm->polarity = polarity; in atmel_tcb_pwm_set_polarity()
76 struct atmel_tcb_pwm_device *tcbpwm; in atmel_tcb_pwm_request() local
84 tcbpwm = devm_kzalloc(chip->dev, sizeof(*tcbpwm), GFP_KERNEL); in atmel_tcb_pwm_request()
85 if (!tcbpwm) in atmel_tcb_pwm_request()
90 devm_kfree(chip->dev, tcbpwm); in atmel_tcb_pwm_request()
94 pwm_set_chip_data(pwm, tcbpwm); in atmel_tcb_pwm_request()
95 tcbpwm->polarity = PWM_POLARITY_NORMAL; in atmel_tcb_pwm_request()
96 tcbpwm->duty = 0; in atmel_tcb_pwm_request()
97 tcbpwm->period = 0; in atmel_tcb_pwm_request()
98 tcbpwm->div = 0; in atmel_tcb_pwm_request()
108 tcbpwm->duty = in atmel_tcb_pwm_request()
111 tcbpwm->duty = in atmel_tcb_pwm_request()
114 tcbpwm->div = cmr & ATMEL_TC_TCCLKS; in atmel_tcb_pwm_request()
115 tcbpwm->period = __raw_readl(regs + ATMEL_TC_REG(group, RC)); in atmel_tcb_pwm_request()
125 tcbpwmc->pwms[pwm->hwpwm] = tcbpwm; in atmel_tcb_pwm_request()
133 struct atmel_tcb_pwm_device *tcbpwm = pwm_get_chip_data(pwm); in atmel_tcb_pwm_free() local
138 devm_kfree(chip->dev, tcbpwm); in atmel_tcb_pwm_free()
144 struct atmel_tcb_pwm_device *tcbpwm = pwm_get_chip_data(pwm); in atmel_tcb_pwm_disable() local
150 enum pwm_polarity polarity = tcbpwm->polarity; in atmel_tcb_pwm_disable()
160 if (tcbpwm->duty == 0) in atmel_tcb_pwm_disable()
203 struct atmel_tcb_pwm_device *tcbpwm = pwm_get_chip_data(pwm); in atmel_tcb_pwm_enable() local
209 enum pwm_polarity polarity = tcbpwm->polarity; in atmel_tcb_pwm_enable()
219 if (tcbpwm->duty == 0) in atmel_tcb_pwm_enable()
250 if (tcbpwm->duty != tcbpwm->period && tcbpwm->duty > 0) { in atmel_tcb_pwm_enable()
264 cmr |= (tcbpwm->div & ATMEL_TC_TCCLKS); in atmel_tcb_pwm_enable()
269 __raw_writel(tcbpwm->duty, regs + ATMEL_TC_REG(group, RA)); in atmel_tcb_pwm_enable()
271 __raw_writel(tcbpwm->duty, regs + ATMEL_TC_REG(group, RB)); in atmel_tcb_pwm_enable()
273 __raw_writel(tcbpwm->period, regs + ATMEL_TC_REG(group, RC)); in atmel_tcb_pwm_enable()
287 struct atmel_tcb_pwm_device *tcbpwm = pwm_get_chip_data(pwm); in atmel_tcb_pwm_config() local
358 tcbpwm->period = period; in atmel_tcb_pwm_config()
359 tcbpwm->div = i; in atmel_tcb_pwm_config()
360 tcbpwm->duty = duty; in atmel_tcb_pwm_config()
381 struct atmel_tcb_pwm_chip *tcbpwm; in atmel_tcb_pwm_probe() local
401 tcbpwm = devm_kzalloc(&pdev->dev, sizeof(*tcbpwm), GFP_KERNEL); in atmel_tcb_pwm_probe()
402 if (tcbpwm == NULL) { in atmel_tcb_pwm_probe()
407 tcbpwm->chip.dev = &pdev->dev; in atmel_tcb_pwm_probe()
408 tcbpwm->chip.ops = &atmel_tcb_pwm_ops; in atmel_tcb_pwm_probe()
409 tcbpwm->chip.of_xlate = of_pwm_xlate_with_flags; in atmel_tcb_pwm_probe()
410 tcbpwm->chip.of_pwm_n_cells = 3; in atmel_tcb_pwm_probe()
411 tcbpwm->chip.base = -1; in atmel_tcb_pwm_probe()
412 tcbpwm->chip.npwm = NPWM; in atmel_tcb_pwm_probe()
413 tcbpwm->tc = tc; in atmel_tcb_pwm_probe()
419 spin_lock_init(&tcbpwm->lock); in atmel_tcb_pwm_probe()
421 err = pwmchip_add(&tcbpwm->chip); in atmel_tcb_pwm_probe()
425 platform_set_drvdata(pdev, tcbpwm); in atmel_tcb_pwm_probe()
430 clk_disable_unprepare(tcbpwm->tc->slow_clk); in atmel_tcb_pwm_probe()
440 struct atmel_tcb_pwm_chip *tcbpwm = platform_get_drvdata(pdev); in atmel_tcb_pwm_remove() local
443 clk_disable_unprepare(tcbpwm->tc->slow_clk); in atmel_tcb_pwm_remove()
445 err = pwmchip_remove(&tcbpwm->chip); in atmel_tcb_pwm_remove()
449 atmel_tc_free(tcbpwm->tc); in atmel_tcb_pwm_remove()
463 struct atmel_tcb_pwm_chip *tcbpwm = dev_get_drvdata(dev); in atmel_tcb_pwm_suspend() local
464 void __iomem *base = tcbpwm->tc->regs; in atmel_tcb_pwm_suspend()
468 struct atmel_tcb_channel *chan = &tcbpwm->bkup[i]; in atmel_tcb_pwm_suspend()
480 struct atmel_tcb_pwm_chip *tcbpwm = dev_get_drvdata(dev); in atmel_tcb_pwm_resume() local
481 void __iomem *base = tcbpwm->tc->regs; in atmel_tcb_pwm_resume()
485 struct atmel_tcb_channel *chan = &tcbpwm->bkup[i]; in atmel_tcb_pwm_resume()