Linux AGX jetson-Xavier 内核上的设备树 gpios
device tree gpios on Linux kernel for AGX jetson-Xavier
我正在使用 Xavier AGX,我在启动时在我的 dmesg 上发现了以下输出:
[ 0.963531] mc-err: mcerr ops are set to t19x
[ 0.971308] iommu: Adding device 2600000.dma to group 57
[ 0.978632] GPIO line 490 (pcie-reg-enable) hogged as output/high
[ 0.978710] GPIO line 289 (pcie-reg-enable) hogged as output/high
怎么在设备树(tegra194-p2888-0000-a00.dtsi)中写成:
gpio@2200000 {
pcie-reg-enable {
gpio-hog;
gpios = <TEGRA194_MAIN_GPIO(Z, 2) GPIO_ACTIVE_HIGH
TEGRA194_MAIN_GPIO(A, 1) GPIO_ACTIVE_LOW>;
label = "pcie-3v3-reg", "pcie-12v-reg";
output-high;
status = "okay";
};
Dtc 解码 (/boot/dtb/tegra194-p2888-0001-p2822-0000.dtb) 给出:
pcie-reg-enable {
gpio-hog;
gpios = <0xca 0x0 0x1 0x1>;
label = "pcie-3v3-reg", "pcie-12v-reg";
output-high;
status = "okay";
};
我很困惑为什么两者的输出都设置为 HIGH ?它应该是一低一高吗?
PS: 我对设备树不熟悉,请帮帮我。
GPIO_ACTIVE_LOW
设置意味着数据值将在写入硬件之前在软件中进行逻辑反转,并且来自硬件的原始数据值将在返回给调用者之前进行逻辑反转。 (还有 "raw" GPIO 访问函数的变体可以绕过这种逻辑反转。)
output-high;
DTS 属性表示GPIO线将配置为高电平输出
对于两个 GPIO,都将配置为具有高信号电平的输出,但是具有 GPIO_ACTIVE_LOW
设置的那个将具有逻辑值 0(除非您执行 "raw" 读取), 而带有 GPIO_ACTIVE_HIGH
设置的将具有逻辑值 1。如果您将值 1 写入(但不是 "raw" 写入)带有 GPIO_ACTIVE_LOW
设置的 GPIO,它输出将变为低信号电平。
我正在使用 Xavier AGX,我在启动时在我的 dmesg 上发现了以下输出:
[ 0.963531] mc-err: mcerr ops are set to t19x
[ 0.971308] iommu: Adding device 2600000.dma to group 57
[ 0.978632] GPIO line 490 (pcie-reg-enable) hogged as output/high
[ 0.978710] GPIO line 289 (pcie-reg-enable) hogged as output/high
怎么在设备树(tegra194-p2888-0000-a00.dtsi)中写成:
gpio@2200000 {
pcie-reg-enable {
gpio-hog;
gpios = <TEGRA194_MAIN_GPIO(Z, 2) GPIO_ACTIVE_HIGH
TEGRA194_MAIN_GPIO(A, 1) GPIO_ACTIVE_LOW>;
label = "pcie-3v3-reg", "pcie-12v-reg";
output-high;
status = "okay";
};
Dtc 解码 (/boot/dtb/tegra194-p2888-0001-p2822-0000.dtb) 给出:
pcie-reg-enable {
gpio-hog;
gpios = <0xca 0x0 0x1 0x1>;
label = "pcie-3v3-reg", "pcie-12v-reg";
output-high;
status = "okay";
};
我很困惑为什么两者的输出都设置为 HIGH ?它应该是一低一高吗? PS: 我对设备树不熟悉,请帮帮我。
GPIO_ACTIVE_LOW
设置意味着数据值将在写入硬件之前在软件中进行逻辑反转,并且来自硬件的原始数据值将在返回给调用者之前进行逻辑反转。 (还有 "raw" GPIO 访问函数的变体可以绕过这种逻辑反转。)
output-high;
DTS 属性表示GPIO线将配置为高电平输出
对于两个 GPIO,都将配置为具有高信号电平的输出,但是具有 GPIO_ACTIVE_LOW
设置的那个将具有逻辑值 0(除非您执行 "raw" 读取), 而带有 GPIO_ACTIVE_HIGH
设置的将具有逻辑值 1。如果您将值 1 写入(但不是 "raw" 写入)带有 GPIO_ACTIVE_LOW
设置的 GPIO,它输出将变为低信号电平。