aboutsummaryrefslogtreecommitdiff
path: root/target/linux/armsr/base-files/etc/uci-defaults/05-migrate-ten64-gpio
blob: dc8648e57059ab576341f1f037d3c86ee7dce204 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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