Linux kernel 不在iMX上配置设备树的控制GPIO。6

Linux kernel 不在iMX上配置设备树的控制GPIO。6,linux-kernel,linux-device-driver,gpio,Linux Kernel,Linux Device Driver,Gpio,在没有DT(设备树)的旧iMX.6 BSP上,GPIO由以下代码控制: #define SABRESD_SHUTDOWN IMX_GPIO_NR(4, 15) gpio_request(SABRESD_SHUTDOWN, "shutdown"); gpio_direction_output(SABRESD_SHUTDOWN, 1); gpio_set_value(SABRESD_SHUTDOWN, 0); gpio_free(SABRESD_SHUTDOWN); 但是在新的BSP上

在没有DT(设备树)的旧iMX.6 BSP上,GPIO由以下代码控制:

#define SABRESD_SHUTDOWN    IMX_GPIO_NR(4, 15)

gpio_request(SABRESD_SHUTDOWN, "shutdown");

gpio_direction_output(SABRESD_SHUTDOWN, 1);
gpio_set_value(SABRESD_SHUTDOWN, 0);

gpio_free(SABRESD_SHUTDOWN);
但是在新的BSP上,我不能再使用
IMX\u GPIO\u NR
。相反,名为_gpio的_get _的提供了对DT中定义的gpio的访问。但这有点复杂,因为我们的产品从不更改GPIO端口


我的问题是,是否可以在没有DT定义的情况下控制GPIO(仅使用旧方法)?

首先,如果您使用的是较新的内核,我建议您移植代码以支持最新的功能。否则,如果您不愿意适应内核,为什么还要费心升级它呢

第二,永远不要说永远

:


首先,如果您使用的是较新的内核,我建议您移植代码以支持最新的功能。否则,如果您不愿意适应内核,为什么还要费心升级它呢

第二,永远不要说永远

:


是的,很好用!是的,它能起作用!谢谢
#define IMX_GPIO_NR(bank, nr)           (((bank) - 1) * 32 + (nr))