警告メッセージ

Howtoは、Armadilloシリーズを有効に活用するための参考資料です。使用ソフトウェアのバージョンなど諸条件の差異によって、記載内容と実際の動作が異なる場合があります。また、すべての機能検証や長期の動作試験を行ったものではありませんので、必ずご使用目的に適合した検証・試験を行ってください。

Howto : Armadillo-640: UART5を利用する

対象製品: Armadillo-640

Armadillo-640の標準イメージではシリアルポートとして次のUARTが有効になっています。

シリアルインターフェース デバイスファイル 端子
UART1 /dev/ttymxc0 CON9_3,CON9_5
UART3 /dev/ttymxc2 CON3

一方、CON9_4,CON9_6に配置されたUART5を有効にするにはDevice Tree と Device Treeが参照するヘッダファイルを変更する必要があります。

以下に変更差分を示します。

  • linux-4.14-at/arch/arm/boot/dts/armadillo-640.dts
diff --git a/arch/arm/boot/dts/armadillo-640.dts b/arch/arm/boot/dts/armadillo-640.dts
index 53e2e09ea126..65dd0ce6bdf2 100644
--- a/arch/arm/boot/dts/armadillo-640.dts
+++ b/arch/arm/boot/dts/armadillo-640.dts
@@ -107,6 +107,12 @@
        status = "okay";
 };

+&uart5 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_uart5>;
+       status = "okay";
+};
+
 &usdhc1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_usdhc1>;
@@ -146,6 +152,13 @@
                >;
        };

+       pinctrl_uart5: uart5grp {
+               fsl,pins = <
+                        MX6UL_PAD_UART5_TX_DATA__UART5_DCE_TX 0x00008
+                        MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX 0x1b0b1
+               >;
+       };
+
        pinctrl_enet1: enet1grp {
                fsl,pins = <
                        MX6UL_PAD_GPIO1_IO06__ENET1_MDIO        0x0b808

  • linux-4.14-at/arch/arm/boot/dts/imx6ul-pinfunc.h
diff --git a/arch/arm/boot/dts/imx6ul-pinfunc.h b/arch/arm/boot/dts/imx6ul-pinfunc.h
index 0034eeb84542..292e562ea591 100644
--- a/arch/arm/boot/dts/imx6ul-pinfunc.h
+++ b/arch/arm/boot/dts/imx6ul-pinfunc.h
@@ -287,7 +287,7 @@
 #define MX6UL_PAD_UART5_TX_DATA__I2C2_SCL              0x00bc 0x0348 0x05ac 2 2
 #define MX6UL_PAD_UART5_TX_DATA__CSI_DATA14            0x00bc 0x0348 0x0000 3 0
 #define MX6UL_PAD_UART5_TX_DATA__CSU_CSU_ALARM_AUT00   0x00bc 0x0348 0x0000 4 0
-#define MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX          0x00c0 0x034c 0x0644 0 5
+#define MX6UL_PAD_UART5_RX_DATA__UART5_DCE_RX          0x00c0 0x034c 0x0644 0 7
 #define MX6UL_PAD_UART5_RX_DATA__UART5_DTE_TX          0x00c0 0x034c 0x0000 0 0
 #define MX6UL_PAD_UART5_RX_DATA__ENET2_COL             0x00c0 0x034c 0x0000 1 0
 #define MX6UL_PAD_UART5_RX_DATA__I2C2_SDA              0x00c0 0x034c 0x05b0 2 2

dtsを変更した後は、製品マニュアルの「ビルド手順」内の「Linux カーネルをビルドする」に従って dtbをビルドしてください。

できあがったarmadillo-640.dtbを Armadilloのルートファイルシステム内の /boot/a640.dtb として保存し再起動すると、次のUARTが有効になります。

シリアルインターフェース デバイスファイル 端子
UART5 /dev/ttymxc4 CON9_4,CON9_6