diff options
author | Andrew Ryabinin <ryabinin.a.a@gmail.com> | 2013-10-27 22:34:24 +0400 |
---|---|---|
committer | Andrew Ryabinin <ryabinin.a.a@gmail.com> | 2013-11-05 09:59:45 +0400 |
commit | d602717735b09cdd39e4e8c75d69ce8c5e2d957d (patch) | |
tree | fd22483f6d11f41daeec6a4668e5007ed4481e9a /firmware/target | |
parent | b48e6d0e1c7e533d3da5519a9b0d76026db14f4d (diff) | |
download | rockbox-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')
-rw-r--r-- | firmware/target/arm/rk27xx/backlight-rk27xx.c | 2 | ||||
-rw-r--r-- | firmware/target/arm/rk27xx/debug-rk27xx.c | 2 | ||||
-rw-r--r-- | firmware/target/arm/rk27xx/ma/lcd-ma.c | 81 | ||||
-rw-r--r-- | firmware/target/arm/rk27xx/sd-rk27xx.c | 2 |
4 files changed, 84 insertions, 3 deletions
diff --git a/firmware/target/arm/rk27xx/backlight-rk27xx.c b/firmware/target/arm/rk27xx/backlight-rk27xx.c index 9ea9c9984e..8c10d7af2a 100644 --- a/firmware/target/arm/rk27xx/backlight-rk27xx.c +++ b/firmware/target/arm/rk27xx/backlight-rk27xx.c | |||
@@ -61,7 +61,7 @@ static const unsigned short lin_brightness[] = { | |||
61 | 562, 579, 596, 616, 637, 660, 684, 711, | 61 | 562, 579, 596, 616, 637, 660, 684, 711, |
62 | 739, 770, 802, 837, 874, 914, 955, 1000 | 62 | 739, 770, 802, 837, 874, 914, 955, 1000 |
63 | }; | 63 | }; |
64 | #elif defined(MA9) | 64 | #elif defined(MA9) || defined(MA9C) |
65 | static const unsigned short lin_brightness[] = { | 65 | static const unsigned short lin_brightness[] = { |
66 | 2, 4, 7, 10, 15, 21, 28, 36, | 66 | 2, 4, 7, 10, 15, 21, 28, 36, |
67 | 46, 58, 72, 87, 104, 124, 146, 171, | 67 | 46, 58, 72, 87, 104, 124, 146, 171, |
diff --git a/firmware/target/arm/rk27xx/debug-rk27xx.c b/firmware/target/arm/rk27xx/debug-rk27xx.c index a73ca05c77..9f91f58f14 100644 --- a/firmware/target/arm/rk27xx/debug-rk27xx.c +++ b/firmware/target/arm/rk27xx/debug-rk27xx.c | |||
@@ -32,7 +32,7 @@ | |||
32 | 32 | ||
33 | #ifdef RK27_GENERIC | 33 | #ifdef RK27_GENERIC |
34 | #define DEBUG_CANCEL BUTTON_VOL | 34 | #define DEBUG_CANCEL BUTTON_VOL |
35 | #elif defined(HM60X) || defined(HM801) || defined(MA9) | 35 | #elif defined(HM60X) || defined(HM801) || defined(MA_PAD) |
36 | #define DEBUG_CANCEL BUTTON_LEFT | 36 | #define DEBUG_CANCEL BUTTON_LEFT |
37 | #endif | 37 | #endif |
38 | 38 | ||
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 | |||
30 | static bool display_on = false; | 34 | static bool display_on = false; |
31 | 35 | ||
36 | #if (CONFIG_LCD == LCD_ILI9342C) | ||
37 | void 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 | ||
33 | void lcd_display_init(void) | 113 | void 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 | ||
135 | void lcd_enable (bool on) | 216 | void lcd_enable (bool on) |
136 | { | 217 | { |
diff --git a/firmware/target/arm/rk27xx/sd-rk27xx.c b/firmware/target/arm/rk27xx/sd-rk27xx.c index ef9845d696..39a4330d2a 100644 --- a/firmware/target/arm/rk27xx/sd-rk27xx.c +++ b/firmware/target/arm/rk27xx/sd-rk27xx.c | |||
@@ -132,7 +132,7 @@ static inline bool card_detect_target(void) | |||
132 | return !(GPIO_PCDR & 0x80); | 132 | return !(GPIO_PCDR & 0x80); |
133 | #elif defined(HM60X) || defined(HM801) | 133 | #elif defined(HM60X) || defined(HM801) |
134 | return !(GPIO_PFDR & (1<<2)); | 134 | return !(GPIO_PFDR & (1<<2)); |
135 | #elif defined(MA9) | 135 | #elif defined(MA9) || defined(MA9C) |
136 | return (GPIO_PCDR & 0x80); | 136 | return (GPIO_PCDR & 0x80); |
137 | #else | 137 | #else |
138 | #error "Unknown target" | 138 | #error "Unknown target" |