Lines Matching defs:tcu
11 #include <linux/mfd/ingenic-tcu.h>
90 struct ingenic_tcu *tcu;
99 tcu = kzalloc(sizeof(*tcu), GFP_KERNEL);
100 if (!tcu)
103 tcu->map = map;
106 if (irqs < 0 || irqs > ARRAY_SIZE(tcu->parent_irqs)) {
112 tcu->nb_parent_irqs = irqs;
114 tcu->domain = irq_domain_create_linear(of_fwnode_handle(np), 32, &irq_generic_chip_ops,
116 if (!tcu->domain) {
121 ret = irq_alloc_domain_generic_chips(tcu->domain, 32, 1, "TCU",
129 gc = irq_get_domain_generic_chip(tcu->domain, 0);
133 gc->private = tcu->map;
144 regmap_write(tcu->map, TCU_REG_TMSR, IRQ_MSK(32));
157 tcu->parent_irqs[i] = irq_of_parse_and_map(np, i);
158 if (!tcu->parent_irqs[i]) {
163 irq_set_chained_handler_and_data(tcu->parent_irqs[i],
165 tcu->domain);
172 irq_dispose_mapping(tcu->parent_irqs[i - 1]);
174 irq_domain_remove(tcu->domain);
176 kfree(tcu);
179 IRQCHIP_DECLARE(jz4740_tcu_irq, "ingenic,jz4740-tcu", ingenic_tcu_irq_init);
180 IRQCHIP_DECLARE(jz4725b_tcu_irq, "ingenic,jz4725b-tcu", ingenic_tcu_irq_init);
181 IRQCHIP_DECLARE(jz4760_tcu_irq, "ingenic,jz4760-tcu", ingenic_tcu_irq_init);
182 IRQCHIP_DECLARE(jz4770_tcu_irq, "ingenic,jz4770-tcu", ingenic_tcu_irq_init);
183 IRQCHIP_DECLARE(x1000_tcu_irq, "ingenic,x1000-tcu", ingenic_tcu_irq_init);