mirror of
https://github.com/openwrt/openwrt.git
synced 2025-01-30 08:04:10 +00:00
base-files: armsr: number Ten64 GPIOs according to kernel version
A change in kernel 6.2[1] caused the base numbers of GPIOs to change significantly on some architectures like aarch64. We have to number our GPIOs accordingly. Ideally the board.d scripts should look through sysfs to find the basenum (like cat "/sys/devices/platform/soc/2000000.i2c/ i2c-0/0-0076/gpio/gpiochip640/base"), but the problem is that this occurs before modules are loaded, meaning I2C and other runtime devices may be missing. Signed-off-by: Mathew McBride <matt@traverse.com.au> [1] https://lore.kernel.org/lkml/cover.1662116601.git.christophe.leroy@csgroup.eu/T/
This commit is contained in:
parent
c8927d7c01
commit
5f609d8960
@ -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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user