Я использую плату i.mx6 (yocto(jethro)) и настраиваю дерево устройств. Я изменил файл dts и поместил файл dtb в загрузочный раздел. Я настроил GPIO4_IO19 в dts файле следующим образом.
&iomuxc {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hog_1>;
imx6ul-evk {
pinctrl_hog_1: hoggrp-1 {
fsl,pins = <
...
MX6UL_PAD_CSI_VSYNC__GPIO4_IO19 0x0000B0B0
...
>;
};
...
Сначала MX6UL_PAD_CSI_VSYNC__GPIO4_IO19 был определен в другой группе (usdhcgrp), но я их закомментировал.
После загрузки я проверил, успешно ли определяется gpio, как я установил. Результат
echo 115 > /sys/class/gpio/export
-sh: echo: write error: Device or resource busy
Поэтому я проверил следующее.
cat /sys/kernel/debug/gpio
GPIOs 0-31, platform/209c000.gpio, 209c000.gpio:
gpio-10 (phy-reset ) out lo
GPIOs 32-63, platform/20a0000.gpio, 20a0000.gpio:
GPIOs 64-95, platform/20a4000.gpio, 20a4000.gpio:
gpio-68 (ft5x06_irq_gpio ) in hi
GPIOs 96-127, platform/20a8000.gpio, 20a8000.gpio:
gpio-109 (? ) out lo
gpio-115 (cd ) in lo
gpio-116 (? ) out lo
gpio-117 (? ) out lo
gpio-118 (sysfs ) in hi
GPIOs 128-159, platform/20ac000.gpio, 20ac000.gpio:
gpio-128 (phy-reset ) out lo
gpio-115 используется cd. Возможно, это означает обнаружение карты. Я хочу использовать его как sysfs для чтения состояния. Есть ли другой способ прочитать его? Кроме того, gpio-10, 68, 109, 116, 117 используются другими устройствами. Как я могу использовать их в sysfs?
Я думаю, что мне нужно проверить, правильно ли установлено значение регистра или нет. Если значение регистра не такое, как я установил, я предполагаю, что другой процесс установил управление пином. Однако я не знаю, как получить доступ к регистру.
Что я знаю о gpio115, так это следующее
mux_reg address: 0x01DC and the value.
conf_reg address: 0x0468 and the value.
input_reg address: 0x0000 and the value.
То же самое, что и с другими gpio.
Как я могу получить доступ к 0x01DC и затем получить значение в linux(yocto)?
Спасибо за сотрудничество.
Если вы просто хотите узнать состояние пина, оно уже представлено вам в /sys/kernel/debug/gpio
gpio-115 (cd ) in lo
Он сконфигурирован как вход, и текущее значение низкое, Это изменится, если вы вставите/вытащите карту из слота!
Если вы действительно хотите или нуждаетесь в прямом доступе к значению регистра, попробуйте проверить утилиту devregs!