diff options
author | Jens Arnold <amiconn@rockbox.org> | 2006-03-30 17:29:21 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2006-03-30 17:29:21 +0000 |
commit | d3feb78e4053d287755a4f8404c3a9ce1a491e93 (patch) | |
tree | b68592c039f004e2eabf41e89efece89030cc58b /firmware | |
parent | 1ccc81bf8f4382e56f0f0ae0779381fb5d4a88c4 (diff) | |
download | rockbox-d3feb78e4053d287755a4f8404c3a9ce1a491e93.tar.gz rockbox-d3feb78e4053d287755a4f8404c3a9ce1a491e93.zip |
Initial support for iPod mini 2G: Rockbox boots, LCD driver is working. No sound, no buttons, and hangs at the boot screen.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9363 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/drivers/lcd-ipod.c | 27 | ||||
-rw-r--r-- | firmware/export/config-ipodmini.h | 2 | ||||
-rwxr-xr-x | firmware/export/config-ipodmini2g.h | 99 | ||||
-rw-r--r-- | firmware/export/config.h | 2 |
4 files changed, 120 insertions, 10 deletions
diff --git a/firmware/drivers/lcd-ipod.c b/firmware/drivers/lcd-ipod.c index 2d190d3d70..8936dad912 100644 --- a/firmware/drivers/lcd-ipod.c +++ b/firmware/drivers/lcd-ipod.c @@ -76,20 +76,28 @@ static void lcd_wait_write(void) static void lcd_send_data(int data_lo, int data_hi) { lcd_wait_write(); - outl(data_lo, IPOD_LCD_BASE + LCD_DATA); - lcd_wait_write(); - outl(data_hi, IPOD_LCD_BASE + LCD_DATA); +#ifdef IPOD_MINI2G + outl((inl(IPOD_LCD_BASE) & ~0x1f00000) | 0x1700000, IPOD_LCD_BASE); + outl(data_hi | (data_lo << 8) | 0x760000, IPOD_LCD_BASE+8); +#else + outl(data_lo, IPOD_LCD_BASE + LCD_DATA); + lcd_wait_write(); + outl(data_hi, IPOD_LCD_BASE + LCD_DATA); +#endif } /* send LCD command */ static void lcd_prepare_cmd(int cmd) { lcd_wait_write(); - - outl(0x0, IPOD_LCD_BASE + LCD_CMD); - lcd_wait_write(); - outl(cmd, IPOD_LCD_BASE + LCD_CMD); - +#ifdef IPOD_MINI2G + outl((inl(IPOD_LCD_BASE) & ~0x1f00000) | 0x1700000, IPOD_LCD_BASE); + outl(cmd | 0x740000, IPOD_LCD_BASE+8); +#else + outl(0x0, IPOD_LCD_BASE + LCD_CMD); + lcd_wait_write(); + outl(cmd, IPOD_LCD_BASE + LCD_CMD); +#endif } /* send LCD command and data */ @@ -105,7 +113,8 @@ static void lcd_cmd_and_data(int cmd, int data_lo, int data_hi) * LCD init **/ void lcd_init_device(void){ -#ifdef APPLE_IPODMINI +#if defined(IPOD_MINI) || defined(IPOD_MINI2G) + /* driver output control - 160x112 (ipod mini) */ lcd_cmd_and_data(0x1, 0x0, 0xd); #else /* driver output control - 160x128 */ diff --git a/firmware/export/config-ipodmini.h b/firmware/export/config-ipodmini.h index 5ac97545d4..ea3f4e5c41 100644 --- a/firmware/export/config-ipodmini.h +++ b/firmware/export/config-ipodmini.h @@ -1,5 +1,5 @@ /* - * This config file is for the Apple iPod Mini (1st & 2nd Gen) + * This config file is for the Apple iPod Mini (1st Gen) */ #define APPLE_IPODMINI 1 diff --git a/firmware/export/config-ipodmini2g.h b/firmware/export/config-ipodmini2g.h new file mode 100755 index 0000000000..60d812f8d7 --- /dev/null +++ b/firmware/export/config-ipodmini2g.h @@ -0,0 +1,99 @@ +/* + * This config file is for the Apple iPod Mini 2nd Gen + */ +#define APPLE_IPODMINI 1 + +#define IPOD_ARCH 1 + +/* For Rolo and boot loader */ +#define MODEL_NUMBER 11 + +/* define this if you have recording possibility */ +/*#define HAVE_RECORDING 1*/ + +/* define this if you have a bitmap LCD display */ +#define HAVE_LCD_BITMAP 1 + +/* LCD dimensions */ +#define LCD_WIDTH 138 +#define LCD_HEIGHT 110 +#define LCD_DEPTH 2 /* 4 colours - 2bpp */ + +#define LCD_PIXELFORMAT HORIZONTAL_PACKING + +#define CONFIG_KEYPAD IPOD_4G_PAD + +/* Define this if you do software codec */ +#define CONFIG_CODEC SWCODEC + +/* define this if you have a real-time clock */ +#ifndef BOOTLOADER +#define CONFIG_RTC RTC_PCF50605 +#endif + +/* Define this if you have a software controlled poweroff */ +#define HAVE_SW_POWEROFF + +/* The number of bytes reserved for loadable codecs */ +#define CODEC_SIZE 0x80000 + +/* The number of bytes reserved for loadable plugins */ +#define PLUGIN_BUFFER_SIZE 0x80000 + +/* Define this if you have the WM8975 audio codec */ +#define HAVE_WM8975 + +/* Define this for LCD backlight available */ +#define CONFIG_BACKLIGHT BL_IPODMINI /* port controlled */ + +#ifndef SIMULATOR + +/* Define this if you have a PortalPlayer PP5020 */ +#define CONFIG_CPU PP5020 + +/* Define this if you want to use the PP5020 i2c interface */ +#define CONFIG_I2C I2C_PP5020 + +/* Type of mobile power */ +//#define CONFIG_BATTERY BATT_LIPOL1300 + +#define BATTERY_SCALE_FACTOR 16665 /* FIX: this value is picked at random */ + +/* Define this if the platform can charge batteries */ +//#define HAVE_CHARGING 1 + +/* define this if the hardware can be powered off while charging */ +//#define HAVE_POWEROFF_WHILE_CHARGING + +/* The start address index for ROM builds */ +#define ROM_START 0x00000000 + +/* Define this to the CPU frequency */ +#define CPU_FREQ 11289600 + +#define CONFIG_LCD LCD_IPOD2BPP + +/* Offset ( in the firmware file's header ) to the file length */ +#define FIRMWARE_OFFSET_FILE_LENGTH 0 + +/* 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 USB_IPODSTYLE + +/* define this if the unit can be powered or charged via USB */ +#define HAVE_USB_POWER + +/* Virtual LED (icon) */ +#define CONFIG_LED LED_VIRTUAL + +/* Define this if you have adjustable CPU frequency */ +//#define HAVE_ADJUSTABLE_CPU_FREQ + +#define BOOTFILE_EXT "ipod" +#define BOOTFILE "rockbox." BOOTFILE_EXT + +#endif diff --git a/firmware/export/config.h b/firmware/export/config.h index 4ef4bd63fc..de89dfe99e 100644 --- a/firmware/export/config.h +++ b/firmware/export/config.h @@ -170,6 +170,8 @@ #include "config-gigabeat.h" #elif defined(IPOD_MINI) #include "config-ipodmini.h" +#elif defined(IPOD_MINI2G) +#include "config-ipodmini2g.h" #else /* no known platform */ #endif |