凌云实验室推出的ARM Linux物联网网关开发板IGKBoard(IoT Gateway Kit Board)项目源码
guowenxue
2022-10-29 325f1949a4672d0936e406fc75c3b26446a40f18
bsp/rootfs/files/pinctrl
@@ -1,9 +1,4 @@
#!/bin/sh
# Copyright (C) 2022 LingYun IoT System Studio
# Author: Guo Wenxue<guowenxue@gmail.com>
#
# This shell script used to control GPIO port on IGKBoard
#
direction=out
sysdir=/sys/class/gpio/
@@ -19,40 +14,40 @@
# RedLed: GPIO01_IO11  GreenLed: GPIO01_IO10 BlueLed: GPIO05_IO09
function usage()
{
   echo "Show pinmap Usage: $0 [-v]"
   echo "Output set  Usage: $0 GPIO01_IO11 [1/0]"
   echo "Input read  Usage: $0 [-i] GPIO01_IO11"
   echo "Unexport    Usage: $0 [-u] GPIO01_IO11"
   echo "Show pinmap Usage: $0 [-v]"
   echo "Output set  Usage: $0 GPIO01_IO11 [1/0]"
   echo "Input read  Usage: $0 [-i] GPIO01_IO11"
   echo "Unexport    Usage: $0 [-u] GPIO01_IO11"
   exit;
}
function show_pinmap()
{
   echo "
+-------------+-------------+-------------+-------------+-------------+
+-------------+-------------+---IGKBoard---+-------------+-------------+
|    GPIO     |     Name    |   Physical  |     Name    |    GPIO     |
+-------------+-------------+-----++------+-------------+-------------+
|     3.3v    |     3.3v    |   1 ||  2   |     5v      |     5v      |
| GPIO01_IO03 |   I2C1_SDA  |   3 ||  4   |     5v      |     5v      |
| GPIO01_IO02 |   I2C1_SCL  |   5 ||  6   |     GND     |     GND     |
| GPIO01_IO18 |     GPIO    |   7 ||  8   |  UART2_TX   | GPIO01_IO20 |
|     GND     |     GND     |   9 ||  10  |  UART2_RX   | GPIO01_IO21 |
| GPIO01_IO24 |   UART3_TX  |  11 ||  12  |  UART3_RX   | GPIO01_IO25 |
| GPIO01_IO28 |   UART4_TX  |  13 ||  14  |     GND     |     GND     |
| GPIO01_IO29 |   UART4_RX  |  15 ||  16  |  UART7_TX   | GPIO03_IO21 |
|     3.3v    |     3.3v    |  17 ||  18  |  UART7_RX   | GPIO03_IO22 |
| GPIO03_IO27 |   SPI1_MOSI |  19 ||  20  |     GND     |     GND     |
| GPIO03_IO28 |   SPI1_MISO |  21 ||  22  |     GPIO    | GPIO03_IO23 |
| GPIO03_IO25 |   SPI1_SCLK |  23 ||  24  |  SPI1_SS0   | GPIO03_IO26 |
|     GND     |     GND     |  25 ||  26  |     GPIO    | GPIO03_IO24 |
| GPIO01_IO26 |   CAN1_TX   |  27 ||  28  |     PWM8    | GPIO01_IO15 |
| GPIO01_IO27 |   CAN1_RX   |  29 ||  30  |     GND     |     GND     |
| GPIO01_IO22 |   CAN2_TX   |  31 ||  32  |     PWM7    | GPIO01_IO14 |
| GPIO01_IO23 |   CAN2_RX   |  33 ||  34  |     GND     |     GND     |
| GPIO05_IO01 |     GPIO    |  35 ||  36  |     GPIO    | GPIO01_IO11 |
| GPIO05_IO08 |     GPIO    |  37 ||  38  |     GPIO    | GPIO01_IO10 |
|     GND     |     GND     |  39 ||  40  |     GPIO    | GPIO05_IO09 |
+-------------+-------------+-------------+-------------+-------------+
|     3.3v    |     3.3v    |   1 ||  2   |     5v      |     5v      |
|  GPIO1_IO03 |   I2C1_SDA  |   3 ||  4   |     5v      |     5v      |
|  GPIO1_IO02 |   I2C1_SCL  |   5 ||  6   |     GND     |     GND     |
|  GPIO1_IO18 |      W1     |   7 ||  8   |  UART2_TX   |  GPIO1_IO20 |
|     GND     |     GND     |   9 ||  10  |  UART2_RX   |  GPIO1_IO21 |
|  GPIO1_IO24 |   UART3_TX  |  11 ||  12  |  UART3_RX   |  GPIO1_IO25 |
|  GPIO1_IO28 |   UART4_TX  |  13 ||  14  |     GND     |     GND     |
|  GPIO1_IO29 |   UART4_RX  |  15 ||  16  |  UART7_TX   |  GPIO3_IO21 |
|     3.3v    |     3.3v    |  17 ||  18  |  UART7_RX   |  GPIO3_IO22 |
|  GPIO3_IO27 |   SPI1_MOSI |  19 ||  20  |     GND     |     GND     |
|  GPIO3_IO28 |   SPI1_MISO |  21 ||  22  |     GPIO    |  GPIO3_IO23 |
|  GPIO3_IO25 |   SPI1_SCLK |  23 ||  24  |  SPI1_SS0   |  GPIO3_IO26 |
|     GND     |     GND     |  25 ||  26  |     GPIO    |  GPIO3_IO24 |
|  GPIO1_IO26 |   CAN1_TX   |  27 ||  28  |     PWM8    |  GPIO1_IO15 |
|  GPIO1_IO27 |   CAN1_RX   |  29 ||  30  |     GND     |     GND     |
|  GPIO1_IO22 |   CAN2_TX   |  31 ||  32  |     PWM7    |  GPIO1_IO14 |
|  GPIO1_IO23 |   CAN2_RX   |  33 ||  34  |     GND     |     GND     |
|  GPIO5_IO01 |     GPIO    |  35 ||  36  |     GPIO    |  GPIO1_IO11 |
|  GPIO5_IO08 |     GPIO    |  37 ||  38  |     GPIO    |  GPIO1_IO10 |
|     GND     |     GND     |  39 ||  40  |     GPIO    |  GPIO5_IO09 |
+-------------+-------------+---IGKBoard--+-------------+-------------+
|    GPIO     |     Name    |   Physical  |     Name    |    GPIO     |
+-------------+-------------+-----++------+-------------+-------------+
"
@@ -65,7 +60,7 @@
   group=`echo $pinstr | cut -d_ -f1 | tr -cd "[0-9]"`
   pin=`echo $pinstr | cut -d_ -f2 | tr -cd "[0-9]"`
   group=`expr $group \- 1`
   pinum=`expr $group \* $groupin + $pin + $pinbase`
@@ -112,12 +107,12 @@
do
    case "${OPTNAME}" in
        "i")
           direction="in"
           direction=in
           shift
           ;;
        "u")
           action="unexport";
           action=unexport;
           shift
           ;;
@@ -134,14 +129,14 @@
calc_pinum $1
if [[ "$action" == "unexport" ]] ; then
if [[ $action == unexport ]] ; then
   unexport_gpio
   exit;
fi
export_gpio
if [[ "$direction" == "in" ]] ; then
if [[ $direction == in ]] ; then
   read_gpio
else
   set_gpio $2