дерево устройств gpios на ядре Linux для 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";
};

Я очень запутался, почему на обоих выходах установлено ВЫСОКОЕ значение? предполагается, что это будет один НИЗКИЙ и один ВЫСОКИЙ? PS: Я не знаком с деревом устройств, помогите, пожалуйста, abit.

1 ответ

Решение

В GPIO_ACTIVE_LOWУстановка означает, что значения данных будут логически инвертированы в программном обеспечении до того, как они будут записаны на оборудование, и что необработанные значения данных от оборудования будут логически инвертированы, прежде чем они будут возвращены вызывающей стороне. (Существуют также "сырые" варианты функций доступа GPIO, которые обходят эту логическую инверсию.)

В output-high; Свойство DTS означает, что линия GPIO будет настроена как выход с высоким уровнем сигнала.

Для двух GPIO оба будут настроены как выходы с высоким уровнем сигнала, но один с GPIO_ACTIVE_LOW параметр будет иметь логическое значение 0 (если вы не выполняете "сырое" чтение), а параметр с GPIO_ACTIVE_HIGH параметр будет иметь логическое значение 1. Если вы записываете (но не "сырую" запись) значение 1 в GPIO с GPIO_ACTIVE_LOW при установке его выходной сигнал перейдет на низкий уровень сигнала.

Другие вопросы по тегам