base-files: armsr: number Ten64 GPIOs according to kernel version
[openwrt/staging/stintel.git] / target / linux / armsr / base-files / etc / board.d / 03_gpio_switches
index cf07bc0f54fbc0572e6f4730cbb9726289a3bd54..72f310277ae311eae4f56ec5fe2979a6c12c6b03 100644 (file)
@@ -3,18 +3,26 @@
 
 . /lib/functions/uci-defaults.sh
 
+KERNEL_MAJOR=$(uname -r | awk -F '.' '{print $1}')
+KERNEL_MINOR=$(uname -r | awk -F '.' '{print $2}')
+
 board_config_update
 
 board=$(board_name)
 
 case "$board" in
 traverse,ten64)
-       ucidef_add_gpio_switch "lte_reset" "Cell Modem Reset" "376"
-       ucidef_add_gpio_switch "lte_power" "Cell Modem Power" "377"
-       ucidef_add_gpio_switch "lte_disable" "Cell Modem Airplane mode" "378"
-       ucidef_add_gpio_switch "gnss_disable" "Cell Modem Disable GNSS receiver" "379"
-       ucidef_add_gpio_switch "lower_sfp_txidsable" "Lower SFP+ TX Disable" "369"
-       ucidef_add_gpio_switch "upper_sfp_txdisable" "Upper SFP+ TX Disable" "373"
+       if [ "${KERNEL_MAJOR}" -ge "6" ] && [ "${KERNEL_MINOR}" -ge "6" ]; then
+               I2C_GPIO_BASE=640
+       else
+               I2C_GPIO_BASE=368
+       fi
+       ucidef_add_gpio_switch "lte_reset" "Cell Modem Reset" "$(($I2C_GPIO_BASE + 8))"
+       ucidef_add_gpio_switch "lte_power" "Cell Modem Power" "$(($I2C_GPIO_BASE + 9))"
+       ucidef_add_gpio_switch "lte_disable" "Cell Modem Airplane mode" "$((I2C_GPIO_BASE + 10))"
+       ucidef_add_gpio_switch "gnss_disable" "Cell Modem Disable GNSS receiver" "$(($I2C_GPIO_BASE + 11))"
+       ucidef_add_gpio_switch "lower_sfp_txidsable" "Lower SFP+ TX Disable" "$(($I2C_GPIO_BASE + 1))"
+       ucidef_add_gpio_switch "upper_sfp_txdisable" "Upper SFP+ TX Disable" "$(($I2C_GPIO_BASE + 5))"
        ;;
 esac