我在网上看到一些关于gpio驱动的文章,里面有提到gpio_request,gpio_direction_input之类的函数。我的问题是,这些函数是内核提供的,还是要写驱动的人来实现?对于gpio相关的寄存器,到底应该以何种方式来访问和操作?
------解决方案--------------------
gpio_request,gpio_direction_input这些函数是内核实现的,用户可以在驱动程序中调用;
内核中有对gpio相关的寄存器访问的所有函数,但是都必须在驱动程序中才能够调用。
------解决方案--------------------
1. 请问这些函数的原型在内核中的什么位置,我如何知道内核到底提供了哪些函数可供用户调用?
每个系统不一样,在源代码里搜索吧
2. 不同的芯片寄存器的地址、操作方式可能都不相同,内核如何处理这些差异?
根据不同的驱动操作
3. 我还看到有些驱动里面使用ioremap来映射寄存器的地址,请问这些和gpio_direction_input之类的操作方式有什么关系?
ioremap是针对外设用的