дерево устройств gp ios на Linux ядре для AGX jetson-Xavier - PullRequest
0 голосов
/ 29 апреля 2020

Я использую 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";
          }; 

Dt c декодировать (/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: я не знаком с деревом устройств, пожалуйста, помогите мне abit.

1 Ответ

0 голосов
/ 29 апреля 2020

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

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

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

...