Lines Matching refs:pmc

70 	struct at91_pmc *pmc = irq_data_get_irq_chip_data(d);  in pmc_irq_mask()  local
72 pmc_write(pmc, AT91_PMC_IDR, 1 << d->hwirq); in pmc_irq_mask()
77 struct at91_pmc *pmc = irq_data_get_irq_chip_data(d); in pmc_irq_unmask() local
79 pmc_write(pmc, AT91_PMC_IER, 1 << d->hwirq); in pmc_irq_unmask()
94 struct at91_pmc *pmc = irq_data_get_irq_chip_data(d); in pmc_irq_suspend() local
96 pmc->imr = pmc_read(pmc, AT91_PMC_IMR); in pmc_irq_suspend()
97 pmc_write(pmc, AT91_PMC_IDR, pmc->imr); in pmc_irq_suspend()
102 struct at91_pmc *pmc = irq_data_get_irq_chip_data(d); in pmc_irq_resume() local
104 pmc_write(pmc, AT91_PMC_IER, pmc->imr); in pmc_irq_resume()
122 struct at91_pmc *pmc = h->host_data; in pmc_irq_map() local
128 irq_set_chip_data(virq, pmc); in pmc_irq_map()
139 struct at91_pmc *pmc = d->host_data; in pmc_irq_domain_xlate() local
140 const struct at91_pmc_caps *caps = pmc->caps; in pmc_irq_domain_xlate()
162 struct at91_pmc *pmc = (struct at91_pmc *)data; in pmc_irq_handler() local
166 sr = pmc_read(pmc, AT91_PMC_SR) & pmc_read(pmc, AT91_PMC_IMR); in pmc_irq_handler()
171 generic_handle_irq(irq_find_mapping(pmc->irqdomain, n)); in pmc_irq_handler()
229 struct at91_pmc *pmc; in at91_pmc_init() local
236 pmc = kzalloc(sizeof(*pmc), GFP_KERNEL); in at91_pmc_init()
237 if (!pmc) in at91_pmc_init()
240 spin_lock_init(&pmc->lock); in at91_pmc_init()
241 pmc->regbase = regbase; in at91_pmc_init()
242 pmc->virq = virq; in at91_pmc_init()
243 pmc->caps = caps; in at91_pmc_init()
245 pmc->irqdomain = irq_domain_add_linear(np, 32, &pmc_irq_ops, pmc); in at91_pmc_init()
247 if (!pmc->irqdomain) in at91_pmc_init()
250 pmc_write(pmc, AT91_PMC_IDR, 0xffffffff); in at91_pmc_init()
251 if (request_irq(pmc->virq, pmc_irq_handler, in at91_pmc_init()
252 IRQF_SHARED | IRQF_COND_SUSPEND, "pmc", pmc)) in at91_pmc_init()
255 return pmc; in at91_pmc_init()
258 irq_domain_remove(pmc->irqdomain); in at91_pmc_init()
260 kfree(pmc); in at91_pmc_init()
392 struct at91_pmc *pmc; in of_at91_pmc_setup() local
406 pmc = at91_pmc_init(np, regbase, virq, caps); in of_at91_pmc_setup()
407 if (!pmc) in of_at91_pmc_setup()
414 clk_setup(childnp, pmc); in of_at91_pmc_setup()