Version 2 (modified by Tim Harvey, 3 years ago) (diff)

clarified sysfsgpio

Laguna Digital IO

The intent of this page is to provide information about Laguna single board computers off-board digital IO signals.

DIO Mapping

Laguna baseboards provide digital IO signals to an off-board connector. These DIO's are provided by the Laguna Gateworks System Controller (GSC) which emulates a PCA9555 I2C port expander. Each GPIO controller gets mapped to a range of Linux gpio's by the Linux kernel. Note that this mapping is not guaranteed to stay the same across kernel versions - you can look at the debugfs /sys/kernel/debug/gpio file to see where the GPIO controllers are mapped. For Laguna this mapping is configured by the laguna board support file which also registers them with the Linux kernel thus there is no need to 'export' them.

The various Laguna product hardware manuals contain a table of what pins on the Digital IO connector routes to what CN3XXX GPIO. For convenience this information is also provided in the table below.

Note that all four DIO signals contain an internal weak pulldown approximately 50kohm.

Laguna GPIO Mapping:

Board DIO1 Connector2 Controller / GPIO3 Linux sysfsgpio 4 Termination5 Notes
GW2388-4 DIO0 J9.1 PCA9555 i2c0-0x23 P1.0 gpio-108 22.1ohm R/C/TVS termination
DIO1 J9.3 PCA9555 i2c0-0x23 P1.1 gpio-109 22.1ohm R/C/TVS termination
DIO2 J9.5 PCA9555 i2c0-0x23 P1.2 gpio-110 22.1ohm R/C/TVS termination
DIO3 J9.7 PCA9555 i2c0-0x23 P1.3 gpio-111 22.1ohm R/C/TVS termination
DIO3 J9.8 PCA9555 i2c0-0x23 P1.4 gpio-112 22.1ohm R/C/TVS termination
GND J9.10 - -
GW2387 DIO0 J2.2 PCA9555 i2c0-0x23 P1.0 gpio-108 332ohm R/C/TVS termination
DIO1 J2.4 PCA9555 i2c0-0x23 P1.1 gpio-109 332ohm R/C/TVS termination
DIO2 J2.6 PCA9555 i2c0-0x23 P1.2 gpio-110 332ohm R/C/TVS termination
DIO3 J2.8 PCA9555 i2c0-0x23 P1.3 gpio-111 332ohm R/C/TVS termination
DIO3 J2.10 PCA9555 i2c0-0x23 P1.4 gpio-112 332ohm R/C/TVS termination
GND J2.9 - -
GW2383 DIO0 J9.5 PCA9555 i2c0-0x23 P0.0 gpio-100 332ohm R/C/TVS termination
DIO1 J9.7 PCA9555 i2c0-0x23 P0.1 gpio-101 332ohm R/C/TVS termination
GPIO0 J9.6 CNS3XXX GPIOA-3 gpio-3 22.1ohm R termination
GPIO1 J9.8 CNS3XXX GPIOA-8 gpio-8 22.1ohm R termination
GND J9.9 - -
VDD_3P3 J9.10 - - 1.0A max
GW2382 DIO0 J8.5 PCA9555 i2c0-0x23 P0.0 gpio-100 RC/TVS termination
DIO1 J8.7 PCA9555 i2c0-0x23 P0.1 gpio-101 RC/TVS termination
GPIO0 J8.6 CNS3XXX GPIOA-3 gpio-3 22.1ohm R termination
GPIO1 J8.8 CNS3XXX GPIOA-8 gpio-8 22.1ohm R termination
GND J9.9 - -
VDD_3P3 J9.10 - - 1.0A max
GW2380 DIO0 J4.3 PCA9555 i2c0-0x23 P0.0 gpio-100 22.1ohm R termination
DIO1 J4.5 PCA9555 i2c0-0x23 P0.1 gpio-101 22.1ohm R termination
DIO2 J4.10 PCA9555 i2c0-0x23 P0.2 gpio-102 22.1ohm R termination
DIO3 J4.8 PCA9555 i2c0-0x23 P0.3 gpio-103 22.1ohm R termination
GPIO0 J8.6 CNS3XXX GPIOA-3 gpio-3 22.1ohm R termination
GPIO1 J8.8 CNS3XXX GPIOA-8 gpio-8 22.1ohm R termination
GND J4.6 - -
VDD_3P3 J4.1 - - 1.0A max
  1. This is the signal name from the ​Laugna hardware manuals
  2. This is the connector pinout
  3. This is the GPIO as seen by the GPIO controller:
    • PCA9555 i2c0-0x23 can source/sink approximately 30mA with an internal pull-up of appx 100k
    • CN3XXX GPIO can source/sink approximately 10uA with no internal pull-up/down
  4. This is the gpio mapped in the linux sysfsgpio API accessible via /sys/class/gpio.
  5. Electrical termination includes in some cases a series resistor (R), a capacitor to GND (C), and a Transient Voltage Suppression (TVS) diode

Software GPIO Configuration

Please visit this link to find out more information about using GPIO's in Linux

Configuring GPIO Hardware

The CN3XXX GPIO signals do not have the ability to configure their drive strength or other I/O characteristics.