Jump to content
    

T113-S3 LVDS и тайминги матриц

В 10.03.2023 в 10:48, sasamy сказал:

он очень подробно описан в мануале

Да как сказать...  Объясните вот эту китайскую грамоту:

For PHY0: 
?  Configure the reg_verf1p6 (differential mode voltage) in reg0x1114 to 4;   
?  Configure the reg_vref0p8 reg0x1114 (common mode voltage) in reg0x1114 to 3; 
?  Start en_cp, en_mipi, en_lvds, and en_comboldo in reg0x1110, in turn.

Что это за регистры с таким адресом?

ЗЫ. Может все-таки есть какой-то исходник из линукса по иниту LVDS?

Share this post


Link to post
Share on other sites

On 3/17/2023 at 12:26 PM, mantech said:

Что это за регистры с таким адресом?

регистры DPHY которые не описаны в мануале

On 3/17/2023 at 12:26 PM, mantech said:

Может все-таки есть какой-то исходник из линукса по иниту LVDS?

инит тут

https://github.com/mangopi-sbc/tina-linux-5.4/blob/main/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_lcd_sun50iw10.c#L390

lvds_combphy_open(sel, panel); тут

https://github.com/mangopi-sbc/tina-linux-5.4/blob/main/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_dsi.c#L789

регистры DPHY тут

https://github.com/mangopi-sbc/tina-linux-5.4/blob/main/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_dsi_type.h#L977

регистры lcd тут

https://github.com/mangopi-sbc/tina-linux-5.4/blob/main/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_lcd_type.h#L603

Edited by sasamy

Share this post


Link to post
Share on other sites

1 час назад, sasamy сказал:

инит тут

Спасибо!

Share this post


Link to post
Share on other sites

В 10.03.2023 в 10:48, sasamy сказал:

он очень подробно описан в мануале

5.1.4.2 LVDS Mode Configuration Process

в части таймингов  не отличается от инита параллельного RGB + есть дополнительные настройки енкодера LVDS

Да уж, вообщем от их подробного описания так ничего и не понятно(((

Может у кого-нибудь получилось запустить этот долбанный LVDS?  Пробовал и так и сяк - один фиг на всех ланах 0В, относительно земли, хотя если включен режим RGB картинка есть, т.е. тайминги нормальные, а тут молчок. В полне возможно из за китайской дурости секретить свои регистры, ибо в этом combo phy одни магические цифры, в даташите совсем не совпадают.. Жуть вообще. Пробовал разобраться в линуксовых исходниках, но чуть башку не сломал, там такое переплетение всего и вся, что лучше сходить и выпить...

Вот что-то подобное наваял в добавок к своему иниту:

struct disp_panel_para  * panel_info = (struct disp_panel_para *)SAVEBG_BASE;

 printf("Init Display\n");



 tcon_set_reg_base(0, DISP_TCON_LCD0);
 if (DEVICE_NUM>1)tcon_set_reg_base(1, DISP_TCON_TV);
 tcon_top_set_reg_base(0, DISP_TCON_TOP);
 dsi_set_reg_base(0, DISP_DSI_BASE);



 CCU->DSI_BGR_REG&=~(1<<16);                      //assert reset DSI PHY
 CCU->DSI_CLK_REG=(1UL<<31)|(1<<25)|(2-1); //clock on, PLL_VIDEO0(4x), N=2, M=2 => 1188/2/2 = 297 MHz

 hal_delay_us(1000);//!!!!!
 CCU->DSI_BGR_REG|=(1<<16);                       //de-assert reset DSI PHY

 CCU->LVDS_BGR_REG&=~(1<<16);                      //assert reset TCON_LCD
 CCU->LVDS_BGR_REG|=(1<<16);

 panel_info->lcd_if = LCD_IF_LVDS;
 panel_info->lcd_lvds_if = LCD_LVDS_IF_SINGLE_LINK;
 panel_info->lcd_lvds_mode = LCD_LVDS_MODE_NS;
 panel_info->lcd_lvds_colordepth = LCD_LVDS_6bit;
 panel_info->lcd_lvds_io_polarity = 0;
 panel_info->lcd_dsi_lane = LCD_DSI_4LANE;
 panel_info->lcd_dsi_port_num = DISP_LCD_DSI_SINGLE_PORT;
 panel_info->lcd_dclk_freq = 297000000;

 lvds_open(screen_id, panel_info);

Черт его знает, что там еще надо...

 

ЗЫ. Ну и вопрос в догонку, может есть у кого образ линукса с использованием LVDS 0 под матрицу 1024х600, или 1366х768. Хоть проверить, может я проц уже спалил)

Edited by mantech

Share this post


Link to post
Share on other sites

On 3/20/2023 at 6:09 PM, mantech said:

Ну и вопрос в догонку, может есть у кого образ линукса с использованием LVDS

у меня нет готового кода - к платам что у меня в наличии LVDS не подключить и задачи такой не было

Share this post


Link to post
Share on other sites

16 минут назад, sasamy сказал:

у меня нет готового кода - к платам что у меня в наличии LVDS не подключить и задачи такой не было

Эт печально, значит и у меня нет никакой уверенности, что этот код в вышеприведенных исходниках вообще рабочий((

Share this post


Link to post
Share on other sites

4 часа назад, sasamy сказал:

у меня нет готового кода

ЗЫ. А можете скинуть образ, как в прошлый раз для эзернета, но с включенной любой матрицей под 0 канал LVDS, без проверки, просто теоретически? Я посмотрел бы хоть, есть-ли что-то на дифпарах или там совсем код левый и нет смысла в нем копаться...

Share this post


Link to post
Share on other sites

On 3/21/2023 at 2:01 PM, mantech said:

скинуть образ, как в прошлый раз для эзернета, но с включенной любой матрицей под 0 канал LVDS, без проверки, просто теоретически?

в прошлый раз я скидывал образ с майнстримным ядром с которым сам разбирался и сборка заняла у меня пару минут, но в нем нет кода инициализации LVDS. Чтобы подправить китайское ядро и собрать образ надо пол дня потерять а в итоге просто ткнуть пальцем в небо. Паралельный дисплей в ядре по ссылке от тина линукс вроде работал (но это не точно - уже забыл), думаю что и LVDS должен работать. Там настолько всё через ... сделано что мне не охота возвращаться к этой тина линукс. Там есть подводные камни - например при отключении PWM подсветки дисплея ядро перестаёт загружаться  - это чтобы вы понимали размер пальца в небе.

Edited by sasamy

Share this post


Link to post
Share on other sites

49 минут назад, sasamy сказал:

Там настолько всё через ... сделано что мне не охота возвращаться к этой тина линукс.

Ясненько, думал что у вас там была поддержка LVDS для стартеркитовского модуля T113-NANO-LV, а тут вон оно как(((

Получается, кто купил этот  модуль задействовать LVDS и не сможет, или там его кто-то другой поддерживает?

52 минуты назад, sasamy сказал:

Паралельный дисплей  вроде работал

Так то параллельный, он документирован и у меня он работает, а это комбо phy - еще та гадость((

Share this post


Link to post
Share on other sites

5 часов назад, mantech сказал:

он документирован и у меня он работает

Смотрю еще раз этот даташит и с каждым разом удивляюсь, например

If  configuring  the  same  source  data  output  mode  of  dual  link,  except  the  reg0x84  register  of 
TCON_LCD0  needs  be  configured,  the  LCD_LVDS_IF_REG.LCD_LVDS_CLK_SEL, 
LCD_LVDS_IF_REG.LCD_LVDS_LINK,  LCD_LVDS_IF_REG.LCD_LVDS_MODE,  and 
LCD_LVDS_IF_REG.LCD_LVDS_BITWIDTH of the reg0x244 register need be configured.

Что за "reg0x244"? Это в каком разделе, ТCON или опять секретный DPHY?

Или просто перепутали вот этим

LCD_LVDS1_ANA_REG  0x0224  LCD LVDS Analog Register 1 

Второе - если канал 0 управляется с DPHY, тогда зачем в списке 2 регистра LVDS?

LCD_LVDS0_ANA_REG  0x0220  LCD LVDS Analog Register 0 
LCD_LVDS1_ANA_REG  0x0224  LCD LVDS Analog Register 1

А это вообще что означает

Configure the reg_verf1p6 (differential mode voltage) in reg0x1114 to 4;  

Т.е. в этот регистр нужно просто записать значение 4, или ? 

Вообщем какая-то муть или тайный смысл, что-ли...

Edited by mantech

Share this post


Link to post
Share on other sites

On 3/21/2023 at 5:00 PM, mantech said:

думал что у вас там была поддержка LVDS для стартеркитовского модуля T113-NANO-LV

на контакты модуля LVDS выведен - он на тех же пинах что и RGB, а как к ним подключаться без подходящей материнки ? На обычной MB подключение LCD не предусмотрено и пины задействованы для других ф-ий, а на LCD-MB они напрямую к дисплею с параллельным RGB подключены

On 3/21/2023 at 10:56 PM, mantech said:

Или просто перепутали вот этим

LCD_LVDS1_ANA_REG  0x0224  LCD LVDS Analog Register 1 

этот регистр документирован - есть там похожие по названию биты на LCD_LVDS_IF_REG.LCD_LVDS_BITWIDTH или нет ?

On 3/21/2023 at 10:56 PM, mantech said:

Configure the reg_verf1p6 (differential mode voltage) in reg0x1114 to 4;  

Т.е. в этот регистр нужно просто записать значение 4, или ? 

это разве не он записывается

    dphy_dev[sel]->combo_phy_reg1.dwval = 0x43;

https://github.com/mangopi-sbc/tina-linux-5.4/blob/0d4903ebd9d2194ad914686d5b0fc1ddacf11a9d/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_dsi.c#L792

похоже вы там половину кода инициализации пропустили, не удивительно что не работает

Edited by sasamy

Share this post


Link to post
Share on other sites

10 часов назад, sasamy сказал:

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

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

10 часов назад, sasamy сказал:

этот регистр документирован

Хорошо, посмотрю внимательнее..

10 часов назад, sasamy сказал:

dphy_dev[sel]->combo_phy_reg1.dwval = 0x43;

Тут очень сложно разобраться из-за того, что каждый по разному обзывает все эти регистры и поля. И этот код инициализации у меня в программе есть, но результата работы его не заметно.

10 часов назад, sasamy сказал:

похоже вы там половину кода инициализации пропустили

Не пропустил, он весь есть в функции lvds_open(screen_id, panel_info);

 

ЗЫ. Досадно то, что только в этом проце так извращенно выглядит инит LVDS, я раньше делал инит для А10, А20, А40 - там все по фен-шую, документировано и никаких combo phy не используется...

Edited by mantech

Share this post


Link to post
Share on other sites

Когда-то я ковырялся со вторым TCON (который для TV-OUT) в T113-s3. Тоже не запускался, пока не проинициализировал TOP-регистры.  Возможно, с включением LVDS аналогично.  Тоесть мало установить и проинициализировать то, что очевидно.  Ещё надо разрешить тактирование TOP-регистров и проинициализировать их. О существовании этих регистров рассказал сорец Tina-Linux для T113-s3.

Как раз - тот случай, когда делаешь всё правильно, а оно не работает. Потому что не всё разрешено.

Edited by repstosw

Share this post


Link to post
Share on other sites

На LVDS0-CK выходах получил сигнал...
Включил в CCU DSI и проинитил dsi-phy в соответствии с 
https://github.com/mangopi-sbc/tina-linux-5.4/blob/a0e8ac494c8b05e2a4f8eb9a2f687e39db463ffe/drivers/video/fbdev/sunxi/disp2/disp/de/lowlevel_v2x/de_dsi_type.h#L1084


Код в моём репо - бранч develop

Share this post


Link to post
Share on other sites

2 часа назад, GenaSPB сказал:

На LVDS0-CK выходах получил сигнал...

Да, я тоже уже разобрался с ним еще в конце марта, там была фишка в том, что забыл включить клок для DSI в CCU_DSI_BGR...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...