讯为4418GPIO初始化过程

4418 GPIO口初始化过程

1,先从E:\iTOP4418\linux\kernel\kernel-3.4.39\init\mian.c文件找到start_kernel函数。

讯为4418GPIO初始化过程_第1张图片

里面的init_IRQ();函数

 

2,找到E:\iTOP4418\linux\kernel\kernel-3.4.39\arch\arm\kernel\irq.c文件里的void __init init_IRQ(void)

3,在E:\iTOP4418\linux\kernel\kernel-3.4.39\arch\arm\mach-s5p4418\cpu.c文件中找到MACHINE_START(S5P4418, CFG_SYS_CPU_NAME)结构体初始化

讯为4418GPIO初始化过程_第2张图片

看到init_irq指向的是nxp_cpu_init_irq这个函数。

4,在E:\iTOP4418\linux\kernel\kernel-3.4.39\arch\arm\mach-s5p4418\irq.c里找到nxp_cpu_init_irq函数。

讯为4418GPIO初始化过程_第3张图片

调用了gpio_init函数对IO口进行初始化,下面是指定的宏定义

讯为4418GPIO初始化过程_第4张图片

5,在E:\iTOP4418\linux\kernel\kernel-3.4.39\arch\arm\mach-s5p4418\irq.c里找到static void __init gpio_init(void __iomem *base, unsigned intirq_start,u32 irq_sources, u32 resume_sources);

讯为4418GPIO初始化过程_第5张图片

在此函数中对IO口初始化并进申请虚拟地址

 

你可能感兴趣的:(linux)