Lines Matching refs:pwm

3  * drivers/pwm/pwm-pxa.c
18 #include <linux/pwm.h>
27 { "pxa25x-pwm", 0 },
28 { "pxa27x-pwm", HAS_SECONDARY_PWM },
29 { "pxa168-pwm", 0 },
30 { "pxa910-pwm", 0 },
60 static int pxa_pwm_config(struct pwm_chip *chip, struct pwm_device *pwm,
69 offset = pwm->hwpwm ? 0x10 : 0;
104 static int pxa_pwm_enable(struct pwm_chip *chip, struct pwm_device *pwm)
111 static void pxa_pwm_disable(struct pwm_chip *chip, struct pwm_device *pwm)
129 * code that this is a single channel pxa25x-pwm. Currently all devices are
133 { .compatible = "marvell,pxa250-pwm", .data = &pwm_id_table[0]},
134 { .compatible = "marvell,pxa270-pwm", .data = &pwm_id_table[0]},
135 { .compatible = "marvell,pxa168-pwm", .data = &pwm_id_table[0]},
136 { .compatible = "marvell,pxa910-pwm", .data = &pwm_id_table[0]},
154 struct pwm_device *pwm;
156 pwm = pwm_request_from_chip(pc, 0, NULL);
157 if (IS_ERR(pwm))
158 return pwm;
160 pwm->args.period = args->args[0];
162 return pwm;
168 struct pxa_pwm_chip *pwm;
178 pwm = devm_kzalloc(&pdev->dev, sizeof(*pwm), GFP_KERNEL);
179 if (pwm == NULL)
182 pwm->clk = devm_clk_get(&pdev->dev, NULL);
183 if (IS_ERR(pwm->clk))
184 return PTR_ERR(pwm->clk);
186 pwm->chip.dev = &pdev->dev;
187 pwm->chip.ops = &pxa_pwm_ops;
188 pwm->chip.base = -1;
189 pwm->chip.npwm = (id->driver_data & HAS_SECONDARY_PWM) ? 2 : 1;
192 pwm->chip.of_xlate = pxa_pwm_of_xlate;
193 pwm->chip.of_pwm_n_cells = 1;
197 pwm->mmio_base = devm_ioremap_resource(&pdev->dev, r);
198 if (IS_ERR(pwm->mmio_base))
199 return PTR_ERR(pwm->mmio_base);
201 ret = pwmchip_add(&pwm->chip);
207 platform_set_drvdata(pdev, pwm);
224 .name = "pxa25x-pwm",