自己也简单总结下,方便下次写
1.头文件
#include <linux/pinctrl/consumer.h>
2.四个指针
struct pinctrl* pintrl;
struct pinctrl_state *pins_default;
//"default"标签的gpio,在驱动probe之前会设置成default对应的gpio状态
//pinctrl.c, 关键字default_state
struct pinctrl_state *rst_output0, *rst_output1;
//一个引脚一般两种电平,一般是高低,对应dtsi里两个标签
--------------------------
pdev是platform驱动匹配probe调用来的
//先获得一些指针,忽略一些检查指针有效的函数
pinctrl = devm_pinctrl_get(&pdev->dev);
pins_default = pinctrl_lookup_state(pinctrl1, "default");
rst_output0 = pinctrl_lookup_state(pinctrl1, "state_rst_output0");
rst_output1 = pinctrl_lookup_state(pinctrl1, "state_rst_output1");
//然后在需要设置高低的地方,使引脚电平生效,设置高或低
pinctrl_select_state(pinctrl, rst_output1);
pinctrl_select_state(pinctrl, rst_output0);
dtsi里面的,字符串名字对应起来,default这里没有设置
照着写