ttyのハードウェア制御RTS

ttyのハードウェア制御RTS

外部RS485トランシーバに接続されたRTSピンを持つUARTがあるため、RTSピンを指定するとトランシーバが転送モードに設定されます。 RTS信号を使用するようにシリアルポートを設定すると、ユーザー空間でピンを手動で切り替える必要はないと思いました。ポート(ttyS1)を設定するときにstruct termios options使用しますoptions.c_cflag |= CRTSCTSが、関連するピンには影響しません。私はカーネル4.14を使用しています(しかし4.16/17に移動できます)。

どんなアイデアがありますか?

答え1

問題は、デバイスツリーが関連するUARTで使用するRTSピンとCTSピンを正しく設定しないことです。デバイスツリーには次のコンテンツを含める必要があります。

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

ピンは以前に適切に定義されていました。

関連情報