e641d42a37
Small GPIO driver that exports a few pins using a virtual file system. Currently the two user leds and the user button are exported. Change-Id: I001d017ae27cd17b635587873f7da981054da459
35 lines
1.3 KiB
Text
35 lines
1.3 KiB
Text
General Purpose Input and Output
|
||
|
||
To make MINIX more usable on embedded hardware we need some way to access the
|
||
GPIO features of the system on chip’s. Generally System on Chips (SoC) designs
|
||
provide some way configure pads to perform basic Input/Output configuration on
|
||
selected ports. These ports are also usually grouped into a bank. The end
|
||
result is that you have a functional general input output block where you need
|
||
to configure some the following functions.
|
||
|
||
Functional requirements
|
||
|
||
We envision that the short term usage of the GPIO library will be booth input
|
||
and output handling. Input handling as we want to be able to listen to button
|
||
presses and genrate key events and output handling because we want to be able
|
||
to control leds.
|
||
|
||
GPIO required functionality
|
||
-Configure pins as input or output.
|
||
-Configure the impedance of the pins.
|
||
-Get or set the values of the pins(possibly in a single call).
|
||
-Configure interrupt levels for input pins.
|
||
|
||
Configure debouncing of pins.
|
||
|
||
Additional kernel requirements
|
||
-Manage the GPIO resources (who may access what)
|
||
-Access the GPIO pins from within driver (for the keyboard)
|
||
-Access the GPIO pins from within userland (for toggeling leds)
|
||
|
||
|
||
Usage:
|
||
You have to manualy mount the gpio fs using the following command
|
||
|
||
# mount -t gpio none /gpio
|
||
|