原理图到代码 linux

这里以自己调试 wifi 为例,将自己学习到的东西记录下,以君正 x1000e halley2 为例

原理图

先看一个图

linux 原理图到代码-LMLPHP

这里是 halley2 平台 wifi 芯片的原理图,其中需要关注的其实就红框中的,记住这个名字

WL_WAKE_HOST
WL_REG_EN

接着要发现这个名字有什么用

linux 原理图到代码-LMLPHP

看这里,这个引脚分别对应 PC16,PC17

代码

这里的 PC16,PC17,就开始与代码上相对应了,在代码上一般就以 GPIO_PC(16),GPIO_PC(17)这样的宏来定义引脚。

当然,不同的平台会是不一样的名字,但基本规则是相似的,这时一般在 arch 目录下对应的平台中去找寻相关定义。比如这时候以 halley2 平台为例,就在 arch/xburst/soc-x1000/chip-x1000/halley2/halley2_v10 目录中。

#define GPIO_WIFI_RST_N         GPIO_PC(17)
#define GPIO_WIFI_WAKE          GPIO_PC(16)

这就是对应的定义,再看就是内核中如何定义这个 GPIO_PC 的

#define GPIO_PA(n)      (0*32 + n)
#define GPIO_PB(n)      (1*32 + n)
#define GPIO_PC(n)      (2*32 + n)
#define GPIO_PD(n)      (3*32 + n)
#define GPIO_PE(n)      (4*32 + n)
#define GPIO_PF(n)      (5*32 + n)

一般芯片提供商,会按这样的风格来定义具体的引脚,这种方式基本是通用的,其它的平台也可以类似这样来看。

总结

因为本身看过很多驱动的东西,但有些东西,可能因为太简单,不被关注,所以入门者就很难懂,也很难找到相关说明,就在这里记录一下吧。

01-08 15:06