製品機能

本章では、Armadillo-IoT ゲートウェイ G4で利用できる各種機能の仕様について説明します。

11.1. SDホスト

Armadillo-IoT ゲートウェイ G4のSDホストは、i.MX 8M PlusのuSDHC(Ultra Secured Digital Host Controller)を利用しています。

Armadillo-IoT ゲートウェイ G4では、SDインターフェース(CON1)がuSDHC2を利用しています。

機能
  • カードタイプ: microSD/microSDHC/microSDXC/microSDIO
  • バス幅: 1bit or 4bit
  • スピードモード: Default Speed(26MHz), High Speed(52MHz), UHS-I (50MHz)
  • カードディテクトサポート
[ティップ]

スピードモードがUHS-Iモードで動作した場合、 VCCI ClassB規格準拠のため、SDカードの対応スピードがDDR50(最大クロック50MHz)に制限されます。

デバイスファイル
  • /dev/mmcblk1
関連するソースコード
  • drivers/mmc/host/sdhci-esdhc-imx.c
  • drivers/mmc/host/sdhci-of-esdhc.c
Device Treeドキュメント
  • Documentation/devicetree/bindings/mmc/fsl-imx-esdhc.yaml
  • Documentation/devicetree/bindings/mmc/mmc-controller.yaml
カーネルコンフィギュレーション
Device Drivers  --->
  <*> MMC/SD/SDIO card support  --->                          <MMC>
    <*>   MMC block device driver                       <MMC_BLOCK>
    (32)    Number of minors per block device    <MMC_BLOCK_MINORS>
          *** MMC/SD/SDIO Host Controller Drivers ***
    <*>   Secure Digital Host Controller Interface support
                                                        <MMC_SDHCI>
    <*>     SDHCI platform and OF driver helper   <MMC_SDHCI_PLTFM>
    <*>       SDHCI OF support for the Freescale eSDHC controller
                                               <MMC_SDHCI_OF_ESDHC>
    <*>       SDHCI support for the Freescale eSDHC/uSDHC i.MX controller support
                                              <MMC_SDHCI_ESDHC_IMX>

11.2. Ethernet

Armadillo-IoT ゲートウェイ G4のEthernet(LAN)は、i.MX 8M PlusのENET(Ethernet MAC)およびENET_QOS(Ethernet Quality Of Service)を利用しています。

Armadillo-IoT ゲートウェイ G4では、LANインターフェース1(CON3)がENETを、LANインターフェース2(CON2)がENET_QOS利用しています。

[警告]

LANインターフェース2(CON2)は10Mbps(10BASE-T)に非対応です。10Mbpsで通信を行う場合は、LANインターフェース1(CON3)をご利用ください。

機能
  • 通信速度: 1000Mbps(1000BASE-T), 100Mbps(100BASE-TX), 10Mbps(10BASE-T)
  • 通信モード: Full-Duplex(全二重), Half-Duplex(半二重) [9]
  • Auto Negotiationサポート
  • キャリア検知サポート
  • リンク検出サポート
関連するソースコード
  • drivers/net/ethernet/freescale/fec_main.c
  • drivers/net/ethernet/stmicro/stmmac/dwmac-imx.c
  • drivers/net/phy/micrel.c
  • drivers/net/mdio/of_mdio.c
Device Treeドキュメント
  • Documentation/devicetree/bindings/net/fsl-fec.txt
  • Documentation/devicetree/bindings/net/imx-dwmac.txt
  • Documentation/devicetree/bindings/net/micrel-ksz90x1.txt
  • Documentation/devicetree/bindings/net/net/ethernet-phy.yaml
ネットワークデバイス
  • eth0 (LANインターフェース1)
  • eth1 (LANインターフェース2)
カーネルコンフィギュレーション
Device Drivers  --->
  [*] Network device support  --->                     <NETDEVICES>
    [*]   Ethernet driver support  --->                  <ETHERNET>
      [*]   Freescale devices                <NET_VENDOR_FREESCALE>
      <*>     FEC ethernet controller (of ColdFire and some i.MX CPUs)
                                                              <FEC>
      [*]   STMicroelectronics devices         <NET_VENDOR_STMICRO>
      <*>     STMicroelectronics Multi-Gigabit Ethernet driver
                                                       <STMMAC_ETH>
      <*>       STMMAC Platform bus support       <STMMAC_PLATFORM>
      <*>         Generic driver for DWMAC          <DWMAC_GENERIC>
      <*>         NXP IMX8 DWMAC support               <DWMAC_IMX8>

    -*-   PHY Device support and infrastructure  --->      <PHYLIB>
      [*]   Support LED triggers for tracking link state
                                                  <LED_TRIGGER_PHY>
      <*>   Micrel PHYs                                <MICREL_PHY>

11.3. USBホスト

Armadillo-IoT ゲートウェイ G4のUSBホストは、i.MX 8M PlusのUSB(Universal Serial Bus Controller)およびUSB_PHY(Universal Serial Bus PHY)を利用しています。

Armadillo-IoT ゲートウェイ G4では、USBインターフェース(CON4)がUSB1を利用しています。USB2には「USBハブ」に示すUSB2422が接続されています。

機能
  • USB specification rev 3.0準拠
  • xHCI(eXtensible Host Controller Interface)互換
  • 転送レート: Super-speed(5 Gbps), high-speed(480 Mbps), full-speed(12 Mbps), low-speed(1.5 Mbps)
デバイスファイル
  • メモリデバイスの場合は、デバイスを認識した順番で/dev/sdN (Nは’a'からの連番)となります。
  • I/Oデバイスの場合は、ファンクションに応じたデバイスファイルとなります。
関連するソースコード
  • drivers/usb/dwc3/dwc3-imx8mp.c
  • drivers/phy/freescale/phy-fsl-imx8mq-usb.c
Device Treeドキュメント
  • Documentation/devicetree/bindings/usb/dwc3-imx8mp.txt
  • Documentation/devicetree/bindings/phy/fsl,imx8mq-usb-phy.txt
カーネルコンフィギュレーション
Device Drivers  --->
  [*] USB support  --->                               <USB_SUPPORT>
    <*>   Support for Host-side USB                           <USB>
          *** USB Host Controller Drivers ***
    <*>   xHCI HCD (USB 3.0) support                 <USB_XHCI_HCD>
    -*-     Generic xHCI driver for a platform device
                                                <USB_XHCI_PLATFORM>
    <*>   DesignWare USB3 DRD Core Support               <USB_DWC3>
            DWC3 Mode Selection (Dual Role mode)  --->
                                               <USB_DWC3_DUAL_ROLE>
    <*>     NXP iMX8MP Platform                   <USB_DWC3_IMX8MP>
  PHY Subsystem  --->
    -*- PHY Core                                      <GENERIC_PHY>
    <*> Freescale i.MX8M USB3 PHY              <PHY_FSL_IMX8MQ_USB>

11.4. USBハブ

Armadillo-IoT ゲートウェイ G4には、Microchip製USB2422が搭載されています。USB2422は、「CON11、CON12 (拡張インターフェース)」に接続されています。

機能
  • USB specification rev 2.0準拠
  • 転送レート: high-speed(480 Mbps), full-speed(12 Mbps), low-speed(1.5 Mbps)
関連するソースコード
  • drivers/usb/misc/usb251xb.c
Device Treeドキュメント
  • Documentation/devicetree/bindings/usb/usb251xb.txt
カーネルコンフィギュレーション
Device Drivers  --->
  [*] USB support  --->                               <USB_SUPPORT>
          *** USB Miscellaneous drivers ***
    <*>   USB251XB Hub Controller Configuration Driver
                                                 <USB_HUB_USB251XB>

11.5. UART

Armadillo-IoT ゲートウェイ G4のUARTは、i.MX 8M PlusのUART(Universal Asynchronous Receiver/Transmitter)を利用しています。

Armadillo-IoT ゲートウェイ G4では、USBシリアル変換IC(CP2102N/Silicon Labs)経由でUART2に接続されています。

フォーマット
  • データビット長: 7 or 8ビット
  • ストップビット長: 1 or 2ビット
  • パリティ: 偶数 or 奇数 or なし
  • フロー制御: CTS/RTS or XON/XOFF or なし
  • 最大ボーレート:4Mbps
[警告]

USBコンソールインターフェース(CON6)は4Mbpsで利用することができません。USBシリアル変換IC(CP2102N/Silicon Labs)の最大ボーレートが3Mbpsである為です。

関連するソースコード
  • drivers/tty/serial/imx.c
  • drivers/tty/serial/imx_earlycon.c
Device Treeドキュメント
  • Documentation/devicetree/bindings/serial/fsl-imx-uart.yaml
デバイスファイル
シリアルインターフェース デバイスファイル

UART1

/dev/ttymxc0

UART2

/dev/ttymxc1

カーネルコンフィギュレーション
Device Drivers  --->
  Character devices  --->
    [*] Enable TTY                                            <TTY>
        Serial drivers  --->
          <*> IMX serial port support                  <SERIAL_IMX>
          <*>   Console on IMX serial port     <SERIAL_IMX_CONSOLE>
          [*] Earlycon on IMX serial port     <SERIAL_IMX_EARLYCON>

11.6. HDMI

Armadillo-IoT ゲートウェイ G4のHDMIは、i.MX 8M PlusのHDMI TX Controller、HDMI TX PHY、HDMI TX BLK_CTRL、HTX_PVI(HDMI TX Parallel Video Interface)およびLCDIF(LCD Interface)を利用しています。LCDIFは、LCDIF3を利用します。

Armadillo-IoT ゲートウェイ G4は、HDMI対応ディスプレイへの画像出力及び、音声出力をサポートしています。 Linuxでは、それぞれDRM(Direct Rendering Manager)デバイス [10]、ALSA(Advanced Linux Sound Architecture)デバイスとして利用することができます。

機能(画像出力)
  • 最大解像度: 4096x2160ピクセル
  • 最大ドットクロック: 297MHz
  • カラーフォーマット: RGB888(24bit)
  • 走査方式: プログレッシブ
[警告]

上記を満していても、画像出力できない場合があります。次のVIC [11] は非対応である為、画像出力できません。

  • DAR(Display Aspect Ratio)が64 : 27または256 : 135のVIC
機能(音声出力)
  • サンプリング周波数: 32kHz, 44.1kHz, 48kHz, 88.2kHz, 96kHz, 176.4kHz, 192kHz
  • チャンネル数: 2
  • フォーマット: Signed 24/32 bit, Little-endian
デバイスファイル
  • /dev/dri/card1 (DRM)
  • /dev/fb0 (フレームバッファ)
  • hw:0 (ALSA)
[ティップ]

フレームバッファデバイスは「LVDS」と共通です。

sysfs DRMクラスディレクトリ
  • /sys/class/drm/card1-HDMI-A-1
関連するソースコード
  • drivers/gpu/drm/imx/dw_hdmi-imx.c
  • drivers/phy/freescale/phy-fsl-samsung-hdmi.c
  • drivers/clk/imx/clk-blk-ctrl.c
  • drivers/gpu/drm/imx/imx8mp-hdmi-pavi.c
  • drivers/gpu/imx/lcdifv3/lcdifv3-common.c
  • sound/soc/fsl/imx-cdnhdmi.c
  • sound/soc/fsl/fsl_aud2htx.c
Device Treeドキュメント
  • Documentation/devicetree/bindings/phy/fsl,samsung-hdmi-phy.yaml
  • Documentation/devicetree/bindings/sound/imx-audio-cdnhdmi.txt
  • Documentation/devicetree/bindings/sound/fsl,aud2htx.txt
カーネルコンフィギュレーション
Device Drivers  --->
  Graphics support  --->
    <*> i.MX LCDIFV3 core support                <IMX_LCDIFV3_CORE>
    -*- NXP i.MX8MP HDMI Audio Video (PVI/PAI)   <IMX8MP_HDMI_PAVI>
    <*> Freescale i.MX DRM HDMI                      <DRM_IMX_HDMI>
  -*- Common Clock Framework  --->                     <COMMON_CLK>
    <*>   IMX8MP CCM Clock Driver                      <CLK_IMX8MP>
  <*> Sound card support  --->                              <SOUND>
    <*>   Advanced Linux Sound Architecture  --->             <SND>
      <*>   ALSA for SoC audio support  --->              <SND_SOC>
        SoC Audio for Freescale CPUs  --->
          <*> SoC Audio support for i.MX boards with CDN HDMI port
                                              <SND_SOC_IMX_CDNHDMI>
  PHY Subsystem  --->
    -*- AUDIO TO HDMI TX module support       <SND_SOC_FSL_AUD2HTX>
    <*> Samsung HDMI PHY support             <PHY_SAMSUNG_HDMI_PHY>
[ティップ]

以下のコマンドを実行することで映像出力の信号を停止することができます。

[armadillo ~]# echo 1 > /sys/class/graphics/fb0/blank

映像出力を行いたい場合は以下のコマンドを実行します。

[armadillo ~]# echo 0 > /sys/class/graphics/fb0/blank

11.7. LVDS

Armadillo-IoT ゲートウェイ G4のLVDSは、i.MX 8M PlusのLDB(LVDS Display Bridge)およびLCDIF(LCD Interface)を利用しています。LCDIFは、LCDIF2を利用します。

Armadillo-IoT ゲートウェイ G4では、LVDSインターフェース(CON9)がLVDS0を利用しています。

Linuxでは、画像出力をDRM(Direct Rendering Manager)デバイス [12]として利用することができます。

機能
  • 最大解像度: 1366x768p60
  • 最大ピクセルクロック: 80MHz
  • レーン数: 4(データ), 1(クロック)
  • カラーフォーマット: RGB666(18bit), RGB888(24bit)
  • カラーマッピング: JEIDA, VESA
デバイスファイル
  • /dev/dri/card1 (DRM)
  • /dev/fb0 (フレームバッファ)
[ティップ]

フレームバッファデバイスは「HDMI」と共通です。

sysfs DRMクラスディレクトリ
  • /sys/class/drm/card1-LVDS-1
関連するソースコード
  • drivers/gpu/drm/imx/imx8mp-ldb.c
  • drivers/phy/freescale/phy-fsl-imx8mp-lvds.c
  • drivers/gpu/imx/lcdifv3/lcdifv3-common.c
Device Treeドキュメント
  • Documentation/devicetree/bindings/display/imx/ldb.txt
  • Documentation/devicetree/bindings/phy/fsl,imx8mp-lvds-phy.yaml
  • Documentation/devicetree/bindings/display/panel/lvds.yaml
カーネルコンフィギュレーション
Device Drivers  --->
  Graphics support  --->
    <*> i.MX LCDIFV3 core support                <IMX_LCDIFV3_CORE>
    <*> DRM Support for Freescale i.MX                    <DRM_IMX>
    <*>   Support for i.MX8mp LVDS displays        <DRM_IMX8MP_LDB>
  PHY Subsystem  --->
    <*> Freescale i.MX8MP LVDS PHY            <PHY_FSL_IMX8MP_LVDS>

11.8. MIPI CSI-2

Armadillo-IoT ゲートウェイ G4のMIPI CSI-2は、i.MX 8M PlusのMIPI_CSI(MIPI CSI Host Controller)を利用しています。

Armadillo-IoT ゲートウェイ G4では、MIPI-CSI インターフェース(CON10)がMIPI_CSI1を利用しています。

Linuxでは、カメラ [13] からの画像入力をV4L2(Video4Linux2)デバイスとして利用することができます。

機能
  • MIPI D-PHY specification V1.2準拠
  • MIPI CSI2 Specification V1.3準拠(C-PHY featureを除く)
  • レーン数: 2(データ), 1(クロック)
  • 最大ピクセルクロック: 400MHz
  • データレート: 80Mbps - 1.5Gbps(1レーンあたり)
  • カラーフォーマット(YUV): YUV420 8/10bit, YUV420 8bit Legacy, YUV420 8/10bit CSPS, YUV422 8/10bit
  • カラーフォーマット(RGB): RGB565, RGB666, RGB888
  • カラーフォーマット(RAW): RAW6, RAW7, RAW8, RAW10, RAW12, RAW14
デバイスファイル
  • /dev/video2 [14]
関連するソースコード
  • drivers/staging/media/imx/imx8-mipi-csi2-sam.c
  • drivers/staging/media/imx/imx8-media-dev.c
  • drivers/staging/media/imx/imx8-isi-core.c
  • drivers/staging/media/imx/imx8-isi-cap.c
Device Treeドキュメント
  • Documentation/devicetree/bindings/media/imx8-media-dev.txt
カーネルコンフィギュレーション
Device Drivers  --->
  [*] Staging drivers  --->                               <STAGING>
    [*]   Media staging drivers  --->               <STAGING_MEDIA>
      <*>   i.MX V4L2 media core driver         <VIDEO_IMX_CAPTURE>
              i.MX8QXP/QM Camera ISI/MIPI Features support  --->
        <*> IMX8 MIPI CSI2 SAMSUNG Controller  <IMX8_MIPI_CSI2_SAM>
        <*> IMX8 Image Sensor Interface Core Driver <IMX8_ISI_CORE>
        <*> IMX8 Image Sensor Interface Capture Device Driver
                                                 <IMX8_ISI_CAPTURE>
        <*> IMX8 Media Device Driver            <IMX8_MEDIA_DEVICE>

11.9. WLAN

Armadillo-IoT ゲートウェイ G4 のM.2インターフェース(CON5)に、AzureWave Technologies 製 AW-XM458 を接続可能です。AW-XM458 のWLAN機能は、「PCI Express」に接続されます。

機能
  • IEEE 802.11a/b/g/n/ac/ax 準拠
  • 最大通信速度(2.4GHz): 458 Mbps(理論値)
  • 最大通信速度(5GHz): 1.2 Gbps(理論値)
  • 動作モード: インフラストラクチャモード(STA/AP), アドホックモード
  • チャンネル(2.4GHz): 1-13
  • チャンネル(5GHz): 36-48(W52), 52-64(W53), 100-144(W56)
関連するソースコード
  • drivers/net/wireless/nxp/
ネットワークデバイス
  • mlan0 (STA)
  • uap0 (AP)
カーネルコンフィギュレーション
Device Drivers  --->
  [*] Network device support  --->                     <NETDEVICES>
    [*]   Wireless LAN  --->                                 <WLAN>
      [*]   NXP devices                           <WLAN_VENDOR_NXP>
      <M>     NXP mwifiex fork                               <MLAN>
[ティップ]

AW-XM458 のファームウェアは、Armadillo-IoT ゲートウェイ G4にインストールされているlinux-firmware-nxpwifi-9098パッケージに含まれています。

linux-firmware-nxpwifi-9098の著作権およびライセンス情報については、Armadillo-IoT ゲートウェイ G4上で/usr/share/licenses/linux-firmware-nxpwifi-9098/LICENSEを参照してください。

11.10. BT

Armadillo-IoT ゲートウェイ G4 のM.2インターフェース(CON5)に、AzureWave Technologies 製 AW-XM458 を接続可能です。AW-XM458 のBT機能は、「UART」に示すUART1に接続されます。

AW-XM458 は、Bluetooth® version 5.3 に対応しており、BLE(Bluetooth Low Energy)、 EDR(Enhanced Data Rate)が利用できます。

[警告]

Bluetooth® version 5.0以降で追加されたCoded PHY(Long Range)などの機能は工場出荷状態のソフトウェアで利用することができません。これは、BlueZが非対応の為です。

デバイス
  • hci0
カーネルコンフィギュレーション
[*] Networking support  --->                                  <NET>
  <*>   Bluetooth subsystem support  --->                      <BT>
    Bluetooth device drivers  --->
      <*> HCI UART driver                              <BT_HCIUART>
      -*-   UART (H4) protocol support              <BT_HCIUART_H4>
[ティップ]

BT機能を利用するには、Devicetree Overlayの設定が必要です。

[armadillo~]# vi /boot/overlays.txt
fdt_overlays=armadillo_iotg_g4-aw-xm458.dtbo
[armadillo~]# persist_file /boot/overlays.txt
[armadillo~]# reboot

11.11. PCI Express

Armadillo-IoT ゲートウェイ G4のPCI Expressは、i.MX 8M PlusのPCIe(PCI Express)およびPCIe_PHY(PCI Express PHY)を利用しています。

機能
  • PCI Express Base Specification, Revision 4.0, Version 0.7 準拠
  • PCI Local Bus Specification, Revision 3.0 準拠
  • PCI Bus Power Management Specification, Revision 1.2 3.0 準拠
  • PCI Express Card Electromechanical Specification, Revision 1.1 準拠
  • リンク幅: x1
  • 転送レート: 8.0GT/s
  • 割り込み通知方式: MSI
関連するソースコード
  • drivers/pci/controller/dwc/pci-imx6.c
  • drivers/phy/freescale/phy-fsl-imx8-pcie.c
Device Treeドキュメント
  • Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
  • Documentation/devicetree/bindings/phy/fsl,imx-pcie-phy.txt
カーネルコンフィギュレーション
Device Drivers  --->
  [*] PCI support  --->                                       <PCI>
    PCI controller drivers  --->
      DesignWare PCI Core Support  --->
        -*- Freescale i.MX6/7/8 PCIe driver              <PCI_IMX6>
  PHY Subsystem  --->
    <*> Freescale i.MX PCIE PHY                  <PHY_FSL_IMX_PCIE>

11.12. リアルタイムクロック

Armadillo-IoT ゲートウェイ G4のリアルタイムクロックは、Armadillo-IoT ゲートウェイ G4に搭載されたMicro Crystal製RV-8803-C7および、i.MX 8M PlusのSNVS_HP Real Time Counterを利用しています。

機能
  • アラーム割り込みサポート
デバイスファイル
  • /dev/rtc ( /dev/rtc0 へのシンボリックリンク)
  • /dev/rtc0 (RV-8803-C7)
  • /dev/rtc1 (SNVS_HP Real Time Counter)
[ティップ]

RV-8803-C7が /dev/rtc0 、SNVS_HP Real Time Counterが /dev/rtc1 となるよう、Device Treeでエイリアスを設定しています。

関連するソースコード
  • drivers/rtc/rtc-rv8803.c
  • drivers/rtc/rtc-snvs.c
Device Treeドキュメント
  • Documentation/devicetree/bindings/rtc/epson,rx8900.txt
  • Documentation/devicetree/bindings/crypto/fsl-sec4.txt
カーネルコンフィギュレーション
Device Drivers --->
  [*] Real Time Clock  --->                             <RTC_CLASS>
    (rtc0)  RTC used to synchronize NTP adjustment
                                               <RTC_SYSTOHC_DEVICE>
    <*>   Micro Crystal RV8803, Epson RX8900       <RTC_DRV_RV8803>
    <*>   Freescale SNVS RTC support                 <RTC_DRV_SNVS>
[警告]

Linux カーネルのバージョン v5.10.86-r0 以降では、NTPサーバーとRTCを時刻同期した場合、rtc0 (RV-8803-C7)にのみ時刻が保存されます。

Linux カーネルのバージョン v5.10.52-r1 では、NTPサーバーとRTCを時刻同期した場合、rtc0 (RV-8803-C7)とrtc1 (SVNS) の両方に時刻が保存されていました。

[警告]

RV-8803-C7は、毎分 0 秒にしかアラーム割り込みを発生させることができません。 0 時 0 分 30 秒の時に、1 秒後にアラームが鳴るように設定しても、 実際にアラーム割り込みが発生するのは 0 時 1 分 0 秒となります。

アラーム割り込みは、デバイスファイル経由で利用することができます。

詳細な情報については、Linux カーネルのソースコードに含まれているドキュメント(Documentation/admin-guide/rtc.rst)やサンプルプログラム(tools/testing/selftests/rtc/rtctest.c)を参照してください。

11.13. ユーザースイッチとイベント信号

Armadillo-IoT ゲートウェイ G4に搭載されているユーザースイッチには、GPIOが接続されています。

Linuxでは、ユーザー空間でイベント(Press/Release)を検出することができます。Linuxでは、GPIO接続用キーボードドライバ(gpio-keys)で制御することができます。

ユーザースイッチと信号には、次に示すキーコードが割り当てられています。

表11.1 キーコード

ユーザースイッチ キーコード イベントコード X11 キーコード

SW1

KEY_PROG1

148

XF86Launch1

EC25-J RI

KEY_PROG2

149

XF86Launch2

予約

KEY_PROG3

202

XF86Launch3

予約

KEY_PROG4

203

XF86Launch4

PWR_OFF

KEY_POWER

116

XF86PowerOff

REBOOT

KEY_RESET

408

なし


デバイスファイル
  • /dev/input/by-path/platform-gpio-keys-event [15]
関連するソースコード
  • drivers/input/keyboard/gpio_keys.c
Device Treeドキュメント
  • Documentation/devicetree/bindings/input/gpio-keys.yaml
カーネルコンフィギュレーション
Device Drivers  --->
  Input device support  --->
    -*- Generic input layer (needed for keyboard, mouse, ...)
                                                            <INPUT>
      [*]   Keyboards  --->                        <INPUT_KEYBOARD>
      <*>   GPIO Buttons                            <KEYBOARD_GPIO>

11.14. LED

Armadillo-IoT ゲートウェイ G4に搭載されているユーザーLEDには、GPIOが接続されています。

Linuxでは、GPIO接続用LEDドライバ(leds-gpio)で制御することができます。

sysfs LEDクラスディレクトリ
  • /sys/class/leds/led1
関連するソースコード
  • drivers/leds/leds-gpio.c
Device Treeドキュメント
  • Documentation/devicetree/bindings/leds/leds-gpio.yaml
カーネルコンフィギュレーション
Device Drivers  --->
  [*] LED Support  --->                                  <NEW_LEDS>
    <*>   LED Support for GPIO connected LEDs           <LEDS_GPIO>

11.15. I2C

Armadillo-IoT ゲートウェイ G4のI2C インターフェースは、i.MX 8M PlusのI2C(I2C Controller)を利用しています。また、i2c-gpioを利用することで、I2C バスを追加することができます。

Armadillo-IoT ゲートウェイ G4で利用しているI2Cバスと、接続されるI2Cデバイスを次に示します。

表11.2 I2C デバイス

I2C バス

I2C デバイス

アドレス

デバイス名

0(I2C1)

0x25

PCA9450(PMIC)

1(I2C2)

0x2c

USB2422(USBハブ)

0x32

RV-8803-C7(RTC)

2(I2C3)

0x43

FXL6408(GPIOエキスパンダー)

0x48

SE050(セキュアエレメント)

3(I2C4)

接続デバイス無し


Armadillo-IoT ゲートウェイ G4の標準状態では、CONFIG_I2C_CHARDEVが有効となっているためユーザードライバでI2Cデバイスを制御することができます。ユーザードライバを利用する場合は、Linux カーネルでI2Cデバイスに対応するデバイスドライバを無効にする必要があります。

機能
  • 最大クロック: 384kHz
デバイスファイル
  • /dev/i2c-0 (I2C1)
  • /dev/i2c-1 (I2C2)
  • /dev/i2c-2 (I2C3)
  • /dev/i2c-3 (I2C4)
[ティップ]

/dev/i2c-6 は、HDMI DDCです。

関連するソースコード
  • drivers/i2c/busses/i2c-imx.c
Device Tree ドキュメント
  • Documentation/devicetree/bindings/i2c/i2c-imx.yaml
カーネルコンフィギュレーション
Device Drivers  --->
  I2C support  --->
    -*- I2C support                                            <I2C>
      <*>   I2C device interface                       <I2C_CHARDEV>
      I2C Hardware Bus support  --->
        <*> IMX I2C interface                              <I2C_IMX>

11.16. GPIO

Armadillo-IoT ゲートウェイ G4のGPIOは、i.MX 8M PlusのGPIO(General Purpose Input/Output)および、ON Semiconductor製FXL6408(GPIOエキスパンダー)を利用しています。

関連するソースコード
  • drivers/gpio/gpio-mxc.c
  • drivers/gpio/gpio-fxl6408.c
Device Tree ドキュメント
  • Documentation/devicetree/bindings/gpio/fsl-imx-gpio.yaml
  • Documentation/devicetree/bindings/gpio/gpio-fxl6408.txt
デバイスファイル
デバイスファイル GPIO番号

/dev/gpiochip0

0〜31(GPIO1_IO00〜GPIO1_IO31)

/dev/gpiochip1

32〜63(GPIO2_IO00〜GPIO2_IO31)

/dev/gpiochip2

64〜95(GPIO3_IO00〜GPIO3_IO31)

/dev/gpiochip3

96〜127(GPIO4_IO00〜GPIO4_IO31)

/dev/gpiochip4

128〜159(GPIO5_IO00〜GPIO5_IO31)

/dev/gpiochip5

504〜511 [a] (FXL6408)

[a] GPIOエキスパンダーを追加した場合は、番号が異なる可能性があります。

sysfs GPIOクラスディレクトリ
  • /sys/class/gpio/
[ティップ]

sysfs GPIOクラスは旧バージョンのLinuxカーネルとの互換性維持の為に残っています。新しくアプリケーションを開発する際の利用はおすすめしません。

新しくアプリケーションを開発する場合は、libgpiodパッケージに含まれるアプリケーションまたはLinux カーネルのソースコードに含まれているサンプル(tools/gpio/)を参考にしてください。

カーネルコンフィギュレーション
Device Drivers  --->
  [*] GPIO Support  --->                                   <GPIOLIB>
    (512) Maximum number of GPIOs for fast path
                                            <GPIOLIB_FASTPATH_LIMIT>
    I2C GPIO expanders  --->
       <*> FXL6408 I2C GPIO expander                  <GPIO_FXL6408>
    Memory mapped GPIO drivers  --->
      -*- i.MX GPIO support                               <GPIO_MXC>

11.17. 温度センサー

Armadillo-IoT ゲートウェイ G4の温度センサーは、i.MX 8M PlusのTMU(Thermal Monitoring Unit)を利用しています。CPU(Arm Cortex-A53)周辺温度と、SoC(ANAMIX内部)温度を測定することができます。

起動直後の設定では、ARMまたはSoCの測定温度が 105°C以上になった場合、Linuxカーネルはシステムを停止します。

機能
  • 測定温度範囲: -40〜+105°C
sysfs thermalクラスディレクトリ
  • /sys/class/thermal/thermal_zone0 (CPU)
  • /sys/class/thermal/thermal_zone1 (SoC)
関連するソースコード
  • drivers/thermal/imx8mm_thermal.c
Device Treeドキュメント
  • Documentation/devicetree/bindings/thermal/imx8mm-thermal.yaml
カーネルコンフィギュレーション
Device Drivers  --->
  -*- Thermal drivers  --->                                <THERMAL>
    <*>   Temperature sensor driver for Freescale i.MX8MM SoC
                                                    <IMX8MM_THERMAL>

11.18. ウォッチドッグタイマー

Armadillo-IoT ゲートウェイ G4のウォッチドッグタイマーは、i.MX 8M PlusのWDOG(Watchdog Timer)を利用しています。

ウォッチドッグタイマーは、U-Boot によって有効化されます。標準状態でタイムアウト時間は10秒に設定されます。Linux カーネルは、ウォッチドッグタイマードライバの初期化時にタイムアウト時間を60 秒に再設定します。

何らかの要因でウォッチドッグタイマーのキックができなくなりタイムアウトすると、システムリセットが発生します。

関連するソースコード
  • drivers/watchdog/imx2_wdt.c
Device Treeドキュメント
  • Documentation/devicetree/bindings/watchdog/fsl-imx-wdt.yaml
カーネルコンフィギュレーション
Device Drivers --->
  [*] Watchdog Timer Support  --->                       <WATCHDOG>
    <*>   IMX2+ Watchdog                                 <IMX2_WDT>

ウォッチドッグタイマーの設定変更は、ioctlシステムコール経由で行うことができます。詳細な情報については、Linux カーネルのソースコードに含まれているドキュメント(Documentation/watchdog/watchdog-api.rst)を参照してください。

[ティップ]

ウォッチドッグタイマーを停止することはできません。

11.19. パワーマネジメント

Armadillo-IoT ゲートウェイ G4のパワーマネジメント機能は、LinuxのSPM(System Power Management)およびDPM(Device Power Management)を利用しています。パワーマネジメント状態を省電力モードに遷移させることにより、Armadillo-IoT ゲートウェイ G4の消費電力を抑えることができます。

パワーマネジメント状態を省電力モードに遷移させると、アプリケーションの実行は一時停止し、Linuxカーネルはサスペンド状態となります。起床要因が発生すると、Linuxカーネルのリジューム処理が行われた後、アプリケーションの実行を再開します。

sysfsファイル
  • /sys/power/state
関連するソースコード
  • kernel/power/
カーネルコンフィギュレーション
Power management options  --->
  [*] Suspend to RAM and standby                          <SUSPEND>
  -*- Device power management core functionality               <PM>

Armadillo-IoT ゲートウェイ G4が対応するパワーマネジメント状態と、/sys/power/stateに書き込む文字列の対応を次に示します。

表11.3 対応するパワーマネジメント状態

パワーマネジメント状態 文字列 説明

Suspend-to-RAM

mem

Suspend-to-Idleよりも消費電力を抑えることができる

Suspend-to-Idle

freeze

suspend-to-ramよりも短時間で復帰することができる


起床要因として利用可能なデバイスは次の通りです。

USBコンソールインターフェース(CON6)
起床要因
データ受信
有効化
[armadillo ~]# echo enabled > /sys/class/tty/ttymxc1/power/wakeup
USBインターフェース(CON4)
起床要因
USBデバイスの挿抜
有効化
[armadillo ~]# echo enabled > /sys/devices/platform/soc@0/32f10100.usb/power/wakeup
[armadillo ~]# echo enabled > /sys/bus/usb/devices/usb1/power/wakeup
RTC(SNVS_HP Real Time Counter)
起床要因
アラーム割り込み
有効化
デフォルトで有効化されています
RTC(RV-8803-C7)
起床要因
アラーム割り込み
有効化
デフォルトで有効化されています
EC25-J RI (Ring Indicator)
起床要因
SMS 受信(LTE モデルのみ)
有効化
デフォルトで有効化されています

11.20. LTE

Armadillo-IoT ゲートウェイ G4 には、3G/LTE モデム Quectel 製 EC25-J が搭載されています。

機能
  • 3G/LTE 通信
  • リセットドライバによる EC25-J の電源制御
デバイスファイル
  • /dev/ttyUSB0
  • /dev/ttyUSB1
  • /dev/ttyUSB2

    • ModemManager が /dev/ttyCommModem のシンボリックリンクを作成し AT コマンド用ポートとして使用します。
  • /dev/ttyUSB3
  • /dev/ttymxc3
[ティップ]

ttyUSB[0-3] は、他の USB デバイスを接続している場合、番号が変わる可能性があります。

関連するソースコード
  • drivers/reset/reset-ec25.c
ネットワークデバイス
  • ppp0
カーネルコンフィギュレーション
Device Drivers  --->
 -*- Reset Controller Support  --->                   <RESET_CONTROLLER>
     [*]   GPIO-based Reset Driver for Quectel EC25     <RESET_EC25>
[ティップ]

3G/LTE モデム Quectel 製 EC25-J に対して、以下の制御が可能です。

EC25-J は、Armadillo 起動時に自動的に電源が投入され、 Armadillo が終了する際には自動的に電源が切られます。

また、「3G/LTE再接続サービス」 でも、通信状態に応じて EC25-J のリセットなどを実施しますので処理が重複しないように、下記制御を実施する際には、図7.31「3G/LTE 再接続サービスを停止する」の手順を参考に再接続サービスを停止してから実施してください。

[armadillo:~#] cat /sys/devices/platform/ec25-reset/reset/status
running 1

[armadillo:~#] cat /sys/devices/platform/ec25-reset/reset/status
off 2

図11.1 EC25-J の状態表示


1

動作中は running が表示されます。

2

停止中は off が表示されます。

[armadillo:~#] echo 1 > /sys/devices/platform/ec25-reset/reset/reset

図11.2 EC25-J をリセットする


[armadillo:~#] echo 1 > /sys/devices/platform/ec25-reset/reset/power

図11.3 EC25-J の電源を入れる


[armadillo:~#] echo 0 > /sys/devices/platform/ec25-reset/reset/power

図11.4 EC25-J の電源を切る




[9] 1000Mbps(1000BASE-T)はHalf-Duplexに非対応です。

[10] フレームバッファデバイスとして利用することもできます。

[11] CEA-861 規格の VIC コード。

[12] フレームバッファデバイスとして利用することもできます。

[13] Armadillo-IoT ゲートウェイ G4にカメラは付属していません。

[14] UVCカメラなどを接続してV4L2デバイスを追加している場合は、番号が異なる可能性があります。

[15] USBキーボードなどを接続してインプットデバイスを追加している場合は、番号が異なる可能性があります