码迷,mamicode.com
首页 > 其他好文 > 详细

am335x系统升级之kernel uart(七)

时间:2018-11-27 16:51:52      阅读:428      评论:0      收藏:0      [点我收藏+]

标签:bindings   就是   原理   输出   ati   需要   串口驱动   技术分享   document   

 板子上面有4个串口,默认的ttyS0用于系统的console

由于CPU自带的串口驱动默认已选上

需要做的事情就是:

第一:查看原理图,找出对应的uart1,uart2,uart3的引脚,通过cpu的数据手册编写其pin mux

第二:增加uart1 uart2 uart3的dts节点,有了uart0节点的样例,编写出其他结点不是太难的问题。

接下来:

第一步:引脚初始化,编写时一定要细心,有可能会有引脚初始化的冲突

uart1_pins: pinmux_uart1_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x980, PIN_INPUT_PULLUP | MUX_MODE1) /* uart1_rxd.uart1_rxd */
AM33XX_IOPAD(0x984, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* uart1_txd.uart1_txd */
>;
};

uart2_pins: pinmux_uart2_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x92c, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_txclk.uart2_rxd */
AM33XX_IOPAD(0x930, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_rxclk.uart2_txd */
>;
};

uart3_pins: pinmux_uart3_pins {
pinctrl-single,pins = <
AM33XX_IOPAD(0x934, PIN_INPUT_PULLUP | MUX_MODE1) /* mii1_rxd3.uart3_rxd */
AM33XX_IOPAD(0x938, PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd2.uart3_txd */
>;
};

第二:增加相应的uart结点:

&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_pins>;
status = "okay";
};

&uart2 {
pinctrl-names = "default";
pinctrl-0 = <&uart2_pins>;
status = "okay";
};

&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&uart3_pins>;
status = "okay";
};

 重新编写之后,测试可得如下输出

[ 0.374605] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 30, base_baud = 3000000) is a 8250
[ 1.033794] console [ttyS0] enabled
[ 1.038629] 48022000.serial: ttyS1 at MMIO 0x48022000 (irq = 31, base_baud = 3000000) is a 8250
[ 1.048685] 48024000.serial: ttyS2 at MMIO 0x48024000 (irq = 32, base_baud = 3000000) is a 8250
[ 1.058651] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 33, base_baud = 3000000) is a 8250

整个过程很简单。

 

如果想深入的了解其uart结点可查看,如下,有针对am335x serial的详细说明,

Documentation/devicetree/bindings/serial/omap_serial.txt 

几乎所有的驱动的编写方式,在内核的文档当中都有说明,但是需要开发人员本身具备一定的基础。

开发起来,有点儿像nodejs python一样,一切皆API的感觉。

 

如果想学习内核的uart驱动框图,通过下图可深入了解

技术分享图片

 

 

 

 

am335x系统升级之kernel uart(七)

标签:bindings   就是   原理   输出   ati   需要   串口驱动   技术分享   document   

原文地址:https://www.cnblogs.com/lianghong881018/p/10026511.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!