Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:2
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Embedded Linux
Buildroot->Kernel->Device tree support и SPIDEV
rain62ster
Добавлено 21.01.2019 19:36 Редактировалось 21.01.2019 19:38
0
Сообщение: 1
rain62ster
0

Пункты: 3830
Регистрация: 02.10.2009
Хочется добиться окончательной ясности с интерфейсом SPI. Как бы я ни прописывал SPI в dts файле. - SPIDEV в /dev/ не появляется. вернулся к buildroot, где обратил внимание на опцию Buildroot->Kernel->Device tree support->Device tree source. Она у меня стоит выставлена в "Use a device tree present on the kernel". Наверное для того что бы активизировались установки из файла dts необходимо выставить ее в "Use a custom device tree file" ?
Речь идет о плате SK-ATSAMA5D3
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 21.01.2019 22:46 Сообщение: 2
sasamy
4.71

Пункты: 83534
Регистрация: 14.08.2009
Цитата
Device tree source. Она у меня стоит выставлена в "Use a device tree present on the kernel"


все верно - dts находится в исходниках ядра

Цитата

"Use a custom device tree file"


это на тот случай если dts нет в исходниках ядра, через эту опцию можно указать к нему путь

Цитата

Речь идет о плате SK-ATSAMA5D3


Например на интерфейсе spi1

spi1: spi@f8008000 {
cs-gpios = <&pioC 25 0>;
status = "okay";

spi@0 {
compatible = "spidev";
reg = <0>;
spi-max-frequency = <1000000>;
};

};
Спуститься к концу Подняться к началу
Персональная информация
_TsM_
Добавлено 19.01.2023 14:56 Сообщение: 3
_TsM_
0

Пункты: 1155
Регистрация: 21.05.2015
Аналогичная проблема. Модуль SK-A40i-SODIMM.
В настройках ядра ключ CONFIG_SPI_SPIDEV установлен.
В файл дерева sun8i-a40i-sodimm-hdmi-sk.dts секцию &spi1 переписал как:
&spi1 {
pinctrl-names = "default";
pinctrl-0 = <&spi1_pi_pins>,
<&spi1_cs0_pi_pin>;
status = "okay";

spidev@0 {
compatible = "spidev";
reg = <0>;
spi-max-frequency = <1000000>;
status = "okay";
};
};

Не вижу /dev/spidev
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 19.01.2023 16:05 Редактировалось 19.01.2023 16:05 Сообщение: 4
sasamy
4.71

Пункты: 83534
Регистрация: 14.08.2009
Цитата

Не вижу /dev/spidev


это особенность майнстримного ядра - в нем убрали прямую ссылку на драйвер ядра

compatible = "spidev";

сейчас там прописали таблицу совместимости с названиями устройств, повидимому чтобы в юзерспейс потом можно было автоматически определить что за устройство сидит на spi. Я указал первое что нашел в другом dts и появмилось устройство spidev

&spi1 {
pinctrl-names = "default";
pinctrl-0 = <&spi1_pi_pins>,
<&spi1_cs0_pi_pin>;
status = "okay";

spidev@0 {
compatible = "menlo,m53cpld";
reg = <0>;
spi-max-frequency = <1000000>;
};
};

если у вас безымянное устройство котрое не прописано в драйвере spidev - никакой разницы нет что тут указывать - можное любое из списка

https://elixir.bootlin.com/linux/latest/source/drivers/spi/spidev.c#L722

в старых ядрах было про это предупреждение в логе, сейчас окончательно выпилили прямое указание spidev в dts
Спуститься к концу Подняться к началу
Персональная информация
_TsM_
Добавлено 20.01.2023 11:37 Сообщение: 5
_TsM_
0

Пункты: 1155
Регистрация: 21.05.2015
Спасибо. Все заработало!
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux