n_kogawa
2024年4月14日 17時53分
拡張インターフェース(CON8)の 40番ピン(GPIO1_IO1)を、外部 MCU のリセット入力(負論理)と接続したシステムを開発しています。
そのため、X1 起動直後に該当ピンの出力を HIGH としたいです。
また、MCU にリセットを掛けるため、該当ピンの出力を操作できる必要があります。
デバイスツリーの変更で上記の対応は可能でしょうか?
armadillo_x1.dts の 510行目以下を下記のように修正することで、起動直後に該当ピンの出力が HIGH となりましたが、/sys/class/gpio 以下で出力を操作することできず、結果 MCU にリセットを掛けることができません。
修正前
&gpio1 { mcu_intb { gpio-hog; gpios = <13 GPIO_ACTIVE_HIGH>; input; line-name = "MCU_INTB"; }; };
修正後
&gpio1 { mcu_intb { gpio-hog; gpios = <13 GPIO_ACTIVE_HIGH>; input; line-name = "MCU_INTB"; }; gpio1_1 { gpio-hog; gpios = <1 GPIO_ACTIVE_HIGH>; output-high; line-name = "GPIO1_1"; }; };
Linux 6.1 を利用しています。
何かご存じのことがありましたら、ご教示いただけますと幸いです。
コメント
n_kogawa
> 溝渕です。
>
> > 拡張インターフェース(CON8)の 40番ピン(GPIO1_IO1)を、外部 MCU のリセット入力(負論理)と接続したシステムを開発しています。
>
> i.MX 7DualのGPIO1_IO1ピンンのリセット値は100kΩ pull-downになっています。(外部で強pull-upしていない場合は)電源投入後、LinuxカーネルでHIGHにするまでの間LOWになると思いますが、タイミングは大丈夫でしょうか?
>
> > デバイスツリーの変更で上記の対応は可能でしょうか?
>
> gpio-ledsなど、ユーザーランド(sysfsなど)からの制御に対応したドライバを割り当てると可能です。
>
> また、gpio driverのgpio-hogを使う場合は、ドライバに修正が必要となります。
>
> 電源投入後最速でHIGHにするには、U-Bootで制御する必要があります。この場合はgpio sysfsから制御可能です。
>
溝渕 様
返信遅くなりましたが、gpio-leds を利用することで、
実現することができました。
ありがとうございました。
at_mizo
at_mizo
2024年4月15日 9時15分
溝渕です。
> 拡張インターフェース(CON8)の 40番ピン(GPIO1_IO1)を、外部 MCU のリセット入力(負論理)と接続したシステムを開発しています。
i.MX 7DualのGPIO1_IO1ピンンのリセット値は100kΩ pull-downになっています。(外部で強pull-upしていない場合は)電源投入後、LinuxカーネルでHIGHにするまでの間LOWになると思いますが、タイミングは大丈夫でしょうか?
> デバイスツリーの変更で上記の対応は可能でしょうか?
gpio-ledsなど、ユーザーランド(sysfsなど)からの制御に対応したドライバを割り当てると可能です。
また、gpio driverのgpio-hogを使う場合は、ドライバに修正が必要となります。
電源投入後最速でHIGHにするには、U-Bootで制御する必要があります。この場合はgpio sysfsから制御可能です。