Lines Matching refs:ep93xx_pwm
36 struct ep93xx_pwm {
42 static inline struct ep93xx_pwm *to_ep93xx_pwm(struct pwm_chip *chip)
44 return container_of(chip, struct ep93xx_pwm, chip);
65 struct ep93xx_pwm *ep93xx_pwm = to_ep93xx_pwm(chip);
67 void __iomem *base = ep93xx_pwm->base;
75 writew(0x0, ep93xx_pwm->base + EP93XX_PWMx_ENABLE);
76 clk_disable_unprepare(ep93xx_pwm->clk);
84 ret = clk_prepare_enable(ep93xx_pwm->clk);
89 writew(0x1, ep93xx_pwm->base + EP93XX_PWMx_INVERT);
91 writew(0x0, ep93xx_pwm->base + EP93XX_PWMx_INVERT);
93 clk_disable_unprepare(ep93xx_pwm->clk);
98 writew(0x0, ep93xx_pwm->base + EP93XX_PWMx_ENABLE);
99 clk_disable_unprepare(ep93xx_pwm->clk);
110 ret = clk_prepare_enable(ep93xx_pwm->clk);
115 c = clk_get_rate(ep93xx_pwm->clk);
142 clk_disable_unprepare(ep93xx_pwm->clk);
148 ret = clk_prepare_enable(ep93xx_pwm->clk);
152 writew(0x1, ep93xx_pwm->base + EP93XX_PWMx_ENABLE);
167 struct ep93xx_pwm *ep93xx_pwm;
170 ep93xx_pwm = devm_kzalloc(&pdev->dev, sizeof(*ep93xx_pwm), GFP_KERNEL);
171 if (!ep93xx_pwm)
174 ep93xx_pwm->base = devm_platform_ioremap_resource(pdev, 0);
175 if (IS_ERR(ep93xx_pwm->base))
176 return PTR_ERR(ep93xx_pwm->base);
178 ep93xx_pwm->clk = devm_clk_get(&pdev->dev, "pwm_clk");
179 if (IS_ERR(ep93xx_pwm->clk))
180 return PTR_ERR(ep93xx_pwm->clk);
182 ep93xx_pwm->chip.dev = &pdev->dev;
183 ep93xx_pwm->chip.ops = &ep93xx_pwm_ops;
184 ep93xx_pwm->chip.npwm = 1;
186 ret = devm_pwmchip_add(&pdev->dev, &ep93xx_pwm->chip);