| |
LCD Initialization Commands in official firmwareThis is a discussion on LCD Initialization Commands in official firmware within the Rockbox forums, part of the Community Development category; Both M6SP and M6SL support more than one LCD driver ICs, here's what i found at the firmware version 2004.6, ...
03-27-2008
|
#1
|
|
Freshman
Join Date: Jan 2008
Posts: 46
Thanks: 0
Thanked 0 Times in 0 Posts
|
LCD Initialization Commands in official firmware
Both M6SP and M6SL support more than one LCD driver ICs, here's what i found at the firmware version 2004.6, hope someone can identify the missing part num of unknown driver.
M6SL
[S6D0139]
Display Init
-------------------------------------
LCD_SetReg(7, 0);
LCD_SetReg(0x13, 0);
delay
LCD_SetReg(0x11, 0x3304);
LCD_SetReg(0x14, 0x1300);
LCD_SetReg(0x10, 0x1a20);
LCD_SetReg(0x13, 0x40);
delay
LCD_SetReg(0x13, 0x60);
LCD_SetReg(0x13, 0x70);
delay
LCD_SetReg(1, 0x127);
LCD_SetReg(2, 0x700);
LCD_SetReg(3, 0x1030);
LCD_SetReg(8, 0x208);
LCD_SetReg(11, 0x620);
LCD_SetReg(12, 0x110);
LCD_SetReg(0x30, 0x120);
LCD_SetReg(0x31, 0x117);
LCD_SetReg(0x32, 0);
LCD_SetReg(0x33, 0x305);
LCD_SetReg(0x34, 0x717);
LCD_SetReg(0x35, 0x124);
LCD_SetReg(0x36, 0x706);
LCD_SetReg(0x37, 0x503);
LCD_SetReg(0x38, 0x1f03);
LCD_SetReg(0x39, 9);
LCD_SetReg(0x40, 0);
LCD_SetReg(0x41, 0);
LCD_SetReg(0x42, 0x13f);
LCD_SetReg(0x43, 0);
LCD_SetReg(0x44, 0x13f);
LCD_SetReg(0x45, 0);
LCD_SetReg(0x46, 0xef00);
LCD_SetReg(0x47, 0x13f);
LCD_SetReg(0x48, 0);
LCD_SetReg(7, 0x15);
delay
LCD_SetReg(7, 0x17);
LCD_SetReg(0x20, 0);
LCD_SetReg(0x21, 0);
LCD_SetReg(0x22, 0);
Display Off
-------------------------------------
LCD_SetReg(7, 0x16);
delay
LCD_SetReg(7, 4);
delay
LCD_SetReg(0x10, 0x1e21);
delay
Display On
-------------------------------------
LCD_SetReg(0, 1);
delay
LCD_SetReg(0x10, 0);
delay
LCD_SetReg(0x11, 0x3304);
LCD_SetReg(0x14, 0x1300);
LCD_SetReg(0x10, 0x1a20);
LCD_SetReg(7, 0x15);
delay
LCD_SetReg(7, 0x17);
LCD_SetReg(0x20, 0);
LCD_SetReg(0x21, 0);
LCD_SetReg(0x22, 0);
Last edited by kgb2008; 03-27-2008 at 04:04 PM.
|
|
|
03-27-2008
|
#2
|
|
Freshman
Join Date: Jan 2008
Posts: 46
Thanks: 0
Thanked 0 Times in 0 Posts
|
M6SL
[S6D0154]
Display Init
-------------------------------------
LCD_SetReg(12, 0x130);
LCD_SetReg(0x80, 0x8d);
LCD_SetReg(0x92, 0x10);
LCD_SetReg(0x11, 0x1b);
LCD_SetReg(0x12, 0x3101);
LCD_SetReg(0x13, 0x105f);
LCD_SetReg(0x14, 0x667f);
LCD_SetReg(0x10, 0x800);
delay
LCD_SetReg(0x11, 0x11b);
delay
LCD_SetReg(0x11, 0x31b);
delay
LCD_SetReg(0x11, 0x71b);
delay
LCD_SetReg(0x11, 0xf1b);
delay
LCD_SetReg(0x11, 0xf3b);
delay
LCD_SetReg(1, 0x2128);
LCD_SetReg(2, 0x100);
LCD_SetReg(3, 0x1030);
LCD_SetReg(7, 0);
LCD_SetReg(8, 0x808);
LCD_SetReg(11, 0x1100);
LCD_SetReg(15, 0xf01);
LCD_SetReg(0x15, 0);
LCD_SetReg(0x30, 0);
LCD_SetReg(0x34, 0x13f);
LCD_SetReg(0x35, 0);
LCD_SetReg(0x36, 0xef);
LCD_SetReg(0x37, 0);
LCD_SetReg(0x38, 0x13f);
LCD_SetReg(0x39, 0);
LCD_SetReg(0x50, 0);
LCD_SetReg(0x51, 0xf00);
LCD_SetReg(0x52, 0xa03);
LCD_SetReg(0x53, 0x300);
LCD_SetReg(0x54, 0xc05);
LCD_SetReg(0x55, 0xf00);
LCD_SetReg(0x56, 0xf00);
LCD_SetReg(0x57, 3);
LCD_SetReg(0x58, 0x1f07);
LCD_SetReg(0x59, 0x71f);
Display Off
-------------------------------------
LCD_SetReg(7, 0x12);
delay
LCD_SetReg(7, 0);
delay
Display On
-------------------------------------
Display_Init
LCD_SetReg(7, 0x12);
delay
LCD_SetReg(7, 0x13);
|
|
|
03-27-2008
|
#3
|
|
Freshman
Join Date: Jan 2008
Posts: 46
Thanks: 0
Thanked 0 Times in 0 Posts
|
M6SL
[Unknown Driver IC]
Display Init
-------------------------------------
LCD_SetReg(1, 0x2b3f);
LCD_SetReg(2, 0x300);
LCD_SetReg(3, 0x6e6a);
LCD_SetReg(11, 0xd408);
LCD_SetReg(12, 2);
LCD_SetReg(13, 11);
LCD_SetReg(14, 0x3000);
LCD_SetReg(15, 0);
LCD_SetReg(0x10, 0xd4);
LCD_SetReg(0x15, 4);
LCD_SetReg(0x16, 0xef08);
LCD_SetReg(0x17, 7);
LCD_SetReg(0x1e, 0xb3);
LCD_SetReg(0x30, 0);
LCD_SetReg(0x31, 0x604);
LCD_SetReg(0x32, 7);
LCD_SetReg(0x33, 0x500);
LCD_SetReg(0x34, 7);
LCD_SetReg(0x35, 0x301);
LCD_SetReg(0x36, 0x707);
LCD_SetReg(0x37, 5);
LCD_SetReg(0x3a, 4);
LCD_SetReg(0x3b, 4);
Display Off
-------------------------------------
LCD_SetReg(0x28, 6);
LCD_SetReg(0x2d, 0x3f66);
delay
Display On
-------------------------------------
LCD_SetReg(0x28, 6);
LCD_SetReg(0x2d, 0x3f60);
delay
LCD_SetReg(0x28, 6);
|
|
|
03-27-2008
|
#4
|
|
Freshman
Join Date: Jan 2008
Posts: 46
Thanks: 0
Thanked 0 Times in 0 Posts
|
M3
[Unknown Driver IC]
Display Init
-------------------------------------
LCD_SetReg(0xa4, 1);
delay
LCD_SetReg(1, 0x100);
LCD_SetReg(2, 0x300);
LCD_SetReg(3, 0x9230);
LCD_SetReg(8, 0x404);
LCD_SetReg(14, 0x10);
LCD_SetReg(0x70, 0x1000);
LCD_SetReg(0x71, 1);
LCD_SetReg(0x30, 2);
LCD_SetReg(0x31, 0x400);
LCD_SetReg(0x32, 7);
LCD_SetReg(0x33, 0x500);
LCD_SetReg(0x34, 7);
LCD_SetReg(0x35, 0x703);
LCD_SetReg(0x36, 0x507);
LCD_SetReg(0x37, 5);
LCD_SetReg(0x38, 0x1404);
LCD_SetReg(0x39, 14);
LCD_SetReg(0x40, 0x202);
LCD_SetReg(0x41, 3);
LCD_SetReg(0x42, 0);
LCD_SetReg(0x43, 0x200);
LCD_SetReg(0x44, 0x707);
LCD_SetReg(0x45, 0x407);
LCD_SetReg(0x46, 0x505);
LCD_SetReg(0x47, 2);
LCD_SetReg(0x48, 4);
LCD_SetReg(0x49, 4);
LCD_SetReg(0x60, 0x202);
LCD_SetReg(0x61, 3);
LCD_SetReg(0x62, 0);
LCD_SetReg(0x63, 0x200);
LCD_SetReg(0x64, 0x707);
LCD_SetReg(0x65, 0x407);
LCD_SetReg(0x66, 0x505);
LCD_SetReg(0x67, 2);
LCD_SetReg(0x68, 4);
LCD_SetReg(0x69, 4);
LCD_SetReg(7, 1);
LCD_SetReg(0x18, 1);
LCD_SetReg(0x10, 0x1690);
LCD_SetReg(0x11, 0x100);
LCD_SetReg(0x12, 0x117);
LCD_SetReg(0x13, 0xf80);
LCD_SetReg(0x12, 0x137);
LCD_SetReg(0x20, 0);
LCD_SetReg(0x21, 0);
LCD_SetReg(0x50, 0);
LCD_SetReg(0x51, 0xaf);
LCD_SetReg(0x52, 0);
LCD_SetReg(0x53, 0x83);
LCD_SetReg(0x90, 0);
LCD_SetReg(0x91, 0);
LCD_SetReg(0x92, 0);
LCD_SetReg(0x98, 0);
LCD_SetReg(0x99, 0x903);
LCD_SetReg(0x9a, 0x502);
LCD_SetReg(0x9b, 0x300);
delay
Display Off
-------------------------------------
LCD_SetReg(7, 0x21);
LCD_SetReg(0x12, 0x0137);
delay
LCD_SetReg(7, 0x21);
LCD_SetReg(0x12, 0x1137);
delay
Display On
-------------------------------------
LCD_SetReg(7, 0x232);
LCD_SetReg(0x12, 0x1137);
delay
LCD_SetReg(7, 0x201);
LCD_SetReg(0x12, 0x0137);
delay
LCD_SetReg(7, 0x201);
delay
LCD_SetReg(0x10, 0x680);
LCD_SetReg(0x11, 0x160);
LCD_SetReg(0x12, 0x127);
delay
LCD_SetReg(0x10, 0x600);
|
|
|
03-27-2008
|
#5
|
|
Freshman
Join Date: Jan 2008
Posts: 46
Thanks: 0
Thanked 0 Times in 0 Posts
|
M6TP
[Unknown Driver IC]
Display Init
-------------------------------------
LCD_SetReg(3,1);
LCD_SetReg(0x3A,1);
LCD_SetReg(0x32,2);
LCD_SetReg(0x33,0);
LCD_SetReg(0x37,0);
LCD_SetReg(0x77,0x0FFF);
LCD_SetReg(0x72,1);
LCD_SetReg(0x1C,0x1A5C);
LCD_SetReg(0x52,0x21);
LCD_SetReg(0x53,0x11);
LCD_SetReg(0x24,0x61);
LCD_SetReg(0x25,0x61);
LCD_SetReg(0x26,0);
LCD_SetReg(0x27,0);
LCD_SetReg(0x61,0x26);
LCD_SetReg(0x62,8);
LCD_SetReg(0x63,0x15);
LCD_SetReg(0x64,0x16);
LCD_SetReg(0x65,0xC);
LCD_SetReg(0x66,0x24);
LCD_SetReg(0x4D,0x0205);
LCD_SetReg(0x4E,1);
LCD_SetReg(0x4F,0x104);
LCD_SetReg(0x2E,0x32);
LCD_SetReg(0x3E,0x88);
LCD_SetReg(0x70,0x20);
LCD_SetReg(0x29,0);
LCD_SetReg(0x2A,0);
LCD_SetReg(0x2B,0xEF);
LCD_SetReg(0x2C,0x013F);
LCD_SetReg(8,0);
LCD_SetReg(9,0xEF);
LCD_SetReg(0x0A,0);
LCD_SetReg(0x0B,0x013F);
LCD_SetReg(1,0);
LCD_SetReg(5,4);
LCD_SetReg(6,0);
LCD_SetReg(7,0);
LCD_SetReg(2,0x46);
LCD_SetReg(0x3C,0);
LCD_SetReg(0x3D,0x013F);
delay
LCD_SetReg(0x1E,0x21);
LCD_SetReg(0x3B,1);
LCD_SetReg(0,8);
Display Off
-------------------------------------
LCD_SetReg(0,8);
Display On
-------------------------------------
LCD_SetReg(0.0);
delay
LCD_SetReg(0,0);
|
|
|
03-27-2008
|
#6
|
|
Freshman
Join Date: Jan 2008
Posts: 46
Thanks: 0
Thanked 0 Times in 0 Posts
|
M6SP
[S6D0139]
Display Init
-------------------------------------
LCD_SetReg(7,0);
LCD_SetReg(0x13,0);
delay
0x11,0x3304
LCD_SetReg(7, 0);
LCD_SetReg(0x13, 0);
delay
LCD_SetReg(0x11, 0x3304);
LCD_SetReg(0x14, 0x1300);
LCD_SetReg(0x10, 0x1a20);
LCD_SetReg(0x13, 0x40);
delay
LCD_SetReg(0x13, 0x60);
LCD_SetReg(0x13, 0x70);
delay
LCD_SetReg(1, 0x127);
LCD_SetReg(2, 0x700);
LCD_SetReg(3, 0x1030);
LCD_SetReg(8, 0x208);
LCD_SetReg(11, 0x620);
LCD_SetReg(12, 0x110);
LCD_SetReg(0x30, 0x120);
LCD_SetReg(0x31, 0x117);
LCD_SetReg(0x32, 0);
LCD_SetReg(0x33, 0x305);
LCD_SetReg(0x34, 0x717);
LCD_SetReg(0x35, 0x124);
LCD_SetReg(0x36, 0x706);
LCD_SetReg(0x37, 0x503);
LCD_SetReg(0x38, 0x1f03);
LCD_SetReg(0x39, 9);
LCD_SetReg(0x40, 0);
LCD_SetReg(0x41, 0);
LCD_SetReg(0x42, 0x13f);
LCD_SetReg(0x43, 0);
LCD_SetReg(0x44, 0x13f);
LCD_SetReg(0x45, 0);
LCD_SetReg(0x46, 0xef00);
LCD_SetReg(0x47, 0x13f);
LCD_SetReg(0x48, 0);
LCD_SetReg(7, 0x15);
delay
LCD_SetReg(7, 0x17);
LCD_SetReg(0x20, 0);
LCD_SetReg(0x21, 0);
LCD_SetReg(0x22, 0);
Display Off
-------------------------------------
LCD_SetReg(7, 0x16,);
delay
LCD_SetReg(7, 4);
delay
LCD_SetReg(0x10, 0x1e21);
delay
Display On
-------------------------------------
LCD_SetReg(0, 1)
delay
LCD_SetReg(0x10, 0);
delay
LCD_SetReg(0x11, 0x3304);
LCD_SetReg(0x14, 0x1300);
LCD_SetReg(0x10, 0x1a20);
LCD_SetReg(7, 0x15);
delay
LCD_SetReg(7, 0x17);
LCD_SetReg(0x20, 0);
LCD_SetReg(0x21, 0);
LCD_SetReg(0x22, 0);
|
|
|
03-27-2008
|
#7
|
|
Freshman
Join Date: Jan 2008
Posts: 46
Thanks: 0
Thanked 0 Times in 0 Posts
|
M6SP
[Unknown Driver IC]
Display Init
-------------------------------------
LCD_SetReg(7, 0);
LCD_SetReg(0x12, 0);
delay
LCD_SetReg(0x11, 12);
LCD_SetReg(0x12, 0xa1c);
LCD_SetReg(0x13, 0x22);
LCD_SetReg(0x14, 0);
LCD_SetReg(0x10, 0x7404);
LCD_SetReg(0x11, 0x738);
LCD_SetReg(0x10, 0x7404);
delay
LCD_SetReg(7, 9);
LCD_SetReg(0x12, 0x65c);
delay
LCD_SetReg(1, 0xe127);
LCD_SetReg(2, 0x300);
LCD_SetReg(3, 0x1100);
LCD_SetReg(8, 8);
LCD_SetReg(11, 0);
LCD_SetReg(12, 0);
LCD_SetReg(13, 7);
LCD_SetReg(0x15, 3);
LCD_SetReg(0x16, 0x14);
LCD_SetReg(0x17, 0);
LCD_SetReg(0x30, 0x503);
LCD_SetReg(0x31, 0x303);
LCD_SetReg(0x32, 0x305);
LCD_SetReg(0x33, 0x202);
LCD_SetReg(0x34, 0x204);
LCD_SetReg(0x35, 0x404);
LCD_SetReg(0x36, 0x402);
LCD_SetReg(0x37, 0x202);
LCD_SetReg(0x38, 0x1000);
LCD_SetReg(0x39, 0x1000);
LCD_SetReg(7, 9);
delay
LCD_SetReg(7, 0x109);
delay
LCD_SetReg(7, 0x10b);
Display Off
-------------------------------------
LCD_SetReg(11, 0);
LCD_SetReg(7, 0x109);
delay
LCD_SetReg(7, 8);
delay
LCD_SetReg(0x10, 0x400);
LCD_SetReg(0x10, 0x401);
delay
Display On
-------------------------------------
LCD_SetReg(0x10, 0x400);
delay
LCD_SetReg(7, 0);
LCD_SetReg(0x12, 0);
delay
LCD_SetReg(0x11, 12);
LCD_SetReg(0x12, 0xa1c);
LCD_SetReg(0x13, 0x22);
LCD_SetReg(0x14, 0);
LCD_SetReg(0x10, 0x7404);
LCD_SetReg(0x11, 0x738);
LCD_SetReg(0x10, 0x7404);
delay
LCD_SetReg(7, 9);
LCD_SetReg(0x12, 0x65c);
delay
LCD_SetReg(11, 0);
LCD_SetReg(7, 9);
delay
LCD_SetReg(7, 0x109);
delay
LCD_SetReg(7, 0x10b);
|
|
|
03-27-2008
|
#8
|
|
Member
Join Date: Jan 2008
Location: Indonesia
Posts: 106
Thanks: 0
Thanked 0 Times in 0 Posts
|
Hi, I'm not familiar with this, but I know that there are at least two different initialization sequences for the M3.
My M3 once had an LCD problem and was sent back for repairs. They changed my LCD panel for a new one, and now I could only use firmware version 2.004, not 2.003 or 2.001. So there must be some difference in the old and new panels.
|
|
|
03-27-2008
|
#9
|
|
Member
Join Date: Oct 2007
Location: Poznan, Poland
Posts: 113
Thanks: 0
Thanked 0 Times in 0 Posts
|
Isn't that a iPod nano display in the M3? (just a guess)
|
|
|
03-27-2008
|
#10
|
|
Passing By
Join Date: Feb 2008
Location: Gdańsk in Poland
Posts: 7
Thanks: 0
Thanked 0 Times in 0 Posts
|
I think it is, but i'm not sure (i've read about it but i don't remember where).
Last edited by dbmajster; 03-27-2008 at 07:27 PM.
|
|
|
03-27-2008
|
#11
|
|
Freshman
Join Date: Jan 2008
Posts: 46
Thanks: 0
Thanked 0 Times in 0 Posts
|
Meizu often change their components in the same model, it's announced that the Philips audio codec of M3 will be replaced with Wolfson 8987 from next week. So the new firmware must be smart enough to detect the chip.
|
|
|
03-27-2008
|
#12
|
|
Junior Member
Join Date: Dec 2006
Location: Cornwall, UK
Posts: 89
Thanks: 0
Thanked 0 Times in 0 Posts
|
Say, how did you figure out these? Do you have access to the official source code or did you just do a fair amount of decompilation?
|
|
|
03-27-2008
|
#13
|
|
French Moderator
Join Date: Aug 2007
Location: France
Posts: 1,858
Thanks: 33
Thanked 53 Times in 41 Posts
|
Originally Posted by Pytak
Isn't that a iPod nano display in the M3? (just a guess)
i think the answer is here
|
|
|
03-28-2008
|
#14
|
|
Member
Join Date: Jan 2008
Location: Indonesia
Posts: 106
Thanks: 0
Thanked 0 Times in 0 Posts
|
Originally Posted by kgb2008
the Philips audio codec of M3 will be replaced with Wolfson 8987 from next week.
Where did you get this info?
|
|
|
03-28-2008
|
#15
|
|
Freshman
Join Date: Jan 2008
Posts: 46
Thanks: 0
Thanked 0 Times in 0 Posts
|
Originally Posted by wpyh
Where did you get this info?
Meizu chinese official support forum
即日起新出厂的M3将音频芯片更换为Wolfson8987[魅族论坛]
In fact, this change is right there at the Feb.25 firmware upgrade, the UDA1380 occupies the i2c address 0x30 and WM8987 use 0x34, when the audio task is start, the code will try to set the analog volume register of UDA1380 and read it back, if unmatch, it will switch to WM8987 function set.
|
|
|
03-28-2008
|
#16
|
|
Junior Member
Join Date: Mar 2008
Location: Netherlands
Posts: 72
Thanks: 0
Thanked 0 Times in 0 Posts
|
I don't think we ever needed to put so much runtime detection in any of our rockbox targets before...
But I guess it's better than having many different firmwares and people needing to know which hardware they have exactly.
|
|
|
03-28-2008
|
#17
|
|
Administrator
Join Date: Mar 2007
Location: Budapest, Hungary
Posts: 3,243
Thanks: 101
Thanked 475 Times in 178 Posts
|
Originally Posted by kgb2008
Meizu often change their components in the same model, it's announced that the Philips audio codec of M3 will be replaced with Wolfson 8987 from next week.
Wow, great news! So I guess the M3's sound quality will reach the M6SL's :P
|
|
|
03-28-2008
|
#18
|
|
Member
Join Date: Jan 2008
Location: Indonesia
Posts: 106
Thanks: 0
Thanked 0 Times in 0 Posts
|
Originally Posted by kgb2008
Meizu chinese official support forum
即日起新出厂的M3将音频芯片更换为Wolfson8987[魅族论坛]
In fact, this change is right there at the Feb.25 firmware upgrade, the UDA1380 occupies the i2c address 0x30 and WM8987 use 0x34, when the audio task is start, the code will try to set the analog volume register of UDA1380 and read it back, if unmatch, it will switch to WM8987 function set.
Wow! I frequent that site but didn't notice his particular thread...
By the way, do you speak Chinese then?
|
|
|
03-28-2008
|
#19
|
|
Member
Join Date: Jan 2008
Location: Indonesia
Posts: 106
Thanks: 0
Thanked 0 Times in 0 Posts
|
nice2know_u: Is the M6SL sound quality better than the M3? I don't have an M6SL, only an M3 and M6. How does the M6SL compare to the M6?
|
|
|
03-28-2008
|
#20
|
|
Administrator
Join Date: Mar 2007
Location: Budapest, Hungary
Posts: 3,243
Thanks: 101
Thanked 475 Times in 178 Posts
|
I think the M6SL has the best sound quality of all meizu players (no hissing whatsoever). However I only had an M6SP before...
Here's a comparison thread
Last edited by nice2know_u; 03-28-2008 at 12:29 PM.
|
|
|
| Thread Tools |
|
|
| Display Modes |
Linear Mode
|
Hot Deals for Meizu Products |
Related Threads |
|
|
|
All times are GMT. The time now is 01:05 PM.
|
|
|
|
|