Lines Matching full:jz4740
4 * JZ4740 platform PWM support
126 struct jz4740_pwm_chip *jz4740 = to_jz4740(pwm->chip); in jz4740_pwm_apply() local
178 regmap_write(jz4740->map, TCU_REG_TCNTc(pwm->hwpwm), 0); in jz4740_pwm_apply()
181 regmap_write(jz4740->map, TCU_REG_TDHRc(pwm->hwpwm), duty); in jz4740_pwm_apply()
184 regmap_write(jz4740->map, TCU_REG_TDFRc(pwm->hwpwm), period); in jz4740_pwm_apply()
187 regmap_update_bits(jz4740->map, TCU_REG_TCSRc(pwm->hwpwm), in jz4740_pwm_apply()
204 regmap_update_bits(jz4740->map, TCU_REG_TCSRc(pwm->hwpwm), in jz4740_pwm_apply()
207 regmap_update_bits(jz4740->map, TCU_REG_TCSRc(pwm->hwpwm), in jz4740_pwm_apply()
227 struct jz4740_pwm_chip *jz4740; in jz4740_pwm_probe() local
234 jz4740 = devm_kzalloc(dev, sizeof(*jz4740), GFP_KERNEL); in jz4740_pwm_probe()
235 if (!jz4740) in jz4740_pwm_probe()
238 jz4740->map = device_node_to_regmap(dev->parent->of_node); in jz4740_pwm_probe()
239 if (IS_ERR(jz4740->map)) { in jz4740_pwm_probe()
240 dev_err(dev, "regmap not found: %ld\n", PTR_ERR(jz4740->map)); in jz4740_pwm_probe()
241 return PTR_ERR(jz4740->map); in jz4740_pwm_probe()
244 jz4740->chip.dev = dev; in jz4740_pwm_probe()
245 jz4740->chip.ops = &jz4740_pwm_ops; in jz4740_pwm_probe()
246 jz4740->chip.npwm = info->num_pwms; in jz4740_pwm_probe()
247 jz4740->chip.base = -1; in jz4740_pwm_probe()
248 jz4740->chip.of_xlate = of_pwm_xlate_with_flags; in jz4740_pwm_probe()
249 jz4740->chip.of_pwm_n_cells = 3; in jz4740_pwm_probe()
251 platform_set_drvdata(pdev, jz4740); in jz4740_pwm_probe()
253 return pwmchip_add(&jz4740->chip); in jz4740_pwm_probe()
258 struct jz4740_pwm_chip *jz4740 = platform_get_drvdata(pdev); in jz4740_pwm_remove() local
260 return pwmchip_remove(&jz4740->chip); in jz4740_pwm_remove()
273 { .compatible = "ingenic,jz4740-pwm", .data = &jz4740_soc_info },
282 .name = "jz4740-pwm",
291 MODULE_DESCRIPTION("Ingenic JZ4740 PWM driver");
292 MODULE_ALIAS("platform:jz4740-pwm");