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
This commit is contained in:
parent
b48e6d0e1c
commit
d602717735
9 changed files with 268 additions and 7 deletions
|
@ -67,7 +67,8 @@ main-pp.c
|
|||
show_logo.c
|
||||
#elif defined(MPIO_HD200) || defined(MPIO_HD300)
|
||||
mpio_hd200_hd300.c
|
||||
#elif defined(RK27_GENERIC) || defined(HM60X) || defined(HM801) || defined(MA9)
|
||||
#elif defined(RK27_GENERIC) || defined(HM60X) || defined(HM801) \
|
||||
|| defined(MA9) || defined(MA9C)
|
||||
rk27xx.c
|
||||
show_logo.c
|
||||
#elif defined(SANSA_CONNECT)
|
||||
|
|
|
@ -705,7 +705,7 @@ target/arm/ipod/lcd-gray.c
|
|||
target/arm/imx31/gigabeat-s/lcd-gigabeat-s.c
|
||||
#elif CONFIG_LCD == LCD_GIGABEAT || CONFIG_LCD == LCD_MINI2440
|
||||
target/arm/s3c2440/lcd-s3c2440.c
|
||||
#elif CONFIG_LCD == LCD_ILI9342
|
||||
#elif CONFIG_LCD == LCD_ILI9342 || CONFIG_LCD == LCD_ILI9342C
|
||||
target/arm/rk27xx/ma/lcd-ma.c
|
||||
#endif
|
||||
|
||||
|
@ -1745,7 +1745,7 @@ target/arm/rk27xx/hm801/powermgmt-hm801.c
|
|||
target/arm/rk27xx/hm801/power-hm801.c
|
||||
#endif
|
||||
|
||||
#if defined(MA9)
|
||||
#if defined(MA9) || defined(MA9C)
|
||||
target/arm/rk27xx/ma/button-ma.c
|
||||
target/arm/rk27xx/ma/powermgmt-ma.c
|
||||
target/arm/rk27xx/ma/power-ma.c
|
||||
|
|
|
@ -256,6 +256,7 @@
|
|||
#define LCD_NWZE360 52 /* as used by Sony NWZ-E360 series */
|
||||
#define LCD_CREATIVEZEN 55 /* as used by the Creative ZEN (X-Fi) (LMS250GF03-001(S6D0139)) */
|
||||
#define LCD_CREATIVEZENMOZAIC 56 /* as used by the Creative ZEN Mozaic (FGD0801) */
|
||||
#define LCD_ILI9342C 57 /* another type of lcd used by HiFi E.T MA9/MA8 */
|
||||
|
||||
/* LCD_PIXELFORMAT */
|
||||
#define HORIZONTAL_PACKING 1
|
||||
|
@ -532,6 +533,8 @@ Lyre prototype 1 */
|
|||
#include "config/creativezen.h"
|
||||
#elif defined(MA9)
|
||||
#include "config/hifietma9.h"
|
||||
#elif defined(MA9C)
|
||||
#include "config/hifietma9c.h"
|
||||
#elif defined(SONY_NWZE370)
|
||||
#include "config/sonynwze370.h"
|
||||
#elif defined(SONY_NWZE360)
|
||||
|
|
153
firmware/export/config/hifietma9c.h
Normal file
153
firmware/export/config/hifietma9c.h
Normal file
|
@ -0,0 +1,153 @@
|
|||
/*
|
||||
* This config file is for HiFi E.T. MA9 reference design
|
||||
*/
|
||||
|
||||
/* For Rolo and boot loader */
|
||||
#define MODEL_NUMBER 84
|
||||
|
||||
#define MODEL_NAME "HiFi E.T. MA9C"
|
||||
|
||||
/* define the bitmask of hardware sample rates */
|
||||
#define HW_SAMPR_CAPS (SAMPR_CAP_96 | SAMPR_CAP_48 | SAMPR_CAP_44 | \
|
||||
SAMPR_CAP_32 | SAMPR_CAP_24 | SAMPR_CAP_22 | \
|
||||
SAMPR_CAP_16 | SAMPR_CAP_12 | SAMPR_CAP_11 | SAMPR_CAP_8)
|
||||
|
||||
#define HAVE_DF1704_CODEC
|
||||
|
||||
#define CODEC_SLAVE
|
||||
/* define this if you have a bitmap LCD display */
|
||||
#define HAVE_LCD_BITMAP
|
||||
|
||||
/* define this if you can flip your LCD */
|
||||
/* #define HAVE_LCD_FLIP */
|
||||
|
||||
/* define this if you have a colour LCD */
|
||||
#define HAVE_LCD_COLOR
|
||||
|
||||
/* define this if you want album art for this target */
|
||||
#define HAVE_ALBUMART
|
||||
|
||||
/* define this to enable bitmap scaling */
|
||||
#define HAVE_BMP_SCALING
|
||||
|
||||
/* define this to enable JPEG decoding */
|
||||
#define HAVE_JPEG
|
||||
|
||||
/* define this if you can invert the colours on your LCD */
|
||||
/* #define HAVE_LCD_INVERT */
|
||||
|
||||
/* define this if you have access to the quickscreen */
|
||||
#define HAVE_QUICKSCREEN
|
||||
|
||||
/* define this if you would like tagcache to build on this target */
|
||||
#define HAVE_TAGCACHE
|
||||
|
||||
/* define this if you have a flash memory storage */
|
||||
#define HAVE_FLASH_STORAGE
|
||||
|
||||
#define CONFIG_STORAGE (STORAGE_SD | STORAGE_NAND)
|
||||
|
||||
#define CONFIG_NAND NAND_RK27XX
|
||||
#define HAVE_SW_TONE_CONTROLS
|
||||
|
||||
/* commented for now */
|
||||
/* #define HAVE_HOTSWAP */
|
||||
|
||||
#define NUM_DRIVES 2
|
||||
#define SECTOR_SIZE 512
|
||||
|
||||
/* for small(ish) SD cards */
|
||||
#define HAVE_FAT16SUPPORT
|
||||
|
||||
/* LCD dimensions */
|
||||
#define LCD_WIDTH 320
|
||||
#define LCD_HEIGHT 240
|
||||
#define LCD_DEPTH 16 /* pseudo 262.144 colors */
|
||||
#define LCD_PIXELFORMAT RGB565 /* rgb565 */
|
||||
|
||||
/* Define this if your LCD can be enabled/disabled */
|
||||
#define HAVE_LCD_ENABLE
|
||||
|
||||
#define CONFIG_KEYPAD MA_PAD
|
||||
|
||||
/* Define this to enable morse code input */
|
||||
#define HAVE_MORSE_INPUT
|
||||
|
||||
/* Define this if you do software codec */
|
||||
#define CONFIG_CODEC SWCODEC
|
||||
|
||||
#define CONFIG_LCD LCD_ILI9342C
|
||||
|
||||
/* Define this for LCD backlight available */
|
||||
#define HAVE_BACKLIGHT
|
||||
#define HAVE_BACKLIGHT_BRIGHTNESS
|
||||
#define MIN_BRIGHTNESS_SETTING 0
|
||||
#define MAX_BRIGHTNESS_SETTING 31
|
||||
#define DEFAULT_BRIGHTNESS_SETTING 31
|
||||
#define CONFIG_BACKLIGHT_FADING BACKLIGHT_FADING_SW_HW_REG
|
||||
|
||||
/* Define this if you have a software controlled poweroff */
|
||||
#define HAVE_SW_POWEROFF
|
||||
|
||||
/* The number of bytes reserved for loadable codecs */
|
||||
#define CODEC_SIZE 0x100000
|
||||
|
||||
/* The number of bytes reserved for loadable plugins */
|
||||
#define PLUGIN_BUFFER_SIZE 0x80000
|
||||
|
||||
/* TODO: Figure out real values */
|
||||
#define BATTERY_CAPACITY_DEFAULT 600 /* default battery capacity */
|
||||
#define BATTERY_CAPACITY_MIN 300 /* min. capacity selectable */
|
||||
#define BATTERY_CAPACITY_MAX 600 /* max. capacity selectable */
|
||||
#define BATTERY_CAPACITY_INC 10 /* capacity increment */
|
||||
#define BATTERY_TYPES_COUNT 1 /* only one type */
|
||||
|
||||
#define CONFIG_BATTERY_MEASURE VOLTAGE_MEASURE
|
||||
|
||||
/* Hardware controlled charging with monitoring */
|
||||
#define CONFIG_CHARGING CHARGING_MONITOR
|
||||
|
||||
/* USB On-the-go */
|
||||
#define CONFIG_USBOTG USBOTG_RK27XX
|
||||
|
||||
/* enable these for the experimental usb stack */
|
||||
#define HAVE_USBSTACK
|
||||
|
||||
#define USE_ROCKBOX_USB
|
||||
#define USB_VENDOR_ID 0x071b
|
||||
#define USB_PRODUCT_ID 0x3202
|
||||
#define HAVE_BOOTLOADER_USB_MODE
|
||||
|
||||
/* Define this if your LCD can set contrast */
|
||||
/* #define HAVE_LCD_CONTRAST */
|
||||
|
||||
/* The exact type of CPU */
|
||||
#define CONFIG_CPU RK27XX
|
||||
|
||||
/* I2C interface */
|
||||
#define CONFIG_I2C I2C_RK27XX
|
||||
|
||||
/* Define this to the CPU frequency */
|
||||
#define CPU_FREQ 200000000
|
||||
|
||||
/* define this if the hardware can be powered off while charging */
|
||||
/* #define HAVE_POWEROFF_WHILE_CHARGING */
|
||||
|
||||
/* Offset ( in the firmware file's header ) to the file CRC */
|
||||
#define FIRMWARE_OFFSET_FILE_CRC 0
|
||||
|
||||
/* Offset ( in the firmware file's header ) to the real data */
|
||||
#define FIRMWARE_OFFSET_FILE_DATA 8
|
||||
|
||||
#define STORAGE_NEEDS_ALIGN
|
||||
|
||||
/* Define this if you have adjustable CPU frequency */
|
||||
#define HAVE_ADJUSTABLE_CPU_FREQ
|
||||
|
||||
/* Virtual LED (icon) */
|
||||
#define CONFIG_LED LED_VIRTUAL
|
||||
|
||||
#define RKW_FORMAT
|
||||
#define BOOTFILE_EXT "rkw"
|
||||
#define BOOTFILE "rockbox." BOOTFILE_EXT
|
||||
#define BOOTDIR "/.rockbox"
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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"
|
||||
|
|
25
tools/configure
vendored
25
tools/configure
vendored
|
@ -1330,7 +1330,7 @@ cat <<EOF
|
|||
200) SDL 190) HM-60x
|
||||
201) Android ==HiFi E.T.== 191) HM-801
|
||||
202) Nokia N8xx 210) MA9
|
||||
203) Nokia N900 ==Sony==
|
||||
203) Nokia N900 211) MA9C ==Sony==
|
||||
204) Pandora 220) NWZ-E370 series
|
||||
205) Samsung YP-R0 221) NWZ-E360 series
|
||||
206) Android MIPS
|
||||
|
@ -3498,6 +3498,29 @@ fi
|
|||
t_model="ma"
|
||||
;;
|
||||
|
||||
211|hifietma9c)
|
||||
target_id=84
|
||||
modelname="hifietma9c"
|
||||
target="MA9C"
|
||||
memory=16
|
||||
arm7ejscc
|
||||
tool="$rootdir/tools/scramble -rkw -modelnum=84"
|
||||
bmp2rb_mono="$rootdir/tools/bmp2rb -f 0"
|
||||
bmp2rb_native="$rootdir/tools/bmp2rb -f 4"
|
||||
output="rockbox.rkw"
|
||||
bootoutput="bootloader.rkw"
|
||||
appextra="recorder:gui"
|
||||
plugins=""
|
||||
swcodec="yes"
|
||||
# toolset is the tools within the tools directory that we build for
|
||||
# this particular target.
|
||||
toolset="$genericbitmaptools"
|
||||
# architecture, manufacturer and model for the target-tree build
|
||||
t_cpu="arm"
|
||||
t_manufacturer="rk27xx"
|
||||
t_model="ma"
|
||||
;;
|
||||
|
||||
220|sonynwze370)
|
||||
target_id=88
|
||||
modelname="sonynwze370"
|
||||
|
|
Loading…
Reference in a new issue