meta-fii: meta-kudo: Use GPIO line names instead of number

Replaces hard-coded GPIO throughout the Kudo layer with a reference
to its line name from DTS.

The process to dynamically obtain the GPIO number for Get is added
to kudo-lib.sh,
 1. Use `gpiofind <Line Name>` to obtain gpiochip# and pin#
 2. If the gpiochip# exceeds the number of GPIO banks of Nuvoton,
    then it is an I/O Expander.
    a. Use `gpiodetect` and extract the I2C bus-addr
    b. Obtain GPIO base value from sysfs using bus-addr
    c. The GPIO number is then the (base + pin#)
 3. If the gpiochip# is within Nuvoton GPIO banks, then calculate
    the GPIO number as ((gpiochip#)*32 + pin#)
Then the GPIO number can be used in the export to obtain the value.

Tested with Nuvoton:
 - Can read/set Nuvoton GPIO with defined line names
 - Can read/set GPIO from I/O Expanders with defined line names

Signed-off-by: Charles Boyer <Charles.Boyer@fii-usa.com>
Change-Id: I651c0707a8bbc170d3c5a5fc261e5f9c62453e9f
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh b/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh
index cd80674..fa5395d 100644
--- a/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh
@@ -6,17 +6,17 @@
 
 function set_mux_default(){
     # set all mux route to CPU before power on host
-    # BMC_CPU_RTC_I2C_SEL #120
-    set_gpio_ctrl 120 out 1
-    # BMC_CPU_DDR_I2C_SEL #84
-    set_gpio_ctrl 84 out 1
-    # BMC_CPU_EEPROM_I2C_SEL #85
-    set_gpio_ctrl 85 out 1
-    # BMC_CPU_PMBUS_SEL #86
-    set_gpio_ctrl 86 out 1
+    # BMC_CPU_RTC_I2C_SEL
+    set_gpio_ctrl CPU_RTC_SEL 1
+    # BMC_CPU_DDR_I2C_SEL
+    set_gpio_ctrl CPU_DDR_SEL 1
+    # BMC_CPU_EEPROM_I2C_SEL
+    set_gpio_ctrl CPU_EEPROM_SEL 1
+    # BMC_CPU_PMBUS_SEL
+    set_gpio_ctrl CPU_VRD_SEL 1
     # LED control
-    # LED_BMC_LIVE #7
-    set_gpio_ctrl 7 out 1
+    # LED_BMC_LIVE
+    set_gpio_ctrl LED_BMC_ALIVE 1
 
     # SPI control
     # Send command to CPLD to switch the bios spi interface to host
@@ -32,27 +32,27 @@
 # Set BMC_I2C_BACKUP_SEL to secondary.
 if [[ $boardver -lt 64 ]]; then
     echo "EVT system. Choosing secondary SCP EEPROM."
-    set_gpio_ctrl 168 out 0
+    set_gpio_ctrl BACKUP_SCP_SEL 0
     set_mux_default
     # Power control
-    # S0_BMC_OK, GPIO 69
-    set_gpio_ctrl 69 out 1
+    # S0_BMC_OK
+    set_gpio_ctrl S0_BMC_OK 1
 else
     echo "DVT or PVT system"
     # sleep so that FRU and all ipmitool Devices are ready before HOST OS
-    # gpio 143 for HPM_STBY_RST_N do to DC-SCM spec
-    set_gpio_ctrl 143 out 1     # on DVT this became HPM_STBY_RST_N (EVT1 came from CPLD)
+    # HPM_STBY_RST_N to DC-SCM spec
+    set_gpio_ctrl HPM_STBY_RST_N 1     # on DVT this became HPM_STBY_RST_N (EVT1 came from CPLD)
     sleep 5 # for the MUX to get ready
     set_mux_default
     # Power control
-    # S0_BMC_OK, GPIO 69
-    set_gpio_ctrl 69 out 1
+    # S0_BMC_OK
+    set_gpio_ctrl S0_BMC_OK 1
 fi
 
 # Disable CPU 1 CLK when cpu not detected
 # echo init_once cpu $CPU1_STATUS > /dev/ttyS0
 # echo init_once board $boardver > /dev/ttyS0
-CPU1_STATUS_N=$(get_gpio_ctrl 136)
+CPU1_STATUS_N=$(get_gpio_ctrl S1_STATUS_N)
 if [[ $CPU1_STATUS_N == 1 ]]; then
     #Execute this only on DVT systems
     if [[ $boardver -lt 64 ]]; then