我正在使用模块colibriToradex
上的imx6ULL
系统和自定义板。
我正试图禁用液晶显示器,并使用它的gpios为我的传感器。我已经按照这个link中的答案做了。我被答案中的一个建议困住了。
除了将这些ping分配给iomoxc pinctrl组之外,还需要将pinctrl组分配给已启用的节点,以便初始化它们。如果愿意,可以专门为此目的创建一个新节点。
那条线是什么意思?是否需要创建属性设置为status
的虚拟节点?
我可以更改/dev/中出现的uart端口的名称吗?
如何在自定义板中启用okay
?
我的设备树源文件如下:
/dts-v1/;
#include "imx6ull-colibri-nonwifi.dtsi"
#include "imx6ull-colibri-eval-v3.dtsi"
/ {
model = "Toradex Colibri iMX6ULL 256MB on Colibri Evaluation Board V3";
compatible = "toradex,colibri_imx6ull-eval", "fsl,imx6ull";
&uart1 {
status = "okay";
};
&uart2 {
status = "okay";
};
&uart3 {
status = "okay";
};
&uart4 {
status = "disabled";
};
&uart5 {
status = "disabled";
};
&ecspi1 {
status = "okay";
};
&i2c1 {
status = "okay";
/* M41T0M6 real time clock on carrier board */
rtc: m41t0m6@68 {
status = "disabled";
};
};
&pwm1 {
status = "okay";
};
&pwm2 {
status = "okay";
};
&lcdif {
status = "disabled";
};
&iomux {
imx6ull-colibri {
pinctrl_additionalgpio: additionalgpios {
fsl,pins = <
MX6UL_PAD_UART2_RTS_B__GPIO1_IO23 0x14 // Pin 34 => GPS SafeBoot
MX6UL_PAD_CSI_DATA00__GPIO4_IO21 0x14 // Pin 101 => 1V8 Power Supply Enable
MX6UL_PAD_LCD_ENABLE__GPIO3_IO01 0x14 // Pin 44 => GPS EXINT
MX6UL_PAD_LCD_DATA07__GPIO3_IO12 0x14 // Pin 46 => GPS RST
MX6UL_PAD_LCD_DATA09__GPIO3_IO14 0x14 // Pin 48 => UNUSED
MX6UL_PAD_LCD_DATA06__GPIO3_IO11 0x14 // Pin 80 => SX1301 RST
>;
};
};
};
};
设备树
JTAG
可以在here上找到。设备树
imx6ull-colibri-nonwifi.dtsi
可以在here上找到。编辑:
在网上阅读了
imx6ull-colibri-eval-v3.dtsi
上的一些文档后,我自己试过几次。在下面找到我的DTS的最新版本。我还发现dts
在我的板中不起作用,因此我编辑了DTS以包括SPI。我添加了一个虚拟节点来启用gpio。
/dts-v1/;
#include "imx6ull-colibri-nonwifi.dtsi"
#include "imx6ull-colibri-eval-v3.dtsi"
/ {
model = "Toradex Colibri iMX6ULL 256MB on Colibri Evaluation Board V3";
compatible = "toradex,colibri_imx6ull-eval", "fsl,imx6ull";
&uart1 {
status = "okay";
};
&uart2 {
status = "okay";
};
&uart3 {
status = "okay";
};
&uart4 {
status = "disabled";
};
&uart5 {
status = "disabled";
};
&ecspi1 {
status = "okay";
};
&i2c1 {
status = "okay";
/* M41T0M6 real time clock on carrier board */
rtc: m41t0m6@68 {
status = "disabled";
};
};
&pwm1 {
status = "okay";
};
&pwm2 {
status = "okay";
};
&lcdif {
status = "disabled";
};
gpio_additional {
pinctrl-name = "default";
pinctrl-0 = <&pinctrl_additionalgpio>;
status = "okay";
};
&ecspi1 {
status = "okay";
};
&iomux {
imx6ull-colibri {
pinctrl_additionalgpio: additionalgpios {
fsl,pins = <
MX6UL_PAD_UART2_RTS_B__GPIO1_IO23 0x14 // Pin 34 => GPS SafeBoot
MX6UL_PAD_CSI_DATA00__GPIO4_IO21 0x14 // Pin 101 => 1V8 Power Supply Enable
MX6UL_PAD_LCD_ENABLE__GPIO3_IO01 0x14 // Pin 44 => GPS EXINT
MX6UL_PAD_LCD_DATA07__GPIO3_IO12 0x14 // Pin 46 => GPS RST
MX6UL_PAD_LCD_DATA09__GPIO3_IO14 0x14 // Pin 48 => UNUSED
MX6UL_PAD_LCD_DATA06__GPIO3_IO11 0x14 // Pin 80 => SX1301 RST
>;
};
};
};
};
最佳答案
1)这意味着您需要将pinctrl组(例如,您创建的pinctrl_additionalgpio
组)添加到节点。
我将以您在设备树中禁用的lcdif节点为例来说明添加到节点的pinctrl组。在本例中,pinctrl_lcdif_dat
和pinctrl_lcdif_ctrl
被添加到lcdif
节点:
&lcdif {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lcdif_dat
&pinctrl_lcdif_ctrl>;
};
您必须创建自己的节点并添加pinctrl组,或者找到合适的节点,例如:
myadditionalgpio {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_additionalgpio>;
};
2)我从来没有改变过设备的名称。如果只需要一个替代名称,则可以使用udev规则创建符号链接:
/etc/udev/rules.d/rename-uart.rules
KERNEL=="ttymxc0", SYMLINK+="test_serial"
然后您将拥有一个指向
/dev/test_serial
的/dev/ttymxc0
设备。3)您可以查看通用jtag toradex文档https://developer.toradex.com/knowledge-base/jtag。
关于linux - DTS文件可禁用LCD并在iMX6ULL中使用其GPIO,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51799533/