都知道“pin(管脚)”是什么东西(就不赘述了)。controller)就出现了。Project”所使用的kernel版本[4]。注2:本文很多的表述(特别是例子),都是引用kernel的document[5](写的很好,可以耐心看看)。pinctrl_desc结构中pins和npins来完成。driver自己的事情。groups在SoC系统中,有时需要将很多pin组合在一起,以实现特定的功能,例如SPI接口、I2C接口等。groups、每个groups包含哪些pins、等等。(类似数组的下标,个数为数组的大小)。get_group_name,获取指定group(由索引selector指定)的名称。get_group_pins,获取指定group的所有pins(由索引selector指定),结果保存在pins(指针数组)和num_pins(指针)中。map,具体可参考后面第3章、第4章的介绍。driver的时候直接copy然后rename即可)。driver自己知道,下同)。debug用的api,不再说明(用得着的时候,再研究也不迟)。multiplexing,简称为pinmux)。subsystem抽象出function的概念,用来表示I2C0、UART5等功能。pinmux_ops中的API就简单了:get_functions_count,获取系统中function的个数。get_function_name,获取指定function的名称。group(可以有多个)。group(group_selector)设置为指定的function(func_selector)。pin而不知道,导致奇怪的错误)。free,request的反操作。driver自己知道。pinctrl的时候的心情吧!)。(例如probe时),一声令下,将资源准备好。