| | 1 | [[PageOutline]] |
| | 2 | |
| | 3 | = Catalina Digital IO |
| | 4 | The intent of this page is to provide information about Catalina single board computers general purpose off-board digital IO signals. |
| | 5 | |
| | 6 | |
| | 7 | [=#dio] |
| | 8 | = DIO and Pin Function Mapping |
| | 9 | Catalina baseboards provide multiple digital IO signals to a connector. The IMX95 has multiple GPIO blocks having 32 GPIO's each which typically get mapped to gpio 0 - through gpio 159 in 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 IMX8MM GPIO controller is mapped. |
| | 10 | |
| | 11 | The various Catalina product hardware manuals contain a table of what pins on the Digital IO connector routes to what CPU GPIO. In some cases these signals can be pinmux'd internally to other functions as indicated in the table. |
| | 12 | |
| | 13 | See the operating manual "Specifications", "Electrical" section for information on DIO max and min driving strength. |
| | 14 | |
| | 15 | ''' Note on Termination ''' |
| | 16 | |
| | 17 | Most of the standard DIO lines below (labeled DIO0,DIO1,DIO2,etc) which are connected to the i.MX95 SoC: |
| | 18 | * Operate on 3.3V logic |
| | 19 | * Have a 332-ohm series resistor for limiting current. |
| | 20 | * Have a 390 pF capacitor for debounce |
| | 21 | * Have a ESD TVS Diode |
| | 22 | * Have a 4.75k ohm pull up resistor to 3.3 |
| | 23 | * Have an internal weak pulldown at approximately 30-40k ohm. |
| | 24 | |
| | 25 | |
| | 26 | Please contact Gateworks support if more information is required about a specific SBC. |
| | 27 | |
| | 28 | Catalina DIO Mapping (NOTE: Venice hardware manuals should be used for official pinouts): |
| | 29 | ||= Board =||= Connector^^^1^^^ =||= Primary Function^^^2^^^ =||= IMX8M_PAD =||= U-Boot^^^3^^^ =||= Linux^^^4^^^ =||= Notes || |
| | 30 | || GW920x || J19.1 || DIO0 || GPIO[3]:DIO[26] || GPIO[3]:DIO[26] || dio0 || || |
| | 31 | || || J19.2 || DIO1 || GPIO[3]:DIO[27] || GPIO[3]:DIO[27] || dio1 || || |
| | 32 | |
| | 33 | 1. This is the connector pinout. |
| | 34 | 2. This is the signal name from the [http://www.gateworks.com/usermanuals Catalina hardware manuals] |
| | 35 | 3. This is the bank_pin name that can be used in U-Boot (see [wiki:gpio#uboot here]) |
| | 36 | 4. This is the name provided to Linux via gpio-line-names in the device-tree (see [wiki:gpio#gpiolib here]) |
| | 37 | 5. Any of the above pin function assignments can be altered by changing the device-tree to change the pinmux which is also where you can specify drive strength, pull-up, pull-down etc. Read more about gaining more GPIOs via pinmuxing [https://trac.gateworks.com/wiki/linux/devicetree#Venice here] |
| | 38 | |
| | 39 | Note that all signals (unless noted in notes) are 3.3V tolerant. |
| | 40 | |
| | 41 | Note that any GPIO can be used for the following: |
| | 42 | - an additional SPI chip-select for those boards that have a SPI bus connector |
| | 43 | - a 'bit-banged' PWM (using CPU timers) |
| | 44 | - a 'bit-banged' I2C bus (using CPU timers) |
| | 45 | - a 'bit-banged' MDIO bus (using CPU timers) |
| | 46 | |
| | 47 | === How to Gain More GPIO or Pinmux |
| | 48 | |
| | 49 | Read more about gaining more GPIOs or re-assigning via pinmuxing [https://trac.gateworks.com/wiki/linux/devicetree#Venice here] |
| | 50 | |
| | 51 | === GPIO Mapping Table |
| | 52 | |
| | 53 | Please see the generic Linux GPIO conversion here: [wiki:gpio#GPIOmapping] |
| | 54 | |
| | 55 | |
| | 56 | = Useful links |
| | 57 | * [wiki:gpio Linux GPIO and GPIO basics] |
| | 58 | - [wiki:gpio#gpiolib Linux GPIO usage] |
| | 59 | - [wiki:gpio#uboot U-Boot GPIO usage] |
| | 60 | * [wiki:linux/pwm Configuring PWM Hardware] |
| | 61 | * [wiki:I2C Linux I2C] |
| | 62 | * Read more about gaining more GPIOs via pinmuxing [https://trac.gateworks.com/wiki/linux/devicetree#Venice here] |