meta-fii: meta-kudo: Use I2C array definitions in kudo-lib.sh

Adds the I2C bus and address in array form to kudo-lib.sh, and
replaces the hardcoded values with references across Kudo layer.

Signed-off-by: Charles Boyer <Charles.Boyer@fii-usa.com>
Change-Id: I69bbff444e013e61d7f7fd5051612a6d4adc8ded
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw-ver.sh b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw-ver.sh
index 23a65c1..533fa8e 100644
--- a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw-ver.sh
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw-ver.sh
@@ -10,12 +10,11 @@
 function fw_rev() {
     case $1 in
     cpldb)
-        rsp=($(i2cget -y -f -a 13 0x76 0x00 i 5))
+        rsp=($(i2cget -y -f -a "${I2C_BMC_CPLD[0]}" 0x"${I2C_BMC_CPLD[1]}" 0x00 i 5))
         ver=$(printf '%d.%d.%d.%d' "${rsp[5]}" "${rsp[4]}" "${rsp[3]}" "${rsp[2]}")
         ;;
     cpldm)
-        I2C_BUS_DEV=$(readlink "/sys/bus/i2c/devices/4-0077/channel-2" | cut -c 8-)
-        rsp=($(i2cget -y -f -a "$I2C_BUS_DEV" 0x76 0x00 i 5))
+        rsp=($(i2cget -y -f -a "${I2C_MB_CPLD[0]}" 0x"${I2C_MB_CPLD[1]}" 0x00 i 5))
         ver=$(printf '%d.%d.%d.%d' "${rsp[5]}" "${rsp[4]}" "${rsp[3]}" "${rsp[2]}")
         ;;
     *)
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw.sh b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw.sh
index 6f9ec72..42e4af8 100644
--- a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw.sh
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-fw.sh
@@ -6,14 +6,12 @@
 # shellcheck disable=SC2086
 source /usr/libexec/kudo-fw/kudo-lib.sh
 
-devpath="/sys/bus/i2c/devices/13-0077/driver"
-
 function fwbios() {
   KERNEL_FIU_ID="c0000000.spi"
   KERNEL_SYSFS_FIU="/sys/bus/platform/drivers/NPCM-FIU"
 
   # switch the SPI mux from Host to BMC
-  i2cset -y -f -a 13 0x76 0x10 0x01
+  i2cset -y -f -a ${I2C_BMC_CPLD[0]} 0x${I2C_BMC_CPLD[1]} 0x10 0x01
 
   # rescan the spi bus
   if [ -d "${KERNEL_SYSFS_FIU}/${KERNEL_FIU_ID}" ]; then
@@ -41,7 +39,7 @@
   if [ -d "${KERNEL_SYSFS_FIU}/${KERNEL_FIU_ID}" ]; then
     echo "${KERNEL_FIU_ID}" > "${KERNEL_SYSFS_FIU}"/unbind
   fi
-  i2cset -y -f -a 13 0x76 0x10 0x00
+  i2cset -y -f -a ${I2C_BMC_CPLD[0]} 0x${I2C_BMC_CPLD[1]} 0x10 0x00
 
   # Disable LPI mode NV_SI_CPU_LPI_FREQ_DISABLE for SCP 1.06 and older.
   if [ "$(nvparm -s 0x1 -o 0x114090)" -ne  0 ]; then
@@ -106,9 +104,7 @@
   scp_eeprom_sel=$(get_gpio_ctrl BACKUP_SCP_SEL)
   set_gpio_ctrl BACKUP_SCP_SEL 1
   set_gpio_ctrl CPU_EEPROM_SEL 0
-  #shellcheck disable=SC2010
-  I2C_BUS_DEV=$(ls -l $devpath/"13-0077/" | grep channel-0 | awk '{ print $11}' | cut -c 8-)
-  if [ "$(ampere_eeprom_prog -b $I2C_BUS_DEV -s 0x50 -p -f $1)" -ne  0 ]; then
+  if [ "$(ampere_eeprom_prog -b ${I2C_CPU_EEPROM[0]} -s 0x${I2C_CPU_EEPROM[1]} -p -f $1)" -ne  0 ]; then
     echo "SCP eeprom update failed" >&2
     return 1
   fi
@@ -125,9 +121,7 @@
   scp_eeprom_sel=$(get_gpio_ctrl BACKUP_SCP_SEL)
   set_gpio_ctrl BACKUP_SCP_SEL 0
   set_gpio_ctrl CPU_EEPROM_SEL 0
-  #shellcheck disable=SC2010
-  I2C_BUS_DEV=$(ls -l $devpath/"13-0077/" | grep channel-0 | awk '{ print $11}' | cut -c 8-)
-  if [ "$(ampere_eeprom_prog -b $I2C_BUS_DEV -s 0x50 -p -f $1)" -ne  0 ]; then
+  if [ "$(ampere_eeprom_prog -b ${I2C_CPU_EEPROM[0]} -s 0x${I2C_CPU_EEPROM[1]} -p -f $1)" -ne  0 ]; then
     echo "SCP BACKUP eeprom update failed" >&2
     return 1
   fi
@@ -149,14 +143,14 @@
     echo "The file $2 file does not exist"
     return 1
   fi
-  echo 32-0040 > /sys/bus/i2c/drivers/adm1266/unbind
-  echo 32-0041 > /sys/bus/i2c/drivers/adm1266/unbind
+  echo ${I2C_MB_PWRSEQ1[0]}-00${I2C_MB_PWRSEQ1[1]} > /sys/bus/i2c/drivers/adm1266/unbind
+  echo ${I2C_MB_PWRSEQ2[0]}-00${I2C_MB_PWRSEQ2[1]} > /sys/bus/i2c/drivers/adm1266/unbind
   if [ "$(adm1266_fw_fx $1 $2)" -ne  0 ]; then
     echo "The power seq flash failed" >&2
     return 1
   fi
-  echo 32-0040 > /sys/bus/i2c/drivers/adm1266/bind
-  echo 32-0041 > /sys/bus/i2c/drivers/adm1266/bind
+  echo ${I2C_MB_PWRSEQ1[0]}-00${I2C_MB_PWRSEQ1[1]} > /sys/bus/i2c/drivers/adm1266/bind
+  echo ${I2C_MB_PWRSEQ2[0]}-00${I2C_MB_PWRSEQ2[1]} > /sys/bus/i2c/drivers/adm1266/bind
 
   return 0
 }
diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh
index 063cc55..fd0aa20 100644
--- a/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh
+++ b/meta-fii/meta-kudo/recipes-kudo/kudo-fw-utility/kudo-fw/kudo-lib.sh
@@ -1,5 +1,8 @@
 #!/bin/bash
 
+# Disable check for usage of the definitions within kudo-lib.sh
+# shellcheck disable=SC2034
+
 # get_gpio_num
 # Dynamically obtains GPIO number from chip base and I2C expanders through line name
 # line-name
@@ -36,3 +39,18 @@
     cat /sys/class/gpio/gpio"$GPIO_NUM"/value
     echo "$GPIO_NUM" > /sys/class/gpio/unexport
 }
+
+# I2C Definitions
+# The array is (<bus> <address>), where address is in hexadecimal.
+I2C_BMC_CPLD=(13 76)
+I2C_MB_CPLD=(34 76)
+I2C_S0_SMPRO=(2 4f)
+I2C_S1_SMPRO=(2 4e)
+I2C_FANCTRL=(18 2c)
+I2C_BMC_PWRSEQ=(14 59)
+I2C_MB_PWRSEQ1=(32 40)
+I2C_MB_PWRSEQ2=(32 41)
+I2C_CPU_EEPROM=(40 50)
+I2C_S1_CLKGEN=(37 68)
+I2C_S1_PCIE_CLKGEN1=(16 6a)
+I2C_S1_PCIE_CLKGEN2=(17 67)