mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-18 21:28:02 +00:00
base-files: armsr: add script to migrate GPIO switches on Ten64 board
Due to a change in kernel 6.2, the GPIO numbers on certain architectures (including arm64) have changed. This script will update any defined GPIO switches to the new numbering. See https://lists.openwrt.org/pipermail/openwrt-devel/2024-March/042448.html for more information. In the future, the GPIO switch mechanism will likely be replaced with something using libgpiod. Signed-off-by: Mathew McBride <matt@traverse.com.au>
This commit is contained in:
parent
5f609d8960
commit
ffbc4c897f
@ -0,0 +1,37 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
# This script migrates GPIO switch pin numbers
|
||||
# from kernel versions prior to 6.6
|
||||
# See https://lists.openwrt.org/pipermail/openwrt-devel/2024-March/042448.html
|
||||
|
||||
. /lib/functions.sh
|
||||
|
||||
ten64_update_gpioswitch_num() {
|
||||
local section="$1"
|
||||
config_get gpio_pin "${section}" gpio_pin
|
||||
config_get gpio_name "${section}" name
|
||||
if [ -z "${gpio_pin}" ]; then
|
||||
return
|
||||
fi
|
||||
local this_pin_name=$(uci get "system.${section}.name")
|
||||
if [ "${gpio_pin}" -lt 640 ]; then
|
||||
new_pin_value=$(( $gpio_pin + 272 ))
|
||||
uci set "system.${section}.gpio_pin=${new_pin_value}"
|
||||
fi
|
||||
}
|
||||
|
||||
board=$(board_name)
|
||||
if [ "${board}" != "traverse,ten64" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
KERNEL_MINOR=$(uname -r | awk -F '.' '{print $2}')
|
||||
if [ "${KERNEL_MINOR}" -lt "6" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
config_load system
|
||||
config_foreach ten64_update_gpioswitch_num gpio_switch
|
||||
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user