Armadilloフォーラム

CON11 の I/O を増やしたい

tsuna

2023年11月24日 10時07分

CON11 の拡張コネクターの GPIO を増やしたく、
SAI3 のポートを GPIO 用として使いたいと思っています。

そのまま使おうとしても CON11[22] ピン以外は思うように使えませんでした。
ちなみに CON11[24] の GPIO1_IO15 は思うようにオンオフができることを確認済みで、
それと同じ方法で SAI3_*_GPIOx_IOxx のポートを GPIO 用として初期化して試してみています。

Linux 側でオーディオ用として使用しているものと思いますが、
これを無効化する方法を教えてください。
また、ここを無効化することで想定される不都合があれば教えてください。

よろしくお願いします。

コメント

at_dominique.m…

2023年11月24日 11時37分

tsunaさん

お世話になっています、
マルティネです。

> それと同じ方法で SAI3_*_GPIOx_IOxx のポートを GPIO 用として初期化して試してみています。

はい、これであっています。
Armadillo IoT G4 で使用している i.MX8MP では pinmux という機能があって、一つの出力を複数の機能で使えるようにしていますが、その mux の設定を行う必要があります。
デフォルトは設定していない pin が多いので、お手数をおかけしますが設定する必要があります。

設定方法については、二つの方法があります:
- at-dtweb で dtb overlay を生成していただければ、そちらで設定されていない pin が gpio として初期化されますので、空の設定で生成していただければ使用可能になるはずです。
- 明確に設定したい場合はカーネルソースディレクトリの arch/arm64/boot/dts/freescale/armadillo_iotg_g4-customize.dts ファイルに必要な pin の設定を行ってください。arch/arm64/boot/dts/freescale/armadillo_iotg_g4-expansion-interface.dtsi を参考にできればと思います。

何か不明な点があればまた聞いてください。

よろしくお願いします。

tsuna

2023年11月24日 11時38分

自己解決(?)できました。
dts ファイルで sai3 を disabled したところ、一応意図したとおりに動きました。

> Linux 側でオーディオ用として使用しているものと思いますが、
> これを無効化する方法を教えてください。
> また、ここを無効化することで想定される不都合があれば教えてください。

上記について何か気をつけなければならないことがあれば、
返信いただけますと幸いです。

よろしくお願いします。

at_dominique.m…

2023年11月24日 11時45分

tsunaさん、

マルティネです。

同時返事でしたが、解決できてよかったです。

> dts ファイルで sai3 を disabled したところ、一応意図したとおりに動きました。

一つを確認させてください。
sai3 のノードはデフォルト(LTEモデル以外)ですでに disabled になっているはずですが、具体的に何を変更したか教えていただけますか?

よろしくお願いします

tsuna

2023年11月24日 11時55分

マルティネさん、
返信、ありがとうございます。

> sai3 のノードはデフォルト(LTEモデル以外)ですでに disabled になっているはずです

こちらですが、購入は WLAN 搭載開発セットを購入しておりました。
 ※質問を最初にするとき、ボードの選択肢を間違っていましたでしょうか?
が、CON11 を使うためには WLAN があってはいけないことが分かったため、
今は小基板自体を取り外して使っています。

 ※本音を言えば、CON11 も使いたいけど WLAN も使いたかったです・・・
  (将来の拡張のため)

> 具体的に何を変更したか教えていただけますか?

ですので、私自身は何も変更していない、はずです。

答えになっていますか?

at_dominique.m…

2023年11月24日 12時26分

tsunaさん、

マルティネです。

> > sai3 のノードはデフォルト(LTEモデル以外)ですでに disabled になっているはずです
>
> こちらですが、購入は WLAN 搭載開発セットを購入しておりました。
>  ※質問を最初にするとき、ボードの選択肢を間違っていましたでしょうか?
> が、CON11 を使うためには WLAN があってはいけないことが分かったため、
> 今は小基板自体を取り外して使っています。

了解しました。
元々 LTE 拡張が搭載されていたモデルで、小基板をとりはずしCON11 を使用しているということですね。

それでしたら確かに sai3 が有効になってしまって、pinmux も i.MX8MP のデフォルトである GPIO から音声向けに設定されています。
sai3 をさらに無効にしたら gpio に戻りました、ということですね。

sai3 を disabled にすることで問題ありませんが、LTE の拡張ボードを外した状態で Armadillo を使用するなら /boot/overlays.txt から armadillo_iotg_g4-lte-ext-board.dtbo を外した方がいいと思います。
その変更だけで sai3 が無効になります。

最初の返事で説明した mux の設定は、gpio の設定(drive strength, 内部 pull等)が必要になった際だけに参考にしてください。

>  ※本音を言えば、CON11 も使いたいけど WLAN も使いたかったです・・・
>   (将来の拡張のため)

開発セットの種類を抑えるために wlanのみのモデルがありませんが、量産向けでしたら LTE無し、WLAN ありの Armadillo IoT G4 がございますので、その使い方自体に問題はありません。
WLAN の DTB overlay と LTE の DTB overlay がちゃんと別けてありますので、armadillo_iotg_g4-aw-xm458.dtbo だけを overlays.txt に残せば wlan を使用できるままに CON11 を別の拡張に使用可能となっています。
参考: https://armadillo.atmark-techno.com/armadillo-iot-g4/AGX4500-C03Z

何か問題がございましたらまたきいてください。

よろしくお願いします。

tsuna

2023年11月24日 12時40分

マルティネさん

armadillo_iotg_g4-lte-ext-board.dtbo は外しました。

> WLAN ありの Armadillo IoT G4 がございます
えっと、『LTE も使いたかった』が正しいです。
リモートメンテナンスとか、そういう目的で。
WLAN があれば他の手段もあるでしょうが、
ユーザーのネットワークを介すわけにもいかないため、
自社のアクセス手段があると何かと使えるかなぁ、と思っております。

ところで、overlays.txt には armadillo_iotg_g4-aw-xm458.dtbo も記載がありました。
小基板を外せば Blutooth も使わないことになるため、これも不要に思えました。
外しちゃいます。

tsuna

2023年11月24日 14時30分

マルティネさん

訂正です。

私が買ったのは WLAN + LTE 付き開発セットでした。
購入当初、まず LTE のボードを外していたことを忘れていました。
マルティネさんは、LTE のボードのための .dtbo を外せば CON11 が使用可能になるということを教えてくれていたんですね。

LTE のボードを外していたことを忘れていた私は、WLAN (Wireless LAN) + BT (Bluetooth) のボードに
LTE も載っているものと勘違いして、これも外してしまっていました。

CON11 が使いたいだけですから、WLAN + BT はつけたまま使えるということですね。
ですので、armadillo_......-xm458.dtbo は消さずに活かすことにしました。
armadillo_...ext-board.dtbo のみ消去して使います。

WLAN + BT も使わないとなったら、G4 の意味がなく X2 でいいということに、ほぼなってしまいますものね。
理解が遅く、失礼しました。

at_dominique.m…

2023年11月24日 16時36分

tsunaさん

マルティネです。

追加情報ありがとうございます。

役に立つかどうかが分かりませんが、少し整理させてください:
* LTE を使う場合は CON11 に LTE 拡張を接続して、armadillo_...ext-board.dtbo で linux から使用可能になります。
* WLAN/BT は CON5 (M.2) の方に接続されて、armadillo_......-xm458.dtbo で BT の機能のみが設定されてます(WLAN の方は PCI で自動的に認識されます)

CON11 を LTE 以外に使用する場合は LTE の小基板を外して overlays.txt から ext-board.dtbo を削除すれば使用可能になりますが、LTE機能は使用できなくなります。
WLAN/BT の方は CON11 を使ってないため関係なく両方を使えます。

また、逆にまとめてみました:LTE 有効のままに使用可能の GPIO はいくつかあります。
- CON12 (CON11 の続きのピンヘッダー)で 13 の GPIO が使用可能です。その中にデフォルトに使用されている信号が5つ(PWR_OFF, REBOOT の入力、FW_UPDATE_IND、STDWN_IND、PWR_IND の出力)がありますが上書き可能です。(PWR_IND はカスタムなブートローダーが必要なため少してまかかりますが、必要な場合に設定を追加できます)
- CON9 (LVDS) に 4 の GPIO, CON10 (MIPI) にも 4 の GPIO が使用可能になりますが、不便ですね。

よろしくお願いします。