首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于AGX jetson-Xavier的Linux内核上的设备树gpios

用于AGX jetson-Xavier的Linux内核上的设备树gpios
EN

Stack Overflow用户
提问于 2020-04-29 17:07:10
回答 1查看 521关注 1票数 0

我正在使用Xavier AGX,在启动时我在我的dmesg上发现了以下输出:

代码语言:javascript
复制
[    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)中,它是这样写的:

代码语言:javascript
复制
  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)给出:

代码语言:javascript
复制
pcie-reg-enable {
    gpio-hog;
    gpios = <0xca 0x0 0x1 0x1>;
    label = "pcie-3v3-reg", "pcie-12v-reg";
    output-high;
    status = "okay";
};

我很困惑为什么两者的输出都设置为高?它是不是应该是一个低一个高?附言:我对设备树不熟悉,请给我一点帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-29 19:07:10

GPIO_ACTIVE_LOW设置意味着数据值在写入硬件之前将在软件中进行逻辑反转,而来自硬件的原始数据值在返回给调用者之前将在逻辑上反转。(还有一些GPIO访问函数的“原始”变体绕过了这种逻辑反转。)

GPIO属性表示output-high;线路将配置为具有高信号电平的输出。

对于两个GPIO,两个GPIO都将配置为具有高信号电平的输出,但具有GPIO_ACTIVE_LOW设置的GPIO的逻辑值为0(除非您进行“原始”读取),而具有GPIO_ACTIVE_HIGH设置的GPIO的逻辑值为1。如果您使用GPIO_ACTIVE_LOW设置将值1写入(但不是“原始”写入)GPIO,其输出将变为低信号电平。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61498062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档