概述
1.系统框图
2. dts重要概念
~/Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
2.1 Pinctrl client devices
相当于GPIO/I2C等模块,是pinctrl客户,使用pinctrl系统的设备
声明自己要使用哪些引脚的哪些功能,怎么配置
2.2 Pin controller devices
pinctrl
复用引脚,配置引脚
2.3 例子
device {
pinctrl-names = "active", "idle";
pinctrl-0 = <&state_0_node_a>;
pinctrl-1 = <&state_1_node_a>, <&state_1_node_b>;
};
pincontroller {
... /* Standard DT properties for the device itself elided */
state_0_node_a {
...
};
state_1_node_a {
...
};
state_1_node_b {
...
};
}
解析:
- device有两种state
- 第0个state的名字是active,对应的引脚在state_0_node_a定义
- 第1个state的名字是idle,对应的引脚在state_1_node_a和state_1_node_b定义
- 比如UART设备,正常状态是active,休眠状态是idle,他们引脚配置不同
2.4 pinctrl-starfive例子
&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&uart3_pins>;
status = "okay";
};
uart3_pins: uart3-0 {
rx-pins {
pinmux = <GPIOMUX(13, GPO_LOW, GPO_DISABLE,
GPI_UART3_PAD_SIN)>;
bias-pull-up;
drive-strength = <14>;
input-enable;
input-schmitt-enable;
slew-rate = <0>;
};
tx-pins {
pinmux = <GPIOMUX(14, GPO_UART3_PAD_SOUT,
GPO_ENABLE, GPI_NONE)>;
bias-disable;
drive-strength = <35>;
input-disable;
input-schmitt-disable;
slew-rate = <0>;
};
};
最后
以上就是美好冬天为你收集整理的pinctrl学习笔记---概念介绍的全部内容,希望文章能够帮你解决pinctrl学习笔记---概念介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复