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 の文字列が長くなり過ぎないようにご注意ください。