gpiolibカーネルでgpiochipNNを選択または設定するには?

gpiolibカーネルでgpiochipNNを選択または設定するには?

私はカーネルgpiolibとgpio-xilinx.cで作業しています。私のデバイスに

cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 960-1023,

この960がどこから来たのか混乱しています。カーネルは、この数を960に設定する必要があることをどのように知ることができますか?デバイスツリーに数字960は表示されません。この960番号はどこから来たのですか?

 /sys/class/gpio/gpiochip960 

設定しようとしています -

gpio237
gpiochip192
gpiochip224

ベストアンサー1

gpiochip ベースアドレスは gpio-xilinx.c から -1 に設定されます。https://elixir.bootlin.com/linux/v5.3.5/source/drivers/gpio/gpio-xilinx.c#L319

これはgpiochip_find_baseが呼び出されることを意味します。 https://elixir.bootlin.com/linux/v5.3.5/source/drivers/gpio/gpiolib.c#L181

ARCH_NR_GPIOS で最初に使用可能な範囲を見つけようとします。

ARCH_NR_GPIOS == 1024とngpios == 64があると確信しています。その結果、範囲は960から1023です。

おすすめ記事