GPIO numbers in DTS vs /sys/class/gpio - please explain

I have a device with this GPIOs:

root@OpenWrt:/# ls -1a  /sys/class/gpio
.
..
export
gpiochip416
gpiochip448
gpiochip480
unexport

root@OpenWrt:/# cat /sys/class/gpio/gpiochip*/base
416
448
480

root@OpenWrt:/# cat /sys/class/gpio/gpiochip*/ngpio
32
32
32

Let's say I need to add gpio493 to firmware

Script works:

echo 493 > /sys/class/gpio/export && \ 
echo out > /sys/class/gpio/gpio493/direction && \
echo 0 > /sys/class/gpio/gpio493/value && \
sleep 1 && \
echo 1 > /sys/class/gpio/gpio493/value && \
echo 493 > /sys/class/gpio/unexport

Expected that in DTS file I should set gpio number to 77 = (493 - smallest base 416), but in fact I need to write 13.

gpios = <&gpio 13 GPIO_ACTIVE_LOW>;

Why should I write 13 in DTS and how will software distinguish that 13 means gpiochip480/base + 13 and not gpiochip416/base + 13 ?

What's your device and what are you trying to achieve by changing the .dts?

It's for both new device Comfast EW72 V2on mt7621 in neighbour thread, and for knowledge. Just to understand principles

Please do not create redundant topics.

This is not redundant topic - I request for explanation of gpio mechanism related to mt7621, not the specific device. There is also same unanswered topic #1 #2, not explained, etc.

I'd email Sergio about this. Small and incomplete quote from him:

For kernel developers, setting base in GPIOs is a no go. You have to
let the kernel to assign its numbers so you can handle different GPIO
layouts with multiple chips.
This is the reason we have 'gpio-line-names' property so you can set
up names for your pins and use it together with actual user space
tools libgpiod and gpiod. Any other gpio user space library is
considered deprecated in these days.