在iMX.6上配置控制GPIO而不配置设备树

时间:2016-11-11 04:51:08

标签: 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上,我不能再使用IMX_GPIO_NR了。相反,of_get_named_gpio提供对DT中定义的GPIO的访问。但它有点复杂,因为我们的产品永远不会改变GPIO端口。

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

1 个答案:

答案 0 :(得分:2)

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

其次,永远不要说永远。

And finally

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