Lines Matching refs:intc

56 	struct s3c_irq_intc *intc;  member
90 struct s3c_irq_intc *intc = irq_data->intc; in s3c_irq_mask() local
91 struct s3c_irq_intc *parent_intc = intc->parent; in s3c_irq_mask()
96 mask = __raw_readl(intc->reg_mask); in s3c_irq_mask()
98 __raw_writel(mask, intc->reg_mask); in s3c_irq_mask()
118 struct s3c_irq_intc *intc = irq_data->intc; in s3c_irq_unmask() local
119 struct s3c_irq_intc *parent_intc = intc->parent; in s3c_irq_unmask()
123 mask = __raw_readl(intc->reg_mask); in s3c_irq_unmask()
125 __raw_writel(mask, intc->reg_mask); in s3c_irq_unmask()
137 struct s3c_irq_intc *intc = irq_data->intc; in s3c_irq_ack() local
140 __raw_writel(bitval, intc->reg_pending); in s3c_irq_ack()
141 if (intc->reg_intpnd) in s3c_irq_ack()
142 __raw_writel(bitval, intc->reg_intpnd); in s3c_irq_ack()
306 struct s3c_irq_intc *intc = irq_data->intc; in s3c_irq_demux() local
317 offset = (intc->domain->of_node) ? 32 : 0; in s3c_irq_demux()
337 static inline int s3c24xx_handle_intc(struct s3c_irq_intc *intc, in s3c24xx_handle_intc() argument
343 pnd = __raw_readl(intc->reg_intpnd); in s3c24xx_handle_intc()
348 if (!intc->domain->of_node) in s3c24xx_handle_intc()
358 offset = __raw_readl(intc->reg_intpnd + 4); in s3c24xx_handle_intc()
367 handle_domain_irq(intc->domain, intc_offset + offset, regs); in s3c24xx_handle_intc()
422 struct s3c_irq_intc *intc = h->host_data; in s3c24xx_irq_map() local
423 struct s3c_irq_data *irq_data = &intc->irqs[hw]; in s3c24xx_irq_map()
429 irq_data->intc = intc; in s3c24xx_irq_map()
432 parent_intc = intc->parent; in s3c24xx_irq_map()
450 if (parent_intc || intc->reg_pending == S3C2416_SRCPND2) in s3c24xx_irq_map()
482 parent_irq_data->sub_intc = intc; in s3c24xx_irq_map()
510 static void s3c24xx_clear_intc(struct s3c_irq_intc *intc) in s3c24xx_clear_intc() argument
518 reg_source = intc->reg_intpnd ? intc->reg_intpnd : intc->reg_pending; in s3c24xx_clear_intc()
527 __raw_writel(pend, intc->reg_pending); in s3c24xx_clear_intc()
528 if (intc->reg_intpnd) in s3c24xx_clear_intc()
529 __raw_writel(pend, intc->reg_intpnd); in s3c24xx_clear_intc()
541 struct s3c_irq_intc *intc; in s3c24xx_init_intc() local
547 intc = kzalloc(sizeof(struct s3c_irq_intc), GFP_KERNEL); in s3c24xx_init_intc()
548 if (!intc) in s3c24xx_init_intc()
551 intc->irqs = irq_data; in s3c24xx_init_intc()
554 intc->parent = parent; in s3c24xx_init_intc()
563 intc->reg_pending = base; in s3c24xx_init_intc()
564 intc->reg_mask = base + 0x08; in s3c24xx_init_intc()
565 intc->reg_intpnd = base + 0x10; in s3c24xx_init_intc()
571 intc->reg_pending = base + 0x18; in s3c24xx_init_intc()
572 intc->reg_mask = base + 0x1c; in s3c24xx_init_intc()
578 intc->reg_pending = base + 0x40; in s3c24xx_init_intc()
579 intc->reg_mask = base + 0x48; in s3c24xx_init_intc()
580 intc->reg_intpnd = base + 0x50; in s3c24xx_init_intc()
588 intc->reg_mask = base + 0xa4; in s3c24xx_init_intc()
589 intc->reg_pending = base + 0xa8; in s3c24xx_init_intc()
600 s3c24xx_clear_intc(intc); in s3c24xx_init_intc()
601 intc->domain = irq_domain_add_legacy(np, irq_num, irq_start, in s3c24xx_init_intc()
603 intc); in s3c24xx_init_intc()
604 if (!intc->domain) { in s3c24xx_init_intc()
612 return intc; in s3c24xx_init_intc()
615 kfree(intc); in s3c24xx_init_intc()
1164 struct s3c_irq_intc *intc = s3c_intc[ctrl_num]; in s3c24xx_irq_map_of() local
1165 struct s3c_irq_intc *parent_intc = intc->parent; in s3c24xx_irq_map_of()
1166 struct s3c_irq_data *irq_data = &intc->irqs[intc_hw]; in s3c24xx_irq_map_of()
1169 irq_data->intc = intc; in s3c24xx_irq_map_of()
1192 struct s3c_irq_intc *intc; in s3c24xx_irq_xlate_of() local
1205 intc = s3c_intc[intspec[0]]; in s3c24xx_irq_xlate_of()
1210 parent_intc = intc->parent; in s3c24xx_irq_xlate_of()
1212 irq_data = &intc->irqs[intspec[2]]; in s3c24xx_irq_xlate_of()
1215 parent_irq_data->sub_intc = intc; in s3c24xx_irq_xlate_of()
1248 struct s3c_irq_intc *intc; in s3c_init_intc_of() local
1272 intc = kzalloc(sizeof(struct s3c_irq_intc), GFP_KERNEL); in s3c_init_intc_of()
1273 if (!intc) in s3c_init_intc_of()
1276 intc->domain = domain; in s3c_init_intc_of()
1277 intc->irqs = kzalloc(sizeof(struct s3c_irq_data) * 32, in s3c_init_intc_of()
1279 if (!intc->irqs) { in s3c_init_intc_of()
1280 kfree(intc); in s3c_init_intc_of()
1285 intc->reg_pending = reg_base + ctrl->offset; in s3c_init_intc_of()
1286 intc->reg_mask = reg_base + ctrl->offset + 0x4; in s3c_init_intc_of()
1289 intc->parent = *(ctrl->parent); in s3c_init_intc_of()
1293 kfree(intc->irqs); in s3c_init_intc_of()
1294 kfree(intc); in s3c_init_intc_of()
1298 intc->reg_pending = reg_base + ctrl->offset; in s3c_init_intc_of()
1299 intc->reg_mask = reg_base + ctrl->offset + 0x08; in s3c_init_intc_of()
1300 intc->reg_intpnd = reg_base + ctrl->offset + 0x10; in s3c_init_intc_of()
1303 s3c24xx_clear_intc(intc); in s3c_init_intc_of()
1304 s3c_intc[i] = intc; in s3c_init_intc_of()