Как прочитать значение GPIO из UBoot, созданного OpenWRT - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь реализовать режим восстановления на плате, работающей на OpenWRT. У меня есть кнопка, подключенная к некоторому GPIO: GPIO_PL4.

Я привел имя gpio к числовому представлению, используя следующее выражение:

(position of letter in alphabet - 1) * 32 + pin number

Итак, я получил PL4 - 356 отображение.

Я пытался добавить следующие строки в файл окружения uboot uEnv-default.txt:

  if gpio input 356; then
     echo "The button is pressed";
  fi;

Но при загрузке появилось сообщение об ошибке:

  gpio: requesting pin 356 failed
  gpio - query and control gpio pins

  Usage:
  gpio <input|set|clear|toggle> <pin>
      - input/set/clear/toggle the specified pin
  gpio status [-a] [<bank> | <pin>]  - show [all/claimed] GPIOs

Затем я попытался получить информацию о GPIO, используя gpio status -a:

gpio status -a (within uEnv-default.txt)

И получил следующий вывод:

Bank PA:
...
Bank PL:
PL0: func
...
PL4: func     // does it mean that I'm not able to use it as an input
...
PL11: func
PL12: input: 0 [ ]
PL13: input: 0 [ ]
....

Итак, вопрос: могу ли я использовать вывод PL4 gpio в качестве входа с текущей конфигурацией gpio, и если нет, как я могу изменить конфигурацию gpio для этого вывода, если это вообще возможно?

Полагаю, мне нужно применить патч к U-Boot, чтобы создать правильную конфигурацию gpio, я прав?

1 Ответ

0 голосов
/ 16 апреля 2019

Я нашел решение. Было две проблемы:

  1. U-boot (2018.11) для устройств sunxi-8, по крайней мере, не использует вышеприведенное выражение для преобразования имени gpio в представление числа (можно ввести имя gpio для команды u-boot gpio : gpio input pl4).
  2. Порт L по умолчанию разблокирован / отключен от питания на процессоре sunxi-8, по крайней мере, на плате sun8i-h2-plus-orangepi-zero , поэтому он должен быть синхронизирован / запитан prcm_apb0_enable. Посмотрите на https://forum.armbian.com/topic/10111-orange-pi-zero-u-boot-gpio-access/?tab=comments#comment-76996
...