Difference between revisions of "Fitlet GPIO SDK for Linux"

From fit-PC wiki
Jump to: navigation, search
m (fitlet GPIO)   (change visibility)
(Overview)   (change visibility)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Installation ==
+
__TOC__
* Download the [http://www.fit-pc2.com/download/fitlet/Linux/mint/17/linux-image-3.16.7-generic.fitlet_2015.09.27_amd64.deb kernel image] and [http://www.fit-pc2.com/download/fitlet/Linux/mint/17/linux-headers-3.16.7-generic.fitlet_2015.09.27_amd64.deb kernel headers] to the fitlet.
+
== Overview ==
 
+
* Not supported in mainline Linux kernel
* Open the terminal and install the new linux-*.deb packages:
+
* [[Fitlet:_Linux:_Kernel | Linux Kernel for Fitlet]] must be installed to make this feature work
$ sudo dpkg -i /path/to/linux-*.deb
+
* GPIO interface on fitlet consists of 9 GPIOs provided by AMD FCH (Fusion Controller Hub)
 
+
* Reboot the system:
+
$ sudo reboot -f
+
 
+
== Usage ==
+
* GPIO interface on fitlet consists of 9 I/Os provided by AMD FCH (Fusion Controller Hub)
+
 
* The responsible kernel module is gpio_fch
 
* The responsible kernel module is gpio_fch
 
* The kernel module uses the following pin naming convention:
 
* The kernel module uses the following pin naming convention:
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 pin naming convention on fitlet
+
|+ GPIO connector pinout
 
|-
 
|-
| Pin number
+
| Pin Number
| Color code
+
| Color Code
 
| GPIO name
 
| GPIO name
 +
| Power domain
 
| HW source
 
| HW source
 
| Notes
 
| Notes
 
|-
 
|-
| P-1
+
| 1
 
| Brown
 
| Brown
 
| GPIO89
 
| GPIO89
| FCH
+
| 3.3V
 +
| SoC
 
|  
 
|  
 
|-
 
|-
| P-2
+
| 2
 
| Red
 
| Red
 
| GPIO132
 
| GPIO132
| FCH
+
| 3.3V
|  
+
| SoC
 +
|
 
|-
 
|-
| P-3
+
| 3
 
| Orange
 
| Orange
 
| GPIO65
 
| GPIO65
| FCH
+
| 3.3V
|  
+
| SoC
 +
|
 
|-
 
|-
| P-4
+
| 4
 
| Yellow
 
| Yellow
 
| GPIO66
 
| GPIO66
| FCH
+
| 3.3V
|  
+
| SoC
 +
|
 
|-
 
|-
| P-5
+
| 5
 
| Green
 
| Green
 
| GPIO29
 
| GPIO29
| FCH
+
| 1.5V
| Vout 1.5V
+
| SoC
 +
|
 
|-
 
|-
| P-8
+
| 6
 +
| Blue
 +
| I2C Clock
 +
| 3.3V
 +
| SoC
 +
|
 +
|-
 +
| 7
 +
| Purple
 +
| I2C Data
 +
| 3.3V
 +
| SoC
 +
|
 +
|-
 +
| 8
 
| Grey
 
| Grey
 
| GPIO73
 
| GPIO73
| FCH
+
| 3.3V
|  
+
| SoC
 +
|
 
|-
 
|-
| P-9
+
| 9
 
| White
 
| White
 
| GPIO27
 
| GPIO27
| FCH
+
| 1.5V
| Vout 1.5V
+
| SoC
 +
|
 
|-
 
|-
| P-10
+
| 10
 
| Black
 
| Black
 
| GPIO28
 
| GPIO28
| FCH
+
| 1.5V
| Vout 1.5V
+
| SoC
 +
|
 
|-
 
|-
| P-11
+
| 11
 
| Brown
 
| Brown
 
| GPIO12
 
| GPIO12
| FCH
+
| 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.
 
* 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 fch_gpio
+
  $ 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 92: Line 130:
 
  $ echo 89 > /sys/class/gpio/unexport
 
  $ echo 89 > /sys/class/gpio/unexport
  
* The source code of gpio_fch driver [http://www.fit-pc2.com/download/fitlet/Linux/mint/17/fitlet.gpio.3.16.diff fitlet.gpio.3.16.diff]
+
== Documentation ==
* The GPIO framework and GPIO sysfs interface are documented in [https://www.kernel.org/doc/Documentation/gpio/gpio.txt Linux Kernel Documentation :: GPIO]
+
* 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

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:


GPIO connector pinout
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