1General Purpose Input and Output 2 3To make MINIX more usable on embedded hardware, we need some way to access the 4GPIO features of the system on a chip. Generally System on Chips (SoC) designs 5provide some way to configure pads to perform basic Input/Output operations on 6selected ports. These ports are also usually grouped into banks. The end 7result is that you have a functional general input output block where you need 8to configure some the following functions. 9 10Functional Requirements 11 12We envision that the short term usage of the GPIO library will be both input 13and output handling. Input handling as we want to be able to listen to button 14presses and generate key events, and output handling because we want to be able 15to control LEDs. 16 17GPIO required functionality 18-Configure pins as input or output. 19-Configure the impedance of the pins. 20-Get or set the values of the pins (possibly in a single call). 21-Configure interrupt levels for input pins. 22-Configure debouncing of pins. 23 24Additional kernel requirements: 25-Manage the GPIO resources (who may access what) 26-Access the GPIO pins from within driver (for the keyboard) 27-Access the GPIO pins from within userland (for toggling LEDs) 28 29 30Usage: 31You have to manually mount the gpio fs using the following command 32 33# mkdir -p /gpio 34# mount -t gpio none /gpio 35 36