Armadilloフォーラム

起動時のGPIO制御

sirakawa

2022年5月24日 21時46分

お世話になっております。
Armadillo-810の電源投入直後から、PORT74を出力したい場合、
どこを修正したら良いかご教示いただけないでしょうか。

■hermit
 board-armadillo810.cで設定している箇所が見つけられませんでした。
 armadillo810_init()の中でgpio_direction_output()で設定すると想定しています。
 その場合、引数に渡す定義はpinmux-armadillo800eva.hにある、PIN_FN_GPIO_PORT74をそのまま使用して問題ないでしょうか?
 また、その他に修正すべき箇所はありますでしょうか?

■kernel
 board-armadillo810.cで設定している箇所が見つけられませんでした。
 a810_init()の中でgpio_direction_output()で設定すると想定しています。
 その他に修正すべき箇所はありますでしょうか?

コメント

at_mizo

2022年5月25日 9時04分

溝渕です。

> Armadillo-810の電源投入直後から、PORT74を出力したい場合、
> どこを修正したら良いかご教示いただけないでしょうか。

やることは3つです。

1. ピンの機能をGPIOに設定する
2. 入出力方向を出力に変更する
3. 値(high or low)を設定する

hermit-atでは、

"1."は、次の通り使用して問題無いです。

>  その場合、引数に渡す定義はpinmux-armadillo800eva.hにある、PIN_FN_GPIO_PORT74をそのまま使用して問題ないでしょうか?

>  また、その他に修正すべき箇所はありますでしょうか?

pinmux(PIN_FN_GPIO_PORT74);

のようにピンの機能を設定する必要があります。

"2."と"3."は次のように、
gpio_direction_output(PIN_FN_GPIO_PORT74, 1);
gpio_direction_output(PIN_FN_GPIO_PORT74, 0);

入出力方向を変更せずに"3."だけを行うには次のように行ってみてください。
gpio_set_value(PIN_FN_GPIO_PORT74, 1);
gpio_set_value(PIN_FN_GPIO_PORT74, 0);

Linuxカーネルでは、

"1."は、
gpio_request()

"2."と"3."は、
gpio_direction_output()

に読み替えてください。

以上です。

> お世話になっております。
> Armadillo-810の電源投入直後から、PORT74を出力したい場合、
> どこを修正したら良いかご教示いただけないでしょうか。
>
> ■hermit
>  board-armadillo810.cで設定している箇所が見つけられませんでした。
>  armadillo810_init()の中でgpio_direction_output()で設定すると想定しています。
>  その場合、引数に渡す定義はpinmux-armadillo800eva.hにある、PIN_FN_GPIO_PORT74をそのまま使用して問題ないでしょうか?
>  また、その他に修正すべき箇所はありますでしょうか?
>
> ■kernel
>  board-armadillo810.cで設定している箇所が見つけられませんでした。
>  a810_init()の中でgpio_direction_output()で設定すると想定しています。
>  その他に修正すべき箇所はありますでしょうか?

sirakawa

2022年5月26日 21時38分

溝渕様
ご回答ありがとうございました。
実現できました。

> >  その場合、引数に渡す定義はpinmux-armadillo800eva.hにある、PIN_FN_GPIO_PORT74をそのまま使用して問題ないでしょうか?
こちらは設定を少し修正しました。