diff options
author | Maurus Cuelenaere <mcuelenaere@gmail.com> | 2008-07-16 13:56:41 +0000 |
---|---|---|
committer | Maurus Cuelenaere <mcuelenaere@gmail.com> | 2008-07-16 13:56:41 +0000 |
commit | 753cac37b791ce4f744404cd82f4eab98dc56d82 (patch) | |
tree | 289075f74f4ed6b8b4f3e344da0e6a3afd4d3ab6 /firmware/target/mips/ingenic_jz47xx | |
parent | e3b2f4ffeda7b804a16125e26918c7cdbcecdac9 (diff) | |
download | rockbox-753cac37b791ce4f744404cd82f4eab98dc56d82.tar.gz rockbox-753cac37b791ce4f744404cd82f4eab98dc56d82.zip |
Implement working lcd_off/lcd_on routine
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18070 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/target/mips/ingenic_jz47xx')
-rw-r--r-- | firmware/target/mips/ingenic_jz47xx/onda_vx747/lcd-onda_vx747.c | 52 |
1 files changed, 44 insertions, 8 deletions
diff --git a/firmware/target/mips/ingenic_jz47xx/onda_vx747/lcd-onda_vx747.c b/firmware/target/mips/ingenic_jz47xx/onda_vx747/lcd-onda_vx747.c index 871f2f0861..e99bc178f1 100644 --- a/firmware/target/mips/ingenic_jz47xx/onda_vx747/lcd-onda_vx747.c +++ b/firmware/target/mips/ingenic_jz47xx/onda_vx747/lcd-onda_vx747.c | |||
@@ -57,7 +57,7 @@ static void _display_pin_init(void) | |||
57 | #define SLCD_SET_DATA(x) WAIT_ON_SLCD; REG_SLCD_DATA = (x) | SLCD_DATA_RS_DATA; | 57 | #define SLCD_SET_DATA(x) WAIT_ON_SLCD; REG_SLCD_DATA = (x) | SLCD_DATA_RS_DATA; |
58 | #define SLCD_SET_COMMAND(x) WAIT_ON_SLCD; REG_SLCD_DATA = (x) | SLCD_DATA_RS_COMMAND; | 58 | #define SLCD_SET_COMMAND(x) WAIT_ON_SLCD; REG_SLCD_DATA = (x) | SLCD_DATA_RS_COMMAND; |
59 | #define SLCD_SEND_COMMAND(cmd,val) SLCD_SET_COMMAND(cmd); SLCD_SET_DATA(val); | 59 | #define SLCD_SEND_COMMAND(cmd,val) SLCD_SET_COMMAND(cmd); SLCD_SET_DATA(val); |
60 | static void _display_on(void) | 60 | static void _display_init(void) |
61 | { | 61 | { |
62 | int i; | 62 | int i; |
63 | 63 | ||
@@ -75,7 +75,7 @@ static void _display_on(void) | |||
75 | SLCD_SEND_COMMAND(REG_LPCTRL, 0x10); | 75 | SLCD_SEND_COMMAND(REG_LPCTRL, 0x10); |
76 | SLCD_SEND_COMMAND(REG_EXT_DISP_CTRL1, 0); | 76 | SLCD_SEND_COMMAND(REG_EXT_DISP_CTRL1, 0); |
77 | SLCD_SEND_COMMAND(REG_EXT_DISP_CTRL2, 0); | 77 | SLCD_SEND_COMMAND(REG_EXT_DISP_CTRL2, 0); |
78 | SLCD_SEND_COMMAND(REG_DISP_CTRL1, 1); | 78 | SLCD_SEND_COMMAND(REG_DISP_CTRL1, DISP_CTRL1_D(1)); |
79 | SLCD_SEND_COMMAND(REG_PAN_INTF_CTRL1, 0x12); | 79 | SLCD_SEND_COMMAND(REG_PAN_INTF_CTRL1, 0x12); |
80 | SLCD_SEND_COMMAND(REG_PAN_INTF_CTRL2, 0x202); | 80 | SLCD_SEND_COMMAND(REG_PAN_INTF_CTRL2, 0x202); |
81 | SLCD_SEND_COMMAND(REG_PAN_INTF_CTRL3, 0x300); | 81 | SLCD_SEND_COMMAND(REG_PAN_INTF_CTRL3, 0x300); |
@@ -83,7 +83,7 @@ static void _display_on(void) | |||
83 | SLCD_SEND_COMMAND(REG_PAN_INTF_CTRL5, 0x202); | 83 | SLCD_SEND_COMMAND(REG_PAN_INTF_CTRL5, 0x202); |
84 | SLCD_SEND_COMMAND(REG_PAN_INTF_CTRL6, 0x100); | 84 | SLCD_SEND_COMMAND(REG_PAN_INTF_CTRL6, 0x100); |
85 | SLCD_SEND_COMMAND(REG_FRM_MRKR_CTRL, 0x8000); | 85 | SLCD_SEND_COMMAND(REG_FRM_MRKR_CTRL, 0x8000); |
86 | SLCD_SEND_COMMAND(REG_PWR_CTRL1, 0x16b0); | 86 | SLCD_SEND_COMMAND(REG_PWR_CTRL1, (PWR_CTRL1_SAPE | PWR_CTRL1_BT(6) | PWR_CTRL1_APE | PWR_CTRL1_AP(3))); |
87 | SLCD_SEND_COMMAND(REG_PWR_CTRL2, 0x147); | 87 | SLCD_SEND_COMMAND(REG_PWR_CTRL2, 0x147); |
88 | SLCD_SEND_COMMAND(REG_PWR_CTRL3, 0x1bd); | 88 | SLCD_SEND_COMMAND(REG_PWR_CTRL3, 0x1bd); |
89 | SLCD_SEND_COMMAND(REG_PWR_CTRL4, 0x2f00); | 89 | SLCD_SEND_COMMAND(REG_PWR_CTRL4, 0x2f00); |
@@ -131,12 +131,48 @@ static void _display_on(void) | |||
131 | SLCD_SEND_COMMAND(0x7f5, 1); | 131 | SLCD_SEND_COMMAND(0x7f5, 1); |
132 | SLCD_SEND_COMMAND(0x7f0, 0); | 132 | SLCD_SEND_COMMAND(0x7f0, 0); |
133 | 133 | ||
134 | SLCD_SEND_COMMAND(REG_DISP_CTRL1, 0x173); | 134 | /* LCD ON: */ |
135 | SLCD_SEND_COMMAND(REG_DISP_CTRL1, (DISP_CTRL1_BASEE | DISP_CTRL1_VON | ||
136 | | DISP_CTRL1_GON | DISP_CTRL1_DTE | DISP_CTRL1_D(3)) | ||
137 | ); | ||
138 | SLEEP(3500000); | ||
139 | SLCD_SEND_COMMAND(REG_DISP_CTRL1, (DISP_CTRL1_BASEE | DISP_CTRL1_VON | ||
140 | | DISP_CTRL1_GON | DISP_CTRL1_DTE | DISP_CTRL1_D(2)) | ||
141 | ); | ||
142 | SLEEP(3500000); | ||
143 | SLCD_SEND_COMMAND(REG_DISP_CTRL1, (DISP_CTRL1_BASEE | DISP_CTRL1_VON | ||
144 | | DISP_CTRL1_GON | DISP_CTRL1_DTE | DISP_CTRL1_D(3)) | ||
145 | ); | ||
146 | SLEEP(3500000); | ||
147 | } | ||
148 | |||
149 | static void _display_on(void) | ||
150 | { | ||
151 | int i; | ||
152 | SLCD_SEND_COMMAND(REG_PWR_CTRL1, (PWR_CTRL1_SAPE | PWR_CTRL1_BT(6) | PWR_CTRL1_APE | PWR_CTRL1_AP(3))); | ||
153 | SLEEP(3500000); | ||
154 | SLCD_SEND_COMMAND(REG_DISP_CTRL1, (DISP_CTRL1_VON | DISP_CTRL1_GON | ||
155 | | DISP_CTRL1_D(1)) | ||
156 | ); | ||
157 | SLEEP(3500000); | ||
158 | SLCD_SEND_COMMAND(REG_DISP_CTRL1, (DISP_CTRL1_VON | DISP_CTRL1_GON | ||
159 | | DISP_CTRL1_DTE | DISP_CTRL1_D(3) | ||
160 | | DISP_CTRL1_BASEE) | ||
161 | ); | ||
162 | } | ||
163 | |||
164 | static void _display_off(void) | ||
165 | { | ||
166 | int i; | ||
167 | SLCD_SEND_COMMAND(REG_DISP_CTRL1, (DISP_CTRL1_VON | DISP_CTRL1_GON | ||
168 | | DISP_CTRL1_DTE | DISP_CTRL1_D(2)) | ||
169 | ); | ||
135 | SLEEP(3500000); | 170 | SLEEP(3500000); |
136 | SLCD_SEND_COMMAND(REG_DISP_CTRL1, 0x171); | 171 | SLCD_SEND_COMMAND(REG_DISP_CTRL1, DISP_CTRL1_D(1)); |
137 | SLEEP(3500000); | 172 | SLEEP(3500000); |
138 | SLCD_SEND_COMMAND(REG_DISP_CTRL1, 0x173); | 173 | SLCD_SEND_COMMAND(REG_DISP_CTRL1, DISP_CTRL1_D(0)); |
139 | SLEEP(3500000); | 174 | SLEEP(3500000); |
175 | SLCD_SEND_COMMAND(REG_PWR_CTRL1, PWR_CTRL1_SLP); | ||
140 | } | 176 | } |
141 | 177 | ||
142 | static void _set_lcd_bus(void) | 178 | static void _set_lcd_bus(void) |
@@ -177,7 +213,7 @@ void lcd_init_controller(void) | |||
177 | _set_lcd_bus(); | 213 | _set_lcd_bus(); |
178 | _set_lcd_clock(); | 214 | _set_lcd_clock(); |
179 | SLEEP(1000); | 215 | SLEEP(1000); |
180 | _display_on(); | 216 | _display_init(); |
181 | } | 217 | } |
182 | 218 | ||
183 | void lcd_set_target(short x, short y, short width, short height) | 219 | void lcd_set_target(short x, short y, short width, short height) |
@@ -198,5 +234,5 @@ void lcd_on(void) | |||
198 | 234 | ||
199 | void lcd_off(void) | 235 | void lcd_off(void) |
200 | { | 236 | { |
201 | return; | 237 | _display_off(); |
202 | } | 238 | } |