Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Процессорные модули » SK-iMX53-OEM
Включение подсветки экрана вместе с logo
simark1979
Добавлено 26.01.2014 14:28 Редактировалось 26.01.2014 14:51 Сообщение: 11
simark1979
0

Пункты: 6256
Регистрация: 03.10.2012
Пол: Мужчина
Не решение, но тема затрагивалась не только мной

http://lkml.indiana.edu/hypermail/linux/kernel/1310.0/03251.html

Здесь, в DT добавили поддержку нового свойства: backlight-boot-off, которое при старте держит подсветку в выключенном состоянии. Включить можно самому, в пользовательском пространстве через: echo 0 > /sys/class/backlight/backlight.11/bl_power

Никакого включения подсветки во время инициализации FB увы не имелось ввиду...

Непонятно в чем смысл, когда можно было просто выставить дефолтное значение яркости равное нолю....
Спуститься к концу Подняться к началу
Персональная информация
simark1979
Добавлено 26.01.2014 18:31 Редактировалось 26.01.2014 18:32 Сообщение: 12
simark1979
0

Пункты: 6256
Регистрация: 03.10.2012
Пол: Мужчина
В общем тема не закрыта. Буду благодарен любой подсказке...
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 27.01.2014 11:18 Сообщение: 13
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
В общем тема не закрыта. Буду благодарен любой подсказке...

я бы "изобретателю" этого dts формата гвоздь в голову забил и пачку изделий № выдал - чтобы не размножался..
заглянул в наиванильнейшее 3.12, там в драйвере фрискейла в функции инита в конце:
Код
ret = register_framebuffer(info);
if (ret < 0) {
dev_err(&pdev->dev, "failed to register framebuffer\n");
goto failed_register;
}
imxfb_enable_controller(fbi);
fbi->pdev = pdev;
#ifdef PWMR_BACKLIGHT_AVAILABLE
imxfb_init_backlight(fbi);
#endif
return 0;

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

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 27.01.2014 11:42 Редактировалось 27.01.2014 11:54 Сообщение: 14
sasamy
4.70

Пункты: 77331
Регистрация: 14.08.2009
Цитата
В общем тема не закрыта. Буду благодарен любой подсказке...


Драйверы инициализируются по порядку их расположения в Makefile, сейчас imx-drm находится в staging а это много позже чем pwm

Код

obj-y += irqchip/
obj-y += bus/

# GPIO must come after pinctrl as gpios may need to mux pins etc
obj-y += pinctrl/
obj-y += gpio/
obj-y += pwm/
...
obj-$(CONFIG_STAGING) += staging/


попробуйте переместить pwm из начала Makefile в конец после staging

obj-$(CONFIG_STAGING) += staging/
obj-y += pwm/

не знаю - может что-то в зависимостях нарушится, но вроде не должно

Кстати насчет
#ifdef PWMR_BACKLIGHT_AVAILABLE
imxfb_init_backlight(fbi);
#endif

думаю если бы у вас было прописано включение питания подсветки а не просто биндинг к PWM все правильно бы отрабатывало без камасутры :), см. например imx53-mba53.dts

reg_backlight: fixed@0 {
compatible = "regulator-fixed";
regulator-name = "lcd-supply";
gpio = <&gpio2 5 0>;
startup-delay-us = <5000>;
enable-active-low;
};

backlight {
compatible = "pwm-backlight";
pwms = <&pwm2 0 50000 0 0>;
brightness-levels = <0 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80 84 88 92 96 100>;
default-brightness-level = <10>;
enable-gpios = <&gpio7 7 0>;
power-supply = <&reg_backlight>;
};
Спуститься к концу Подняться к началу
Персональная информация
simark1979
Добавлено 27.01.2014 17:00 Редактировалось 27.01.2014 17:04 Сообщение: 15
simark1979
0

Пункты: 6256
Регистрация: 03.10.2012
Пол: Мужчина
Цитата
я бы "изобретателю" этого dts формата гвоздь в голову забил и пачку изделий № выдал - чтобы не размножался..
заглянул в наиванильнейшее 3.12, там в драйвере фрискейла в функции инита в конце:
Код
ret = register_framebuffer(info);
if (ret < 0) {
dev_err(&pdev->dev, "failed to register framebuffer\n");
goto failed_register;
}
imxfb_enable_controller(fbi);
fbi->pdev = pdev;
#ifdef PWMR_BACKLIGHT_AVAILABLE
imxfb_init_backlight(fbi);
#endif
return 0;


Для инициализации FB логика-то может и соблюдается, но ведь инициализация PWM подсветки с этим никак не связана. Она происходит раньше и FB об этом не знает....


Цитата

....и еще, убедитесь, что у вас при включение не происходит аппаратного включения подсветки, иначе не с тем боретесь..
я не знаю структуру вашей системы, но если есть юбут, то в нем остановите загрузку:
- подсветка горит или нет?
если горит, то это проблема юбута или железа..



Здесь все нормально. Я даже вывод PWM через резистор к земле подтянул, во избежании самопроизольного включения до инициализации.
Сейчас я в юбуте включаю экран для вывода версии загрузчика, а перед старотом ядра я подсветку отключаю....но толку...
Сразу при старте ядро все равно выставляет его в соответствие с DT настройкой....
Спуститься к концу Подняться к началу
Персональная информация
simark1979
Добавлено 27.01.2014 17:29 Сообщение: 16
simark1979
0

Пункты: 6256
Регистрация: 03.10.2012
Пол: Мужчина
Цитата


Драйверы инициализируются по порядку их расположения в Makefile, сейчас imx-drm находится в staging а это много позже чем pwm...



А где make моего ядра найти? заблудился в этих дебрях :(



Цитата


Кстати насчет
#ifdef PWMR_BACKLIGHT_AVAILABLE
imxfb_init_backlight(fbi);
#endif

думаю если бы у вас было прописано включение питания подсветки а не просто биндинг к PWM все правильно бы отрабатывало без камасутры :), см. например imx53-mba53.dts

reg_backlight: fixed@0 {
compatible = "regulator-fixed";
.........
};


Я это файл давно увидел....
Видимо я чего-то не понимаю, но как это может сработать? Я не вижу в DT никакой привязки подсветки к FB. Они живут как-то сами по себе.
Проблема в том, что у меня для включения подсветки железом предусмотрен только один пин. Само питание LED включено без ключа, напрямую.
Но наверное можно попробовать прописать фэйк-пин для включения....но сильно сомневаюсь, что это задержит старт PWM.
Спуститься к концу Подняться к началу
Персональная информация
Jury093
Добавлено 27.01.2014 17:55 Сообщение: 17
Jury093
4.5

Пункты: 54233
Регистрация: 25.05.2009
Пол: Мужчина
Из: Санкт-Петербург
Цитата
Я это файл давно увидел....

так попробуйте взвести эту опцию:PWMR_BACKLIGHT_AVAILABLE
тогда запустится функция imxfb_init_backlight
в ней навтыкайте отладочных printk и посмотрите где будет валиться и чего не хватает в описании платформы, чтобы привязать подсветку к экрану..

На любой вопрос есть любой ответ.
Спуститься к концу Подняться к началу
Персональная информация
simark1979
Добавлено 27.01.2014 18:04 Редактировалось 27.01.2014 18:10 Сообщение: 18
simark1979
0

Пункты: 6256
Регистрация: 03.10.2012
Пол: Мужчина
Цитата
так попробуйте взвести эту опцию:PWMR_BACKLIGHT_AVAILABLE
тогда запустится функция imxfb_init_backlight
в ней навтыкайте отладочных printk и посмотрите где будет валиться и чего не хватает в описании платформы, чтобы привязать подсветку к экрану..


Она у меня и так автоматом взводится здесь:

Код

#if defined(CONFIG_BACKLIGHT_CLASS_DEVICE) || \
(defined(CONFIG_BACKLIGHT_CLASS_DEVICE_MODULE) && \
defined(CONFIG_FB_IMX_MODULE))
[color=red]#define PWMR_BACKLIGHT_AVAILABLE[/color]
#endif


т.к. у меня BACKLIGHT_CLASS_DEVICE=y

Спасибо за пинок в нужном направлении, буду смотреть
Спуститься к концу Подняться к началу
Персональная информация
simark1979
Добавлено 27.01.2014 19:41 Редактировалось 27.01.2014 19:42 Сообщение: 19
simark1979
0

Пункты: 6256
Регистрация: 03.10.2012
Пол: Мужчина
Мдаа

оказалось imxfb.c не при делах.
На него и объектный файл-то не обнаружился :)

Make:
obj-$(CONFIG_FB_IMX) += imxfb.o



BUILDROOT:

Symbol: FB_IMX [=n]
: tristate
Prompt: Freescale i.MX1/21/25/27 LCD support
Defined at drivers/video/Kconfig:388
Depends on: HAS_IOMEM [=y] && FB [=y] && IMX_HAVE_PLATFORM_IMX_FB [=n]
Location:
-> Device Drivers
-> Graphics support
-> Support for frame buffer devices (FB [=y])
Selects: FB_CFB_FILLRECT [=n] && FB_CFB_COPYAREA [=n] && FB_CFB_IMAGEBLIT [=n]


Получается он для i.MX1/21/25/27
Спуститься к концу Подняться к началу
Персональная информация
simark1979
Добавлено 27.01.2014 22:32 Сообщение: 20
simark1979
0

Пункты: 6256
Регистрация: 03.10.2012
Пол: Мужчина
Всем спасибо, победил перестановкой последовательности инициализации драйверов в /linux/drivers/Makefile
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » SK-iMX53-OEM