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/arm | |
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/arm')
-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[] = { 562, 579, 596, 616, 637, 660, 684, 711, 739, 770, 802, 837, 874, 914, 955, 1000 }; -#elif defined(MA9) +#elif defined(MA9) || defined(MA9C) static const unsigned short lin_brightness[] = { 2, 4, 7, 10, 15, 21, 28, 36, 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 @@ #ifdef RK27_GENERIC #define DEBUG_CANCEL BUTTON_VOL -#elif defined(HM60X) || defined(HM801) || defined(MA9) +#elif defined(HM60X) || defined(HM801) || defined(MA_PAD) #define DEBUG_CANCEL BUTTON_LEFT #endif 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 @@ #include "cpu.h" #include "lcdif-rk27xx.h" +#define ILI9342 0 +#define ILI9342C 1 +#define LCD_DRIVER ILI9342C + static bool display_on = false; +#if (CONFIG_LCD == LCD_ILI9342C) +void lcd_display_init(void) +{ + unsigned int x, y; + + lcd_cmd(0xC8); + lcd_data(0xFF); + lcd_data(0x93); + lcd_data(0x42); + + lcd_write_reg(0x36, 0xC8); + + lcd_write_reg(0x3A, 0x55); + + lcd_cmd(0xC0); + lcd_data(0x14); + lcd_data(0x0E); + + lcd_write_reg(0xC1, 0x01); + + lcd_write_reg(0xC5, 0xF4); + + lcd_cmd(0xB1); + lcd_data(0x00); + lcd_data(0x1B); + + lcd_write_reg(0xB4, 0x02); + + lcd_cmd(0xE0); + lcd_data(0x00); + lcd_data(0x0A); + lcd_data(0x11); + lcd_data(0x08); + lcd_data(0x16); + lcd_data(0x0A); + lcd_data(0x3C); + lcd_data(0x9B); + lcd_data(0x4A); + lcd_data(0x09); + lcd_data(0x0E); + lcd_data(0x0A); + lcd_data(0x1C); + lcd_data(0x1D); + lcd_data(0x0F); + + lcd_cmd(0xE1); + lcd_data(0x00); + lcd_data(0x23); + lcd_data(0x25); + lcd_data(0x04); + lcd_data(0x10); + lcd_data(0x07); + lcd_data(0x39); + lcd_data(0x46); + lcd_data(0x4A); + lcd_data(0x03); + lcd_data(0x0C); + lcd_data(0x0A); + lcd_data(0x31); + lcd_data(0x36); + lcd_data(0x0F); + + /* exit sleep */ + lcd_cmd(0x11); + udelay(5000); + lcd_cmd(0x29); + + lcd_cmd(0x2C); + for (x = 0; x < LCD_WIDTH; x++) + for(y=0; y < LCD_HEIGHT; y++) + lcd_data(0x00); + + display_on = true; +} + +#elif (CONFIG_LCD == LCD_ILI9342) void lcd_display_init(void) { @@ -131,6 +211,7 @@ void lcd_display_init(void) display_on = true; } +#endif void lcd_enable (bool on) { 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) return !(GPIO_PCDR & 0x80); #elif defined(HM60X) || defined(HM801) return !(GPIO_PFDR & (1<<2)); -#elif defined(MA9) +#elif defined(MA9) || defined(MA9C) return (GPIO_PCDR & 0x80); #else #error "Unknown target" |