We are working on a custom board based on Sitara AM4378, using Timesys factory2021 (with kernel 4.14) and Timesys factory2022 (with kernel 5.4 and TI-SDK patches).
While trying to toggle certain gpios (e.g. 144 and 148), we are able to do so on factory2021 (kernel 4.14), but we are not able to export the gpio's in factory2022 (kernel 5.4). It is seen from the below logs that the folder 'gpiochip128' is missing in kernel 5.4. The 'ngpio' value of this in kernel 5.4 is 32, which possibly means the missing gpio's 144 anf 148 fall within the range of gpiochip128 (128 + 32 = 160).
Below are logs from kernel 5.4:
# uname -a Linux am437x_evm 5.4.106-ts-armv7l #1 PREEMPT Mon Apr 4 19:51:10 IST 2022 armv7l GNU/Linux
# ls
export gpiochip32 gpiochip64 unexport gpiochip0 gpiochip510 gpiochip96
# echo 144 > export
[ 112.615118] export_store: invalid GPIO 144 sh: write error: Invalid argument
# echo 148 > export
[ 142.842765] export_store: invalid GPIO 148 sh: write error: Invalid argument
# cat gpiochip64/ngpio
32
# cat gpiochip32/ngpio
32
# cat gpiochip0/ngpio
32
# cat gpiochip96/ngpio
32
# cat gpiochip510/ngpio
2
--------------------------------------------------------------------------
The above errors are not seen in kernel 4.14, as seen in below logs:
# uname -a
Linux gcs_hub_controller 4.14.79-ts-armv7l #2 PREEMPT Sat Apr 2 16:44:18 IST 2022 armv7l GNU/Linux
#
# pwd
/sys/class/gpio
# ls
export gpiochip0 gpiochip128 gpiochip32 gpiochip64 gpiochip96 unexport
# echo 144 > export
# ls
export gpiochip0 gpiochip32 gpiochip96
gpio144 gpiochip128 gpiochip64 unexport
#
# echo 148 > export
# ls
export gpio148 gpiochip128 gpiochip64 unexport
gpio144 gpiochip0 gpiochip32 gpiochip96
#
#
# cd gpiochip64
# cat ngpio
32
# cd ..
# cat gpiochip96/ngpio
32
# cat gpiochip128/ngpio
32