RaphaelLCD

来自WordPress中文文档
跳转至: 导航搜索

The following code applies to the RAPH100 _only_

Hitachi (5), Sharp(0xa) or Toppoly(2,0x11).

display init ->

vreg(4,1,bb8)
vreg(b,1,708)
gpio_0x62=1
vreg(a,1,a28)
i2c_wr(cc,20,2,0)
msleep 5
check PCB XC
if (PCB XC ) gpio_0x63=1
else    gpio_0x52=1
msleep 20
---mddi_host_init()---
clk_8c=0xa19

mddi_brigde_init()
clk_5c=0xa06
msleep 10
DPSET0 10801c =4bec0066

hitachi_powerup:

GPIODIR 150004 =3cc
GPIODATA 150000 =40004

msleep 2

msleep 50

SSICTL 120000 =170
SSITIME 120004 =100
SSICTL 120000 =172
DPSET1 108020 =108
DPSUS 108024 =0
DPRUN 108028 =1

while DPSUS(108024)=0x10 msleep 0x64 (DPSUS)

SYSCLKENA 10802c =1
CLKENB 160004 =a0ef
GPIOSEL 170000 =0
WKREQ 160000 =0
GPIODATA 150000 =3fc0000
GPIOPC 150028 =0
DRAMPWR 160008 =1
PWM0DUTYx08 140008 =60
PWM0PERIODx00 140000 =1388
PWM0OFF 14001c =1
PWM1DUTYx28 140028 =60
PWM1PERIODx20 140020 =1388
PWM1OFFx3c 14003c =1
PWM0DUTYx08 140008 =e0
PWM1DUTYx28 140028 =e0
PWMXXXx68 140068 =3
msleep 1
---get_panel_type---
msleep 10
read GPIODATA(150000)
id=0
if bit 0x10 is set -> id+=1
if bit 0x04 is set -> id+=2
=0 -> panel id 5 (hitachi)
=1 -> panel id 0xa (sharp)
=2 -> panel id 0x11 (toppoly2)
=3 -> panel id 2 (toppoly)
---mddi_toshiba---
PXL 110030 =0
VSYNIF 110060 =0
START 110008 =0
ASY_CMDSET 11008c =0

msleep 3

SRST 110000 =2

msleep 3

SRST 110000 =3
VSYNIF 110060 =0
PORT_ENB 110004 =2
ASY_DATA 11006c =80000007
ASY_DATB 110070 =4016
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 2

ASY_DATA 11006c =80000059
ASY_DATB 110070 =19
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 2

ASY_DATA 11006c =80000059
ASY_DATB 110070 =b
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 2

ASY_DATA 11006c =80000059
ASY_DATB 110070 =2
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 4

ASY_DATA 11006c =80000010
ASY_DATB 110070 =300
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 4

ASY_DATA 11006c =80000059
ASY_DATB 110070 =0
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 4

ASY_DATA 11006c =80000007
ASY_DATB 110070 =4004
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 2

PORT 11000c =0
PXL 110030 =0
START 110008 =0
REGENB 11005c =1
ASY_DATA 11006c =80000010
ASY_DATB 110070 =302
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4
VSYNIF 110060 =0
PORT_ENB 110004 =2
ASY_DATA 11006c =80000010
ASY_DATB 110070 =300
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4
ASY_DATA 11006c =80000011
ASY_DATB 110070 =812
ASY_DATC 110074 =80000012
ASY_DATD 110078 =3
ASY_DATE 11007c =80000013
ASY_DATF 110080 =909
ASY_DATG 110084 =80000010
ASY_DATH 110088 =40
ASY_CMDSET 11008c =1
ASY_CMDSET 11008c =0

msleep 4

ASY_DATA 11006c =80000010
ASY_DATB 110070 =340
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 6

ASY_DATA 11006c =80000010
ASY_DATB 110070 =3340
ASY_DATC 110074 =80000007
ASY_DATD 110078 =4007
ASY_CMDSET 11008c =9
ASY_CMDSET 11008c =8

msleep 1

ASY_DATA 11006c =80000007
ASY_DATB 110070 =4017
ASY_DATC 110074 =8000005b
ASY_DATD 110078 =0
ASY_DATE 11007c =80000059
ASY_DATF 110080 =11
ASY_CMDSET 11008c =d
ASY_CMDSET 11008c =c

msleep 2

ASY_DATA 11006c =80000059
ASY_DATB 110070 =19
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 2

ASY_DATA 11006c =80000059
ASY_DATB 110070 =79
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 2

ASY_DATA 11006c =80000059
ASY_DATB 110070 =3fc====1 ====
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 2

VSYNIF 110060 =0
PORT_ENB 110004 =2
ASY_DATA 11006c =80000007
ASY_DATB 110070 =4016
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 2

ASY_DATA 11006c =80000059
ASY_DATB 110070 =19
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 2

ASY_DATA 11006c =80000059
ASY_DATB 110070 =b
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 2

ASY_DATA 11006c =80000059
ASY_DATB 110070 =2
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 4

ASY_DATA 11006c =80000010
ASY_DATB 110070 =300
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 4

ASY_DATA 11006c =80000059
ASY_DATB 110070 =0
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 4

ASY_DATA 11006c =80000007
ASY_DATB 110070 =4004
ASY_CMDSET 11008c =5
ASY_CMDSET 11008c =4

msleep 4

PORT 11000c =0
PXL 110030 =0
START 110008 =0
VSYNIF 110060 =1
PORT_ENB 110004 =1
REGENB 11005c =1
---(common)---

---prim_start---
get_panel_id()
hitachi here
BITMAP0 108044 =28001e0
BITMAP1 108048 =1e000f0
BITMAP2 10804c =1e000f0
BITMAP3 108050 =1e000f0
BITMAP4 108054 =dc00b0
CLKENB 160004 =a1eb
PORT_ENB 110004 =1
PORT 11000c =8
PXL 110030 =1
MPLFBUF 110020 =0
HCYCLE 110034 =f9
HSW 110038 =2
HDE_START 11003c =7
HDE_SIZE 110040 =ef
VCYCLE 110044 =2fc====3 ====
VSW 110048 =5
VDE_START 11004c =9
VDE_SIZE 110050 =27c====3 ====
START 110008 =1

RAPH800 Panels:

1 Hitachi
2 toppoly
3 seid_rgb
4 seid_mddi
5 samsung_mddi

Init:


config gpio (0x62,2,0,0) -> output, alt<code>0, val</code>0
config gpio (0x63,2,0,0) -> output, alt<code>0, val</code>0

vreg enable 9,0xa5a
msleep 1
vreg enable 3,0x708
msleep 1
vreg enable 6,0xb22
msleep 1
i2c wr: cc,20,29,0

//msleep?(500)  maybe usleep?
//gpio_set_value?(0x62, 1)

//TODO: read some r4=*unk_9a2a16d0 ???
if = 1:  msleep?(500) again

vreg enable 8,0xb22
vreg enable a,0xa28

// read r4 again ^
if = 0: config gpio (0x1b,2,4,0) -> output, alt<code>1;pull</code>drvstr<code>0, out</code>0

//gpio_set_value?(0x63, 1)

// read r4 again
if = 1: msleep(1 * 1000)
else   : msleep(10 * 1000)

mddi_host_init( ) //sub_9a025e1c()

// read r4 again
if = 0: sub_9a03d938( *unk_9a2b4660 ) // mddi_bridge_init()

Raph800 log:

22:44:30 [[D:DISP]] g_CurrentPanelType=5...
mddi_client_lcd_get_vsync_params: rows_per_refresh=660
mddi_client_lcd_get_vsync_params: mdp_last_mddi_rows_per_second=35640
22:44:30 [[D:DISP]] g_dwLayer9VirAddr<code>0x53563c00 g_dwLayer9PhyAddr</code>0x17163c00



Back to Raphael Main Page or Back to Raphael Research