Lines Matching refs:pc
43 struct bcm2835_pwm *pc = to_bcm2835_pwm(chip); in bcm2835_pwm_request() local
46 value = readl(pc->base + PWM_CONTROL); in bcm2835_pwm_request()
49 writel(value, pc->base + PWM_CONTROL); in bcm2835_pwm_request()
56 struct bcm2835_pwm *pc = to_bcm2835_pwm(chip); in bcm2835_pwm_free() local
59 value = readl(pc->base + PWM_CONTROL); in bcm2835_pwm_free()
61 writel(value, pc->base + PWM_CONTROL); in bcm2835_pwm_free()
67 struct bcm2835_pwm *pc = to_bcm2835_pwm(chip); in bcm2835_pwm_config() local
68 unsigned long rate = clk_get_rate(pc->clk); in bcm2835_pwm_config()
72 dev_err(pc->dev, "failed to get clock rate\n"); in bcm2835_pwm_config()
79 dev_err(pc->dev, "period %d not supported, minimum %d\n", in bcm2835_pwm_config()
84 writel(duty_ns / scaler, pc->base + DUTY(pwm->hwpwm)); in bcm2835_pwm_config()
85 writel(period_ns / scaler, pc->base + PERIOD(pwm->hwpwm)); in bcm2835_pwm_config()
92 struct bcm2835_pwm *pc = to_bcm2835_pwm(chip); in bcm2835_pwm_enable() local
95 value = readl(pc->base + PWM_CONTROL); in bcm2835_pwm_enable()
97 writel(value, pc->base + PWM_CONTROL); in bcm2835_pwm_enable()
104 struct bcm2835_pwm *pc = to_bcm2835_pwm(chip); in bcm2835_pwm_disable() local
107 value = readl(pc->base + PWM_CONTROL); in bcm2835_pwm_disable()
109 writel(value, pc->base + PWM_CONTROL); in bcm2835_pwm_disable()
115 struct bcm2835_pwm *pc = to_bcm2835_pwm(chip); in bcm2835_set_polarity() local
118 value = readl(pc->base + PWM_CONTROL); in bcm2835_set_polarity()
125 writel(value, pc->base + PWM_CONTROL); in bcm2835_set_polarity()
142 struct bcm2835_pwm *pc; in bcm2835_pwm_probe() local
146 pc = devm_kzalloc(&pdev->dev, sizeof(*pc), GFP_KERNEL); in bcm2835_pwm_probe()
147 if (!pc) in bcm2835_pwm_probe()
150 pc->dev = &pdev->dev; in bcm2835_pwm_probe()
153 pc->base = devm_ioremap_resource(&pdev->dev, res); in bcm2835_pwm_probe()
154 if (IS_ERR(pc->base)) in bcm2835_pwm_probe()
155 return PTR_ERR(pc->base); in bcm2835_pwm_probe()
157 pc->clk = devm_clk_get(&pdev->dev, NULL); in bcm2835_pwm_probe()
158 if (IS_ERR(pc->clk)) { in bcm2835_pwm_probe()
159 dev_err(&pdev->dev, "clock not found: %ld\n", PTR_ERR(pc->clk)); in bcm2835_pwm_probe()
160 return PTR_ERR(pc->clk); in bcm2835_pwm_probe()
163 ret = clk_prepare_enable(pc->clk); in bcm2835_pwm_probe()
167 pc->chip.dev = &pdev->dev; in bcm2835_pwm_probe()
168 pc->chip.ops = &bcm2835_pwm_ops; in bcm2835_pwm_probe()
169 pc->chip.npwm = 2; in bcm2835_pwm_probe()
170 pc->chip.of_xlate = of_pwm_xlate_with_flags; in bcm2835_pwm_probe()
171 pc->chip.of_pwm_n_cells = 3; in bcm2835_pwm_probe()
173 platform_set_drvdata(pdev, pc); in bcm2835_pwm_probe()
175 ret = pwmchip_add(&pc->chip); in bcm2835_pwm_probe()
182 clk_disable_unprepare(pc->clk); in bcm2835_pwm_probe()
188 struct bcm2835_pwm *pc = platform_get_drvdata(pdev); in bcm2835_pwm_remove() local
190 clk_disable_unprepare(pc->clk); in bcm2835_pwm_remove()
192 return pwmchip_remove(&pc->chip); in bcm2835_pwm_remove()