gpio_request如何处理Linux上的GPIO号码到虚拟内存地址?

有一个问题,gpio_request需要一个GPIO号码,但是在内核中它需要一个地址来处理gpio,Linux如何实现这个呢?

在芯片规格上,如MSM8x60或任何SOC芯片规格,有一个内存映射显示哪个内存区域为GPIO。 但在内核驱动程序中,我们使用gpio号码来访问gpio。

我的问题是:1,芯片规格内存映射中的内存地址是否是物理地址? 2,在内核中,它使用虚拟地址,内核如何将gpio号码转换为虚拟地址?

谢谢!

亲切的问候Bill Wang

通常,在嵌入式系统中,整个地址是一个地址映射,该地址是虚拟的。

当使用gpio端口号时,相关的GPIO驱动程序或类似的东西可以将gpio端口号转换为虚拟地址,而MMU将定位到物理地址。