Lines Matching full:lpc32xx
32 struct lpc32xx_pwm_chip *lpc32xx = to_lpc32xx_pwm_chip(chip); in lpc32xx_pwm_config() local
36 c = clk_get_rate(lpc32xx->clk); in lpc32xx_pwm_config()
54 val = readl(lpc32xx->base + (pwm->hwpwm << 2)); in lpc32xx_pwm_config()
57 writel(val, lpc32xx->base + (pwm->hwpwm << 2)); in lpc32xx_pwm_config()
64 struct lpc32xx_pwm_chip *lpc32xx = to_lpc32xx_pwm_chip(chip); in lpc32xx_pwm_enable() local
68 ret = clk_prepare_enable(lpc32xx->clk); in lpc32xx_pwm_enable()
72 val = readl(lpc32xx->base + (pwm->hwpwm << 2)); in lpc32xx_pwm_enable()
74 writel(val, lpc32xx->base + (pwm->hwpwm << 2)); in lpc32xx_pwm_enable()
81 struct lpc32xx_pwm_chip *lpc32xx = to_lpc32xx_pwm_chip(chip); in lpc32xx_pwm_disable() local
84 val = readl(lpc32xx->base + (pwm->hwpwm << 2)); in lpc32xx_pwm_disable()
86 writel(val, lpc32xx->base + (pwm->hwpwm << 2)); in lpc32xx_pwm_disable()
88 clk_disable_unprepare(lpc32xx->clk); in lpc32xx_pwm_disable()
100 struct lpc32xx_pwm_chip *lpc32xx; in lpc32xx_pwm_probe() local
105 lpc32xx = devm_kzalloc(&pdev->dev, sizeof(*lpc32xx), GFP_KERNEL); in lpc32xx_pwm_probe()
106 if (!lpc32xx) in lpc32xx_pwm_probe()
110 lpc32xx->base = devm_ioremap_resource(&pdev->dev, res); in lpc32xx_pwm_probe()
111 if (IS_ERR(lpc32xx->base)) in lpc32xx_pwm_probe()
112 return PTR_ERR(lpc32xx->base); in lpc32xx_pwm_probe()
114 lpc32xx->clk = devm_clk_get(&pdev->dev, NULL); in lpc32xx_pwm_probe()
115 if (IS_ERR(lpc32xx->clk)) in lpc32xx_pwm_probe()
116 return PTR_ERR(lpc32xx->clk); in lpc32xx_pwm_probe()
118 lpc32xx->chip.dev = &pdev->dev; in lpc32xx_pwm_probe()
119 lpc32xx->chip.ops = &lpc32xx_pwm_ops; in lpc32xx_pwm_probe()
120 lpc32xx->chip.npwm = 1; in lpc32xx_pwm_probe()
121 lpc32xx->chip.base = -1; in lpc32xx_pwm_probe()
123 ret = pwmchip_add(&lpc32xx->chip); in lpc32xx_pwm_probe()
130 val = readl(lpc32xx->base + (lpc32xx->chip.pwms[0].hwpwm << 2)); in lpc32xx_pwm_probe()
132 writel(val, lpc32xx->base + (lpc32xx->chip.pwms[0].hwpwm << 2)); in lpc32xx_pwm_probe()
134 platform_set_drvdata(pdev, lpc32xx); in lpc32xx_pwm_probe()
141 struct lpc32xx_pwm_chip *lpc32xx = platform_get_drvdata(pdev); in lpc32xx_pwm_remove() local
144 for (i = 0; i < lpc32xx->chip.npwm; i++) in lpc32xx_pwm_remove()
145 pwm_disable(&lpc32xx->chip.pwms[i]); in lpc32xx_pwm_remove()
147 return pwmchip_remove(&lpc32xx->chip); in lpc32xx_pwm_remove()
158 .name = "lpc32xx-pwm",
166 MODULE_ALIAS("platform:lpc32xx-pwm");
168 MODULE_DESCRIPTION("LPC32XX PWM Driver");