|
您好!tronlong提供的最新的linux3.3内核已经对uart0和uart1做了rs485功能的支持,uart2默认为启动串口。如何想使能uart0和uart1 rs485的功能,只需在menuconfig将485使能。
1 Y- J' E" k/ A& B! {+ Z5 U1 j# | *** DaVinci Core Type *** | |
4 B4 @* k" T# a7 c( W+ W+ L | | [ ] DaVinci 644x based system | |
( s2 t8 L% i6 C0 q | | [ ] DaVinci 355 based system | |
4 B0 m( N0 X/ C$ B K | | [ ] DaVinci 646x based system | |# g7 ^6 m" l3 U- ?' v
| | [ ] DA830/OMAP-L137/AM17x based system | |# s" @2 w8 W/ y$ N1 f9 G2 b9 h
| | [*] DA850/OMAP-L138/AM18x based system | |1 P( ~( y1 c. L7 h9 S$ ?+ J
| | [ ] Enable UART1 flow control | |
- N5 v, }1 p. m6 P, k$ w | | [ ] Enable UART0 RS485 funcation | |
. Z5 V1 P9 I/ T | | [*] Enable UART1 RS485 funcation
& @7 R8 D# Q5 U. Z
3 G$ Z9 P! ~8 o* T; b. G想了解详细的功能实现,也可以查看8250.c文件里面的;
! l6 _# x- \4 f0 @void serial8250_tx_chars(struct uart_8250_port *up)
, f( v8 d- O& W* {& @ return;
2 N" U! {1 B! H8 N y }
0 Y* s1 ^& b1 c8 s6 g6 S& G8 L6 _
+#if 1# J; g/ }4 [* Z6 M' Z% x% @$ J" o
+ /* The funcation with RS485 flow control */
/ Q) @3 Q# A. k# `+ if (up->port.private_data) {6 X: a- i4 ~; O* U
+ struct serial8250_flow_ctrl *flow_ctrl_p;
8 e4 s0 @0 ]: C$ o; g+ flow_ctrl_p = up->port.private_data;. n: O" q/ p3 y
+
; T- c6 J, o, k& x+ if (flow_ctrl_p->gpio) {3 B5 ~3 B: V/ f8 A
+ gpio_set_value(flow_ctrl_p->gpio, 1);7 q9 |/ ?$ ], u5 C) t2 L+ ]) S
+ ndelay(50); /* Propagation delay >= 50ns */
# u" |2 ?* S' H7 F, H' g+ }. Z) W4 [% J. x6 e$ a4 P; w2 N
+ }
. S9 _6 e& G+ d# l$ Q+#endif
+ v7 P- G3 X; v5 a& I希望对您有帮助。
2 M9 y6 D: g2 i. B% E3 J" y |
|