EN JA
GPIO(4)
GPIO(4) FreeBSD Kernel Interfaces Manual GPIO(4)

名称

gpiobusGPIO バスシステム

書式

これらのデバイスをカーネルにコンパイルし、デバイスヒントを使用するためには、次の行を利用者のカーネル設定ファイルに置きます:

device gpiobus
device gpioiic
device gpio
device gpioc
device gpioled

ARM アーキテクチャのための追加のデバイスエントリは、次のものを含んでいます:

device a10_gpio
device bcm_gpio
device imx51_gpio
device lpcgpio
device mv_gpio
device ti_gpio
device gpio_avila
device gpio_cambria
device zy7_gpio
device pxagpio

MIPS アーキテクチャのための追加のデバイスエントリは、次のものを含んでいます:

device ar71xxx_gpio
device octeon_gpio
device rt305_gpio

POWERPC アーキテクチャのための追加のデバイスエントリは、次のものを含んでいます:

device wiigpio
device macgpio

解説

gpiobus システムは、組み込まれたアーキテクチャで見つかった、 bit banging スタイルの GPIO バスに単純なインタフェースを供給しています。訳注: bit banging の意味不明。

頭字語 (acronym) GPIO は、“汎用の入力/出力” (General-Purpose Input/Output) を意味します。

BUS (バス) は、物理的に、入力/出力、IRQ 配信、SDA/SCL iicbus の使用などのために設定することができる複数のピンから成ります。ほとんどの組み込みのアーキテクチャ (mips/arm) において、バスの発見とピンの設定は、プラットフォームのカーネル config(5) ファイルの device.hints(5) によって行なわれます。

gpioiic(4) バス変数の割り当ては、次のものによって行なわれます:

hint.gpioiic.%d.at
通常、単に gpiobus0。
hint.gpioiic.%d.pins
これは、IIC バスからの SCLOCK と SDATA のために使用される、gpio ボードでのピンのビットマスクです。ピン 0 と 7 を設定するために、10000001 のビットマスクを使用して、それを 0x0081 の 16 進数の値に変換します。単に常にマスクの 2 ビットの設定があるべきです。
hint.gpioiic.%d.scl
hint.gpioiic.%d.pins 中のビットが SCLOCK ソースとして使用されるべきであることを示します。
hint.gpioiic.%d.sda
hint.gpioiic.%d.pins 中のビットが SDATA ソースとして使用されるべきであることを示します。

次は、 ar71xx_gpio ドライバによってのみ提供されています。

hint.gpio.%d.pinmask
これは、ホスト o/s に使用するために公開したい gpio ボード上のピンのビットマスクです。ピン 0、4 と 7 を公開するために、16 進数の値 0x0091 に変換された 10010001 のビットマスクを使用します。
hint.gpio.%d.pinon
これは、開始されたホストで ON に設定される gpio ボード上のピンのビットマスクです。ブート時にピン 2、5 と 13 を ON に設定するために、 16 進数の値 0x2012 に変換された 10000000010010 のビットマスクを使用します。
hint.gpio.function_set
hint.gpio.function_clear
これらは、Atheros 関数レジスタで特定の関数 (USB、UART TX/RX など) を扱うためにピンを再マップするピンのビットマスクです。これは、それらがセットアップされるか、または uBoot によるセットアップでないとき、必要とする設定/クリア関数で主として使用されます。

これらの値は、 gpioled(4) インタフェースから設定可能で、 /dev/led/<name>led(4) 互換のデバイスを作成するのを助けます。

hint.gpioled.%d.at
通常、gpiobus0 に割り当てられます。
hint.gpioled.%d.name
led(4) インタフェースのために作成する /dev/led/ のデバイスの任意の名前。
hint.gpioled.%d.pins
このインスタンスにマップする GPIO インタフェース上のどのピンか。

簡単に言うと、GPIO インタフェースの各ピンは、システムのいくつかのデバイスの入力/出力に接続されます。

関連項目

iicbus(4), gpioctl(8)

歴史

gpiobus マニュアルページは、 FreeBSD 10.0 ではじめて登場しました。

作者

このマニュアルページは、 Sean Bruno <sbruno@FreeBSD.org>によって書かれました。
September 13, 2013 FreeBSD