GPIO(4) | FreeBSD Kernel Interfaces Manual | GPIO(4) |
名称
gpiobus — GPIO バスシステム書式
これらのデバイスをカーネルにコンパイルし、デバイスヒントを使用するためには、次の行を利用者のカーネル設定ファイルに置きます:
device gpiobus
device gpioiic
device gpio
device gpioc
device gpioled
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
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
device octeon_gpio
device rt305_gpio
POWERPC
アーキテクチャのための追加のデバイスエントリは、次のものを含んでいます:
device wiigpio
device macgpio
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 インタフェースの各ピンは、システムのいくつかのデバイスの入力/出力に接続されます。
歴史
gpiobus マニュアルページは、 FreeBSD 10.0 ではじめて登場しました。作者
このマニュアルページは、 <sbruno@FreeBSD.org>によって書かれました。September 13, 2013 | FreeBSD |