summaryrefslogtreecommitdiff
path: root/firmware/target/arm/rk27xx/ma
diff options
context:
space:
mode:
authorAndrew Ryabinin <ryabinin.a.a@gmail.com>2013-10-27 22:34:24 +0400
committerAndrew Ryabinin <ryabinin.a.a@gmail.com>2013-11-05 09:59:45 +0400
commitd602717735b09cdd39e4e8c75d69ce8c5e2d957d (patch)
treefd22483f6d11f41daeec6a4668e5007ed4481e9a /firmware/target/arm/rk27xx/ma
parentb48e6d0e1c7e533d3da5519a9b0d76026db14f4d (diff)
downloadrockbox-d602717735b09cdd39e4e8c75d69ce8c5e2d957d.tar.gz
rockbox-d602717735b09cdd39e4e8c75d69ce8c5e2d957d.zip
Introduce HiFi E.T. MA9C port.
The only difference between this target and HiFi E.T. MA9 is display driver (ILI9342 in MA9 and ILI9342c in MA9C) Change-Id: Icc3d2490f850902a653175360f12283f3708bbb7
Diffstat (limited to 'firmware/target/arm/rk27xx/ma')
-rw-r--r--firmware/target/arm/rk27xx/ma/lcd-ma.c81
1 files changed, 81 insertions, 0 deletions
diff --git a/firmware/target/arm/rk27xx/ma/lcd-ma.c b/firmware/target/arm/rk27xx/ma/lcd-ma.c
index a35f13ba3a..3fecce2d18 100644
--- a/firmware/target/arm/rk27xx/ma/lcd-ma.c
+++ b/firmware/target/arm/rk27xx/ma/lcd-ma.c
@@ -27,8 +27,88 @@
27#include "cpu.h" 27#include "cpu.h"
28#include "lcdif-rk27xx.h" 28#include "lcdif-rk27xx.h"
29 29
30#define ILI9342 0
31#define ILI9342C 1
32#define LCD_DRIVER ILI9342C
33
30static bool display_on = false; 34static bool display_on = false;
31 35
36#if (CONFIG_LCD == LCD_ILI9342C)
37void lcd_display_init(void)
38{
39 unsigned int x, y;
40
41 lcd_cmd(0xC8);
42 lcd_data(0xFF);
43 lcd_data(0x93);
44 lcd_data(0x42);
45
46 lcd_write_reg(0x36, 0xC8);
47
48 lcd_write_reg(0x3A, 0x55);
49
50 lcd_cmd(0xC0);
51 lcd_data(0x14);
52 lcd_data(0x0E);
53
54 lcd_write_reg(0xC1, 0x01);
55
56 lcd_write_reg(0xC5, 0xF4);
57
58 lcd_cmd(0xB1);
59 lcd_data(0x00);
60 lcd_data(0x1B);
61
62 lcd_write_reg(0xB4, 0x02);
63
64 lcd_cmd(0xE0);
65 lcd_data(0x00);
66 lcd_data(0x0A);
67 lcd_data(0x11);
68 lcd_data(0x08);
69 lcd_data(0x16);
70 lcd_data(0x0A);
71 lcd_data(0x3C);
72 lcd_data(0x9B);
73 lcd_data(0x4A);
74 lcd_data(0x09);
75 lcd_data(0x0E);
76 lcd_data(0x0A);
77 lcd_data(0x1C);
78 lcd_data(0x1D);
79 lcd_data(0x0F);
80
81 lcd_cmd(0xE1);
82 lcd_data(0x00);
83 lcd_data(0x23);
84 lcd_data(0x25);
85 lcd_data(0x04);
86 lcd_data(0x10);
87 lcd_data(0x07);
88 lcd_data(0x39);
89 lcd_data(0x46);
90 lcd_data(0x4A);
91 lcd_data(0x03);
92 lcd_data(0x0C);
93 lcd_data(0x0A);
94 lcd_data(0x31);
95 lcd_data(0x36);
96 lcd_data(0x0F);
97
98 /* exit sleep */
99 lcd_cmd(0x11);
100 udelay(5000);
101 lcd_cmd(0x29);
102
103 lcd_cmd(0x2C);
104 for (x = 0; x < LCD_WIDTH; x++)
105 for(y=0; y < LCD_HEIGHT; y++)
106 lcd_data(0x00);
107
108 display_on = true;
109}
110
111#elif (CONFIG_LCD == LCD_ILI9342)
32 112
33void lcd_display_init(void) 113void lcd_display_init(void)
34{ 114{
@@ -131,6 +211,7 @@ void lcd_display_init(void)
131 211
132 display_on = true; 212 display_on = true;
133} 213}
214#endif
134 215
135void lcd_enable (bool on) 216void lcd_enable (bool on)
136{ 217{