Lines Matching refs:intc

55 	struct s3c_irq_intc *intc;  member
89 struct s3c_irq_intc *intc = irq_data->intc; in s3c_irq_mask() local
90 struct s3c_irq_intc *parent_intc = intc->parent; in s3c_irq_mask()
95 mask = __raw_readl(intc->reg_mask); in s3c_irq_mask()
97 __raw_writel(mask, intc->reg_mask); in s3c_irq_mask()
117 struct s3c_irq_intc *intc = irq_data->intc; in s3c_irq_unmask() local
118 struct s3c_irq_intc *parent_intc = intc->parent; in s3c_irq_unmask()
122 mask = __raw_readl(intc->reg_mask); in s3c_irq_unmask()
124 __raw_writel(mask, intc->reg_mask); in s3c_irq_unmask()
136 struct s3c_irq_intc *intc = irq_data->intc; in s3c_irq_ack() local
139 __raw_writel(bitval, intc->reg_pending); in s3c_irq_ack()
140 if (intc->reg_intpnd) in s3c_irq_ack()
141 __raw_writel(bitval, intc->reg_intpnd); in s3c_irq_ack()
305 struct s3c_irq_intc *intc = irq_data->intc; in s3c_irq_demux() local
314 offset = irq_domain_get_of_node(intc->domain) ? 32 : 0; in s3c_irq_demux()
334 static inline int s3c24xx_handle_intc(struct s3c_irq_intc *intc, in s3c24xx_handle_intc() argument
340 pnd = __raw_readl(intc->reg_intpnd); in s3c24xx_handle_intc()
345 if (!irq_domain_get_of_node(intc->domain)) in s3c24xx_handle_intc()
355 offset = __raw_readl(intc->reg_intpnd + 4); in s3c24xx_handle_intc()
364 handle_domain_irq(intc->domain, intc_offset + offset, regs); in s3c24xx_handle_intc()
419 struct s3c_irq_intc *intc = h->host_data; in s3c24xx_irq_map() local
420 struct s3c_irq_data *irq_data = &intc->irqs[hw]; in s3c24xx_irq_map()
426 irq_data->intc = intc; in s3c24xx_irq_map()
429 parent_intc = intc->parent; in s3c24xx_irq_map()
447 if (parent_intc || intc->reg_pending == S3C2416_SRCPND2) in s3c24xx_irq_map()
477 parent_irq_data->sub_intc = intc; in s3c24xx_irq_map()
499 static void s3c24xx_clear_intc(struct s3c_irq_intc *intc) in s3c24xx_clear_intc() argument
507 reg_source = intc->reg_intpnd ? intc->reg_intpnd : intc->reg_pending; in s3c24xx_clear_intc()
516 __raw_writel(pend, intc->reg_pending); in s3c24xx_clear_intc()
517 if (intc->reg_intpnd) in s3c24xx_clear_intc()
518 __raw_writel(pend, intc->reg_intpnd); in s3c24xx_clear_intc()
530 struct s3c_irq_intc *intc; in s3c24xx_init_intc() local
536 intc = kzalloc(sizeof(struct s3c_irq_intc), GFP_KERNEL); in s3c24xx_init_intc()
537 if (!intc) in s3c24xx_init_intc()
540 intc->irqs = irq_data; in s3c24xx_init_intc()
543 intc->parent = parent; in s3c24xx_init_intc()
552 intc->reg_pending = base; in s3c24xx_init_intc()
553 intc->reg_mask = base + 0x08; in s3c24xx_init_intc()
554 intc->reg_intpnd = base + 0x10; in s3c24xx_init_intc()
560 intc->reg_pending = base + 0x18; in s3c24xx_init_intc()
561 intc->reg_mask = base + 0x1c; in s3c24xx_init_intc()
567 intc->reg_pending = base + 0x40; in s3c24xx_init_intc()
568 intc->reg_mask = base + 0x48; in s3c24xx_init_intc()
569 intc->reg_intpnd = base + 0x50; in s3c24xx_init_intc()
577 intc->reg_mask = base + 0xa4; in s3c24xx_init_intc()
578 intc->reg_pending = base + 0xa8; in s3c24xx_init_intc()
589 s3c24xx_clear_intc(intc); in s3c24xx_init_intc()
590 intc->domain = irq_domain_add_legacy(np, irq_num, irq_start, in s3c24xx_init_intc()
592 intc); in s3c24xx_init_intc()
593 if (!intc->domain) { in s3c24xx_init_intc()
601 return intc; in s3c24xx_init_intc()
604 kfree(intc); in s3c24xx_init_intc()
1153 struct s3c_irq_intc *intc = s3c_intc[ctrl_num]; in s3c24xx_irq_map_of() local
1154 struct s3c_irq_intc *parent_intc = intc->parent; in s3c24xx_irq_map_of()
1155 struct s3c_irq_data *irq_data = &intc->irqs[intc_hw]; in s3c24xx_irq_map_of()
1158 irq_data->intc = intc; in s3c24xx_irq_map_of()
1179 struct s3c_irq_intc *intc; in s3c24xx_irq_xlate_of() local
1192 intc = s3c_intc[intspec[0]]; in s3c24xx_irq_xlate_of()
1197 parent_intc = intc->parent; in s3c24xx_irq_xlate_of()
1199 irq_data = &intc->irqs[intspec[2]]; in s3c24xx_irq_xlate_of()
1202 parent_irq_data->sub_intc = intc; in s3c24xx_irq_xlate_of()
1235 struct s3c_irq_intc *intc; in s3c_init_intc_of() local
1259 intc = kzalloc(sizeof(struct s3c_irq_intc), GFP_KERNEL); in s3c_init_intc_of()
1260 if (!intc) in s3c_init_intc_of()
1263 intc->domain = domain; in s3c_init_intc_of()
1264 intc->irqs = kzalloc(sizeof(struct s3c_irq_data) * 32, in s3c_init_intc_of()
1266 if (!intc->irqs) { in s3c_init_intc_of()
1267 kfree(intc); in s3c_init_intc_of()
1272 intc->reg_pending = reg_base + ctrl->offset; in s3c_init_intc_of()
1273 intc->reg_mask = reg_base + ctrl->offset + 0x4; in s3c_init_intc_of()
1276 intc->parent = *(ctrl->parent); in s3c_init_intc_of()
1280 kfree(intc->irqs); in s3c_init_intc_of()
1281 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 + 0x08; in s3c_init_intc_of()
1287 intc->reg_intpnd = reg_base + ctrl->offset + 0x10; in s3c_init_intc_of()
1290 s3c24xx_clear_intc(intc); in s3c_init_intc_of()
1291 s3c_intc[i] = intc; in s3c_init_intc_of()