Difference between revisions of "Fitlet GPIO SDK for Linux"
From fit-PC wiki
(→GPIO) (change visibility) |
(→Overview) (change visibility) |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | == | + | __TOC__ |
− | * | + | == Overview == |
− | + | * Not supported in mainline Linux kernel | |
− | + | * [[Fitlet:_Linux:_Kernel | Linux Kernel for Fitlet]] must be installed to make this feature work | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
* GPIO interface on fitlet consists of 9 GPIOs provided by AMD FCH (Fusion Controller Hub) | * GPIO interface on fitlet consists of 9 GPIOs provided by AMD FCH (Fusion Controller Hub) | ||
* The responsible kernel module is gpio_fch | * The responsible kernel module is gpio_fch | ||
Line 15: | Line 9: | ||
{| cellpadding="3" border="1" style="border: 1px solid rgb(85, 85, 85); border-collapse: collapse;" | {| cellpadding="3" border="1" style="border: 1px solid rgb(85, 85, 85); border-collapse: collapse;" | ||
− | |+ GPIO | + | |+ GPIO connector pinout |
|- | |- | ||
− | | Pin | + | | Pin Number |
− | | Color | + | | Color Code |
| GPIO name | | GPIO name | ||
+ | | Power domain | ||
| HW source | | HW source | ||
| Notes | | Notes | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| 1 | | 1 | ||
| Brown | | Brown | ||
− | |||
− | |||
| GPIO89 | | GPIO89 | ||
| 3.3V | | 3.3V | ||
− | | | + | | SoC |
− | | | + | | |
|- | |- | ||
| 2 | | 2 | ||
| Red | | Red | ||
− | |||
− | |||
| GPIO132 | | GPIO132 | ||
| 3.3V | | 3.3V | ||
− | | | + | | SoC |
− | | | + | | |
|- | |- | ||
| 3 | | 3 | ||
| Orange | | Orange | ||
− | |||
− | |||
| GPIO65 | | GPIO65 | ||
| 3.3V | | 3.3V | ||
− | | | + | | SoC |
− | | | + | | |
|- | |- | ||
| 4 | | 4 | ||
| Yellow | | Yellow | ||
− | |||
− | |||
| GPIO66 | | GPIO66 | ||
| 3.3V | | 3.3V | ||
− | | | + | | SoC |
− | | | + | | |
|- | |- | ||
| 5 | | 5 | ||
| Green | | Green | ||
− | |||
− | |||
| GPIO29 | | GPIO29 | ||
| 1.5V | | 1.5V | ||
− | | | + | | SoC |
− | | | + | | |
|- | |- | ||
| 6 | | 6 | ||
| Blue | | Blue | ||
− | |||
| I2C Clock | | I2C Clock | ||
− | |||
| 3.3V | | 3.3V | ||
− | | | + | | SoC |
| | | | ||
|- | |- | ||
| 7 | | 7 | ||
| Purple | | Purple | ||
− | |||
| I2C Data | | I2C Data | ||
− | |||
| 3.3V | | 3.3V | ||
− | | | + | | SoC |
| | | | ||
|- | |- | ||
| 8 | | 8 | ||
| Grey | | Grey | ||
− | |||
− | |||
| GPIO73 | | GPIO73 | ||
| 3.3V | | 3.3V | ||
− | | | + | | SoC |
− | | | + | | |
|- | |- | ||
| 9 | | 9 | ||
| White | | White | ||
− | |||
− | |||
| GPIO27 | | GPIO27 | ||
| 1.5V | | 1.5V | ||
− | | | + | | SoC |
− | | | + | | |
|- | |- | ||
| 10 | | 10 | ||
| Black | | Black | ||
− | |||
− | |||
| GPIO28 | | GPIO28 | ||
| 1.5V | | 1.5V | ||
− | | | + | | SoC |
− | | | + | | |
|- | |- | ||
| 11 | | 11 | ||
| Brown | | Brown | ||
− | |||
− | |||
| GPIO12 | | GPIO12 | ||
| 3.3V | | 3.3V | ||
− | | | + | | SoC |
− | | | + | | |
|- | |- | ||
| 12 | | 12 | ||
| Red | | Red | ||
− | |||
| UART Rx | | UART Rx | ||
− | |||
| 3.3V | | 3.3V | ||
− | | | + | | SuperIO |
| | | | ||
|- | |- | ||
| 13 | | 13 | ||
| Orange | | Orange | ||
− | |||
| UART Tx | | UART Tx | ||
− | |||
| 3.3V | | 3.3V | ||
− | | | + | | SuperIO |
| | | | ||
|- | |- | ||
| 14 | | 14 | ||
| Yellow | | Yellow | ||
− | |||
| | | | ||
| | | | ||
| GND | | GND | ||
− | |||
| | | | ||
|} | |} | ||
− | + | == Usage == | |
* The GPIO sysfs interface allows users to manipulate any GPIO from userspace dynamically. | * The GPIO sysfs interface allows users to manipulate any GPIO from userspace dynamically. | ||
− | * A basic example of GPIO usage (as root user): | + | * A basic example of GPIO P-1 (Brown) usage (as root user): |
− | $ modprobe | + | $ modprobe gpio_fch |
$ echo 89 > /sys/class/gpio/export | $ echo 89 > /sys/class/gpio/export | ||
$ echo out > /sys/class/gpio/gpio89/direction | $ echo out > /sys/class/gpio/gpio89/direction | ||
Line 234: | Line 130: | ||
$ echo 89 > /sys/class/gpio/unexport | $ echo 89 > /sys/class/gpio/unexport | ||
− | + | == Documentation == | |
− | * The GPIO framework and GPIO sysfs interface are documented in | + | * The GPIO framework and GPIO sysfs interface are documented in https://www.kernel.org/doc/Documentation/gpio/gpio.txt |
[[category:fitlet]] | [[category:fitlet]] |
Latest revision as of 09:03, 24 January 2016
Contents
Overview
- Not supported in mainline Linux kernel
- Linux Kernel for Fitlet must be installed to make this feature work
- GPIO interface on fitlet consists of 9 GPIOs provided by AMD FCH (Fusion Controller Hub)
- The responsible kernel module is gpio_fch
- The kernel module uses the following pin naming convention:
Pin Number | Color Code | GPIO name | Power domain | HW source | Notes |
1 | Brown | GPIO89 | 3.3V | SoC | |
2 | Red | GPIO132 | 3.3V | SoC | |
3 | Orange | GPIO65 | 3.3V | SoC | |
4 | Yellow | GPIO66 | 3.3V | SoC | |
5 | Green | GPIO29 | 1.5V | SoC | |
6 | Blue | I2C Clock | 3.3V | SoC | |
7 | Purple | I2C Data | 3.3V | SoC | |
8 | Grey | GPIO73 | 3.3V | SoC | |
9 | White | GPIO27 | 1.5V | SoC | |
10 | Black | GPIO28 | 1.5V | SoC | |
11 | Brown | GPIO12 | 3.3V | SoC | |
12 | Red | UART Rx | 3.3V | SuperIO | |
13 | Orange | UART Tx | 3.3V | SuperIO | |
14 | Yellow | GND |
Usage
- The GPIO sysfs interface allows users to manipulate any GPIO from userspace dynamically.
- A basic example of GPIO P-1 (Brown) usage (as root user):
$ modprobe gpio_fch $ echo 89 > /sys/class/gpio/export $ echo out > /sys/class/gpio/gpio89/direction $ echo 1 > /sys/class/gpio/gpio89/value ## at this point voltage measuring on P-1 (Brown) should give 3.3V $ echo 0 > /sys/class/gpio/gpio89/value ## at this point voltage measuring on P-1 (Brown) should give 0.0V $ echo 89 > /sys/class/gpio/unexport
Documentation
- The GPIO framework and GPIO sysfs interface are documented in https://www.kernel.org/doc/Documentation/gpio/gpio.txt