From d3feb78e4053d287755a4f8404c3a9ce1a491e93 Mon Sep 17 00:00:00 2001 From: Jens Arnold Date: Thu, 30 Mar 2006 17:29:21 +0000 Subject: 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 --- firmware/drivers/lcd-ipod.c | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) (limited to 'firmware/drivers/lcd-ipod.c') 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 */ -- cgit v1.2.3