工具与软件:
在我们的客户电路板上有一个 I2C 扩展 IO 模块。 连接此模块后、IO 编号如下、检测到5个 gpiochips。 其中、gpiochip2gpiochip4mcu_gpio0main_gpio0main_gpio1分别表示、和。
卸下 I2C 模块后、只剩下四个 GPIO 芯片。 在这种情况下、gpiochip1gpiochip3表示mcu_gpio0、main_gpio0和main_gpio1。
可以观察到mcu_gpio0、main_gpio0和的起始 GPIO 编号main_gpio1发生了变化、这直接影响了应用程序的使用。
如何配置系统、以确保mcu_gpio0main_gpio0main_gpio1在卸下 I2C 扩展模块时、、和的起始 GPIO 编号保持不变?
当模块被连接时:
root@User:~# cat /sys/kernel/debug/gpio
gpiochip4: GPIOs 334-385, parent: platform/601000.gpio, 601000.gpio:
gpiochip3: GPIOs 386-477, parent: platform/600000.gpio, 600000.gpio:
gpiochip2: GPIOs 478-501, parent: platform/4201000.gpio, 4201000.gpio:
gpiochip1: GPIOs 502-509, parent: i2c/0-0020, 0-0020, can sleep:
gpiochip0: GPIOs 510-511, parent: platform/3b000000.memory-controller, omap-gpmc:
卸下模块后:
root@User:~# cat /sys/kernel/debug/gpio
gpiochip3: GPIOs 342-393, parent: platform/601000.gpio, 601000.gpio:
gpiochip2: GPIOs 394-485, parent: platform/600000.gpio, 600000.gpio:
gpiochip1: GPIOs 486-509, parent: platform/4201000.gpio, 4201000.gpio:
gpiochip0: GPIOs 510-511, parent: platform/3b000000.memory-controller, omap-gpmc: