【发布时间】:2015-04-17 07:42:40
【问题描述】:
我正在开发 iMX6 Wandboard ARM computer。 Wandboard 的默认配置仅提供 8 个 GPIO 引脚供使用,尽管 iMX6 有更多可用引脚可以从当前设置切换到 GPIO 模式。我的项目需要更多 GPIO,为此我一直在尝试更改某些引脚的模式。
我能够修改 iMX6/wandboard 设备树文件并将其编译到 DTB 中并在我的设备上使用它(我通过禁用 HDMI 输出进行了测试),但我还没有弄清楚如何从它们当前更改一些引脚设置为 GPIO 模式。
我目前正在尝试将DISP0 显示(下面 pinfunc.h 中的MX6QDL_PAD_DISP0_DAT0 - DAT23)切换到 GPIO 模式,因为这些引脚在开发板上的接头上可用。我目前正在尝试使用来自 imx6qdl-wandboard.dsti 的这些引脚:
&iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hog_1>;
/* other fields unchanged */
gpio {
pinctrl_gpio: gpiogrp {
fsl,pins = <
MX6QDL_PAD_EIM_DA12__GPIO3_IO12 0x4001b0b0 /* GPIO3_12 EDM pin 255 */
MX6QDL_PAD_EIM_DA11__GPIO3_IO11 0x4001b0b0 /* GPIO3_11 EDM pin 256 */
MX6QDL_PAD_EIM_DA10__GPIO3_IO10 0x4001b0b0 /* GPIO3_10 EDM pin 257 */
MX6QDL_PAD_EIM_D27__GPIO3_IO27 0x4001b0b0 /* GPIO3_27 EDM pin 258 */
MX6QDL_PAD_EIM_D26__GPIO3_IO26 0x4001b0b0 /* GPIO3_26 EDM pin 259 */
MX6QDL_PAD_EIM_BCLK__GPIO6_IO31 0x4001b0b0 /* GPIO6_31 EDM pin 260 */
MX6QDL_PAD_EIM_DA8__GPIO3_IO08 0x4001b0b0 /* GPIO3_8 EDM pin 261 */
MX6QDL_PAD_ENET_RX_ER__GPIO1_IO24 0x4001b0b0 /* GPIO1_24 EDM pin 262 */
MX6QDL_PAD_GPIO_19__GPIO4_IO05 0x4001b0b0 /* GPIO4_5 EDM pin 263 */
MX6QDL_PAD_SD3_RST__GPIO7_IO08 0x4001b0b0 /* GPIO7_8 EDM pin 264 */
/* my added pins */
MX6QDL_PAD_DISP0_DAT0__GPIO4_IO21 0x4001b0b0 /* GPIO4_21 GPIO117 JP1-1*/
MX6QDL_PAD_EIM_D21__GPIO3_IO21 0x4001b0b0 /* GPIO3_21 GPIO85 JP2-9 */
>;
};
};
};
我首先尝试在 imx6qdl-wandboard.dtsi 中的 &ipu2 上使用 status = "disabled"; 字段,但这不允许我通过 /sys/class/gpio 界面更改值。也没有完全删除 ipu2 和 &iomuxc 块。我不知道下一步该尝试什么。我 90% 确定这些引脚可以用于我正在尝试的目的,但这种配置超出了我的理解范围。
Wandboard Linux 源码中的相关文件
- imx6q-pinfunc.h(所有 iMX6 引脚及其功能列表)
- imx6qdl.dtsi(基本 iMX6 设置)
- imx6q.dtsi(四核设置)
- imx6qdl-wandboard.dtsi(魔杖专用设置)
- imx6q-wandboard.dts(一种将其他人拉在一起的存根)
【问题讨论】:
-
你确定没有其他文件可以定义gpio的配置吗?我宁愿建议您确保 GPIO 确实在工作。 (GPIO可以只通过代码配置,不用dtsi配置)
-
是的,我可以通过 sysfs 使用其他配置的 GPIO 引脚(在代码示例中的更改上方列出)。列出的 10 个中的一些因未知原因无法工作,但其他都很好。 forums.wandboard.org/viewtopic.php?f=8&t=684
标签: linux device-tree