Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Отладочные платы » SK-NUC976
I2C и SSD1306
MaxiHunter
Добавлено 01.08.2017 10:43 Редактировалось 01.08.2017 10:44
0
Сообщение: 1
MaxiHunter
0

Пункты: 2257
Регистрация: 13.03.2011
Доброго времени суток.
Пытаюсь подключить ардуиновский дисплей ssd1306 к плате. Пока не получается. Дисплей точно рабочий, проверял отдельно. В модуле ядра добавил драйвер дисплея и и2с.
В dev.c написал:
Код
static struct i2c_board_info __initdata nuc970_i2c_clients0[] =
{
#ifdef CONFIG_SND_SOC_NAU8822
{I2C_BOARD_INFO("nau8822", 0x1a),},
#endif
{I2C_BOARD_INFO("solomon,ssd1306fb-i2c", 0x3c),},
};

i2cdetect видит устройство на шине 0 с соответствующим адресом 0х3с.
Однако в dmesg вообще никаких сообщений о том, что драйвер загружается... тишина. В папке /dev/fb* устройств нет.
Интересно то, что если указать имя не совпадающее в самом драйвере, он пишет:
Код
ssd1307fb 0-003c: No device tree data found!
ssd1307fb: probe of 0-003c failed with error -22

Может у кого есть мысли, что я делаю не так?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 01.08.2017 11:49 Сообщение: 2
sasamy
4.70

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

В модуле ядра добавил драйвер дисплея


откуда вы его взяли ?
Спуститься к концу Подняться к началу
Персональная информация
MaxiHunter
Добавлено 01.08.2017 11:58 Редактировалось 01.08.2017 11:58 Сообщение: 3
MaxiHunter
0

Пункты: 2257
Регистрация: 13.03.2011
из исходников ядра, разумеется.
drivers/video/ssd1307fb.c
Спуститься к концу Подняться к началу
Персональная информация
MaxiHunter
Добавлено 01.08.2017 12:12 Редактировалось 01.08.2017 12:13 Сообщение: 4
MaxiHunter
0

Пункты: 2257
Регистрация: 13.03.2011
Да, оригинальный дравер не поддерживает ssd1306... поэтому я заменил его более новым с сайта
http://elixir.free-electrons.com/linux/v3.15.10/source/drivers/video/fbdev/ssd1307fb.c#L20
В нем, кроме 1307 имеется поддержка 1306. Думаете, проблема в этом?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 01.08.2017 12:22 Редактировалось 01.08.2017 12:24 Сообщение: 5
sasamy
4.70

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

Думаете, проблема в этом?


Нет, думаю проблема в том что он ищет параметры в девице трее

http://elixir.free-electrons.com/linux/v3.10.107/source/Documentation/devicetree/bindings/video/ssd1307fb.txt

а у нувотона его нет - он использует старыей метод с боард-файлами

http://elixir.free-electrons.com/linux/v3.10.107/source/drivers/video/ssd1307fb.c#L279

и драйвер вылетает с ошибкой при первом запросе требуемого параметра.
Спуститься к концу Подняться к началу
Персональная информация
MaxiHunter
Добавлено 01.08.2017 12:36 Редактировалось 01.08.2017 12:42 Сообщение: 6
MaxiHunter
0

Пункты: 2257
Регистрация: 13.03.2011
Вот для чего ему нужен девайс три суппорт в ядре...
Ладно, получается нужно его переписывать или искать что-то взамен.
Спасибо!
Спуститься к концу Подняться к началу
Персональная информация
MaxiHunter
Добавлено 01.08.2017 14:53 Сообщение: 7
MaxiHunter
0

Пункты: 2257
Регистрация: 13.03.2011
Убрал из драйвера то что касается конфигурации и забил жестко(пока что).
И, о чудо, оно ожило! Экран засветился! Правда пока что ничего не показывает... просто весь белый)) И загрузка на нем застревает... ядро дальше не грузится. Спасибо еще раз за наводку, буду дальше пилить.
Спуститься к концу Подняться к началу
Персональная информация
MaxiHunter
Добавлено 01.08.2017 15:26 Сообщение: 8
MaxiHunter
0

Пункты: 2257
Регистрация: 13.03.2011
Нашел ошибку в исходнике
http://elixir.free-electrons.com/linux/v3.14.79/source/drivers/video/ssd1307fb.c#L463
они два раза выставляют ширину экрана... Собственно в этом и была проблема. Необходимо поменять на высоту.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-NUC976