在 iMX.6 上无需配置设备树即可控制 GPIO

Control GPIO without Device Tree configure on iMX.6

在没有 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_GPIO_NR。相反,of_get_named_gpio 提供对 DT 中定义的 GPIO 的访问。但这有点复杂,因为我们的产品从不更改 GPIO 端口。

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

首先,如果您使用的是较新的内核,我建议您移植代码以支持最新的功能。否则——不适应内核何必升级?

其次,永不言败。

And finally:

#define IMX_GPIO_NR(bank, nr)           (((bank) - 1) * 32 + (nr))