这里以7a1000上的gpio40为例进行讲解。
1 7a上gpio是如何申请的?
gpio的base为16,所以注意申请7a上的gpio时,要把gpio号加16.
即gpio_request(56, NULL);
2 7a上的中断如何申请?
同样以gpio40为例,参考7a1000的手册可以看到gpio40对应的hwirq为59,GPIO4~GPIO56连接到桥片APIC的hwirq[59]
GSI base为64,那么对应的GSI为:59+64=123.
struct irq_fwspec fwspec;
fwspec.fwnode = NULL;
fwspec.param[0] = 123;
fwspec.param_count = 1;
int irq=irq_create_fwspec_mapping(&fwspec); //中断映射
ret = request_irq(irq, ls_pcm_dma_irq, IRQF_SHARED,
"dma-read", substream); //中断申请