Device Tree Mainline Linux

Дерево устройств (ДУ) представляет собой структуру данных для описания оборудования. Mainline Linux использует его для активации и настройки драйверов, доступных в ядре.
В Linux есть механизм для определения подключенных устройств — Device Tree. Это список всех устройств подключенных к компьютеру. Ядро подгружает его при старте и настраивает все устройства согласно настройкам в файле.

«Оверлеями» называются частичные, «опциональные» ДУ.
Оверлей состоит из нескольких фрагментов, каждый из которых нацелен на какой-то конкретный нод (и его суб-ноды). Хотя эта концепция выглядит довольно просто, сам синтаксис на первый взгляд может показаться довольно странным.
Вот оверлей включающий пины (PA11,PA12) GPIO при начале загрузки,
использовал драйвер gpio-leds,
создаём файл you-overlay.dts и вставляем код:

/dts-v1/;
/plugin/;

/ {
	compatible = "allwinner,sun8i-h3";

	fragment@0 {
		target = <&pio>;
		__overlay__ {
			gpio_pin: gpio_pin {
				pins = "PA11","PA12";
				function = "gpio_out";
			};
		};
	};

	fragment@1 {
		target-path = "/";
		__overlay__ {
			gpiopull: gpiopull {
				compatible = "gpio-leds";
				pinctrl-names = "default";
				pinctrl-0 = <&gpio_pin>;
				status = "okay";
				gpio_out_11 {
					label = "GPIO PIN_11";
					gpios = <&pio 0 11 0>;  /* PA11 GPIO_ACTIVE_LOW */
				};
				gpio_out_12 {
					label = "GPIO PIN_12";
					gpios = <&pio 0 12 1>;  /* PA12 GPIO_ACTIVE_HI */
				};

			};
		};
	};
};

ставим хидеры ядра,
как поставить описал в начале этого поста: Кнопки на GPIO Mainline Linux OrangePi

Компилируем:

armbian-add-overlay you-overlay.dts
reboot

проверка:

cat /sys/kernel/debug/gpio

если установлен WiringOtherPi ввести команду: gpio readall:

Raspberry Pi:Настройка/Деревья устройств, оверлеи и параметры

Поделиться
Отправить
Запинить
4 января   armbian   Device Tree   OrangePI PC   overlay
Ваш комментарий
адрес не будет опубликован

ХТМЛ не работает

Ctrl + Enter
Популярное