Linux驱动 2026年6月1日 3 分钟

客户端使用pinctrl子系统过程分析

涉及到的数据结构如下: 函数调用过程 really_probepinctrl_bind_pinsdev->pins…

涉及到的数据结构如下:

函数调用过程

really_probe
pinctrl_bind_pins
dev->pins = devm_kzalloc(dev, sizeof(*(dev->pins)), GFP_KERNEL);

    dev->pins->p = devm_pinctrl_get(dev);
                        pinctrl_get
                            create_pinctrl(dev);
                                ret = pinctrl_dt_to_map(p);

                                for_each_maps(maps_node, i, map) {
                                    ret = add_setting(p, map);
                                }

    dev->pins->default_state = pinctrl_lookup_state(dev->pins->p,
                PINCTRL_STATE_DEFAULT);         

将节点转化为map再将map转化为setting

现在来研究pinctrl_dt_to_map

上一篇 Pincontroller构造过程分析

本章主要讲解服务端设备树的处理过程 更具设备树进行平台设备驱动匹配 上述代码的作用就是给引脚一个编号,然后又给每个引脚一...

下一篇 GPIO子系统-基础概念

16.2 GPIO子系统重要概念 16.2.1    引入 要操作GPIO引脚,先把所用引...