GENMAIボードでの標準IO制御について

Hiroです。

 

GENMAIボードを使用した組み込みLinuxについて調査しております。

BSP内のdoc/appendix/gpio.logを参考に、GPIOを動作させましたが

LEDが点灯しないので質問します。

 

P0_0ではSW1-1の状態に従い、catコマンドでvalueが変化することは確認できました。

P4_10に対して、

echo "out" > /sys/class/gpio/P4_10/direction

echo "0" > /sys/class/gpio/P4_10/value

を実施してもLED1が点灯しません。点灯していませんが、

cat /sys/class/gpio/P4_10/value

を実施すると'0'が返ってきます。

(echo "1" > /sys/class/gpio/P4_10/value 実施後でも'0'が返ってきます)

 

直接ポートの出力を作成して実行するとLEDは点灯しますので

ハードは正常に動作しております。

 

実装されているGPIOを使用してLEDを点灯させるために必要な手順をお教えください。

 

以上、よろしくお願いします

  • Hiroさん

    GENMAI ボードは、RZ/A1H の評価ボードとして設計されているため、なるべく多くの
    周辺モジュールの評価が出来るように、多くの端子が兼用になっています。

    GENMAI ボードのユーザーズマニュアル(20UT2596JJ0100) によれば、
    J22端子の場合、

    (1) 「2.6 入出力ポート」の回路図にある通り、LED1 に接続 (P4_10)
    (2) 「2.15 SD カードインタフェース (4 ビット)」の回路図にある通り、
        SDHI チャネル 0 のカードスロット (SD_D1_0)
    (3) 拡張コネクタ CN7-16 を経由して GENMAI オプションボードの LCD 出力コネクタ
        J13、J14 (LCD1_TCON5)

    の3通りの用途で兼用されており、排他使用する必要があります。

    GENMAI ボードの Linux の場合、デフォルトでは、J22端子は、(2)の用途に割り当てて
    使用しています。そのため、GPIOのハードウェアやドライバ自体は動作していますが、
    GPIO出力が J22端子を経由して外部に出ることはなく、ご指摘のような動作となります。

    J22端子を (1)の用途でご使用になりたい場合には、カーネルの起動オプションで
    「rza1_gpio_test=1」を指定してください。具体的には、u-boot の bootargs 環境変数に
    「rza1_gpio_test=1」を指定してください。この記載は、ドキュメントに無いようです。

        => setenv bootargs console=ttySC2,115200 root=/dev/sda1 rw rootdelay=3 ignore_loglevel rza1_gpio_test=1 earlyprintk=sh-sci.2,115200

    その場合、(2)や(3)の用途では、使用出来なくなりますので、ご注意ください。
    排他制御のロジックは、arch/arm/mach-shmobile/board-rskrza1.c を参照してください。

    なお、bootargs の文字列が長くなり過ぎないようにご注意ください。