Lines Matching refs:ipic
32 static struct ipic * primary_ipic;
518 static inline struct ipic * ipic_from_irq(unsigned int virq) in ipic_from_irq()
525 struct ipic *ipic = ipic_from_irq(d->irq); in ipic_unmask_irq() local
532 temp = ipic_read(ipic->regs, ipic_info[src].mask); in ipic_unmask_irq()
534 ipic_write(ipic->regs, ipic_info[src].mask, temp); in ipic_unmask_irq()
541 struct ipic *ipic = ipic_from_irq(d->irq); in ipic_mask_irq() local
548 temp = ipic_read(ipic->regs, ipic_info[src].mask); in ipic_mask_irq()
550 ipic_write(ipic->regs, ipic_info[src].mask, temp); in ipic_mask_irq()
561 struct ipic *ipic = ipic_from_irq(d->irq); in ipic_ack_irq() local
569 ipic_write(ipic->regs, ipic_info[src].ack, temp); in ipic_ack_irq()
580 struct ipic *ipic = ipic_from_irq(d->irq); in ipic_mask_irq_and_ack() local
587 temp = ipic_read(ipic->regs, ipic_info[src].mask); in ipic_mask_irq_and_ack()
589 ipic_write(ipic->regs, ipic_info[src].mask, temp); in ipic_mask_irq_and_ack()
592 ipic_write(ipic->regs, ipic_info[src].ack, temp); in ipic_mask_irq_and_ack()
603 struct ipic *ipic = ipic_from_irq(d->irq); in ipic_set_irq_type() local
645 vold = ipic_read(ipic->regs, IPIC_SECNR); in ipic_set_irq_type()
652 ipic_write(ipic->regs, IPIC_SECNR, vnew); in ipic_set_irq_type()
683 struct ipic *ipic = h->host_data; in ipic_host_map() local
685 irq_set_chip_data(virq, ipic); in ipic_host_map()
700 struct ipic * __init ipic_init(struct device_node *node, unsigned int flags) in ipic_init()
702 struct ipic *ipic; in ipic_init() local
710 ipic = kzalloc(sizeof(*ipic), GFP_KERNEL); in ipic_init()
711 if (ipic == NULL) in ipic_init()
714 ipic->irqhost = irq_domain_add_linear(node, NR_IPIC_INTS, in ipic_init()
715 &ipic_host_ops, ipic); in ipic_init()
716 if (ipic->irqhost == NULL) { in ipic_init()
717 kfree(ipic); in ipic_init()
721 ipic->regs = ioremap(res.start, resource_size(&res)); in ipic_init()
724 ipic_write(ipic->regs, IPIC_SICNR, 0x0); in ipic_init()
741 ipic_write(ipic->regs, IPIC_SICFR, temp); in ipic_init()
747 ipic_write(ipic->regs, IPIC_SERCR, temp); in ipic_init()
750 temp = ipic_read(ipic->regs, IPIC_SEMSR); in ipic_init()
757 ipic_write(ipic->regs, IPIC_SEMSR, temp); in ipic_init()
759 primary_ipic = ipic; in ipic_init()
762 ipic_write(ipic->regs, IPIC_SIMSR_H, 0); in ipic_init()
763 ipic_write(ipic->regs, IPIC_SIMSR_L, 0); in ipic_init()
768 return ipic; in ipic_init()
773 struct ipic *ipic = ipic_from_irq(virq); in ipic_set_priority() local
784 temp = ipic_read(ipic->regs, ipic_info[src].prio); in ipic_set_priority()
794 ipic_write(ipic->regs, ipic_info[src].prio, temp); in ipic_set_priority()
801 struct ipic *ipic = ipic_from_irq(virq); in ipic_set_highest_priority() local
805 temp = ipic_read(ipic->regs, IPIC_SICFR); in ipic_set_highest_priority()
811 ipic_write(ipic->regs, IPIC_SICFR, temp); in ipic_set_highest_priority()
826 struct ipic *ipic = primary_ipic; in ipic_enable_mcp() local
829 temp = ipic_read(ipic->regs, IPIC_SERMR); in ipic_enable_mcp()
831 ipic_write(ipic->regs, IPIC_SERMR, temp); in ipic_enable_mcp()
836 struct ipic *ipic = primary_ipic; in ipic_disable_mcp() local
839 temp = ipic_read(ipic->regs, IPIC_SERMR); in ipic_disable_mcp()
841 ipic_write(ipic->regs, IPIC_SERMR, temp); in ipic_disable_mcp()
885 struct ipic *ipic = primary_ipic; in ipic_suspend() local
887 ipic_saved_state.sicfr = ipic_read(ipic->regs, IPIC_SICFR); in ipic_suspend()
888 ipic_saved_state.siprr[0] = ipic_read(ipic->regs, IPIC_SIPRR_A); in ipic_suspend()
889 ipic_saved_state.siprr[1] = ipic_read(ipic->regs, IPIC_SIPRR_D); in ipic_suspend()
890 ipic_saved_state.simsr[0] = ipic_read(ipic->regs, IPIC_SIMSR_H); in ipic_suspend()
891 ipic_saved_state.simsr[1] = ipic_read(ipic->regs, IPIC_SIMSR_L); in ipic_suspend()
892 ipic_saved_state.sicnr = ipic_read(ipic->regs, IPIC_SICNR); in ipic_suspend()
893 ipic_saved_state.smprr[0] = ipic_read(ipic->regs, IPIC_SMPRR_A); in ipic_suspend()
894 ipic_saved_state.smprr[1] = ipic_read(ipic->regs, IPIC_SMPRR_B); in ipic_suspend()
895 ipic_saved_state.semsr = ipic_read(ipic->regs, IPIC_SEMSR); in ipic_suspend()
896 ipic_saved_state.secnr = ipic_read(ipic->regs, IPIC_SECNR); in ipic_suspend()
897 ipic_saved_state.sermr = ipic_read(ipic->regs, IPIC_SERMR); in ipic_suspend()
898 ipic_saved_state.sercr = ipic_read(ipic->regs, IPIC_SERCR); in ipic_suspend()
905 ipic_write(ipic->regs, IPIC_SIMSR_H, 0); in ipic_suspend()
906 ipic_write(ipic->regs, IPIC_SIMSR_L, 0); in ipic_suspend()
907 ipic_write(ipic->regs, IPIC_SEMSR, 0); in ipic_suspend()
908 ipic_write(ipic->regs, IPIC_SERMR, 0); in ipic_suspend()
916 struct ipic *ipic = primary_ipic; in ipic_resume() local
918 ipic_write(ipic->regs, IPIC_SICFR, ipic_saved_state.sicfr); in ipic_resume()
919 ipic_write(ipic->regs, IPIC_SIPRR_A, ipic_saved_state.siprr[0]); in ipic_resume()
920 ipic_write(ipic->regs, IPIC_SIPRR_D, ipic_saved_state.siprr[1]); in ipic_resume()
921 ipic_write(ipic->regs, IPIC_SIMSR_H, ipic_saved_state.simsr[0]); in ipic_resume()
922 ipic_write(ipic->regs, IPIC_SIMSR_L, ipic_saved_state.simsr[1]); in ipic_resume()
923 ipic_write(ipic->regs, IPIC_SICNR, ipic_saved_state.sicnr); in ipic_resume()
924 ipic_write(ipic->regs, IPIC_SMPRR_A, ipic_saved_state.smprr[0]); in ipic_resume()
925 ipic_write(ipic->regs, IPIC_SMPRR_B, ipic_saved_state.smprr[1]); in ipic_resume()
926 ipic_write(ipic->regs, IPIC_SEMSR, ipic_saved_state.semsr); in ipic_resume()
927 ipic_write(ipic->regs, IPIC_SECNR, ipic_saved_state.secnr); in ipic_resume()
928 ipic_write(ipic->regs, IPIC_SERMR, ipic_saved_state.sermr); in ipic_resume()
929 ipic_write(ipic->regs, IPIC_SERCR, ipic_saved_state.sercr); in ipic_resume()