diff options
Diffstat (limited to 'target/linux/armsr/base-files/etc')
-rw-r--r-- | target/linux/armsr/base-files/etc/board.d/03_gpio_switches | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/target/linux/armsr/base-files/etc/board.d/03_gpio_switches b/target/linux/armsr/base-files/etc/board.d/03_gpio_switches index cf07bc0f54..72f310277a 100644 --- a/target/linux/armsr/base-files/etc/board.d/03_gpio_switches +++ b/target/linux/armsr/base-files/etc/board.d/03_gpio_switches @@ -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 |