1
0
Fork 0
forked from len0rd/rockbox

Create config file for iPod 4G greyscale and various iPod 3G/4G greyscale fixes

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8585 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Dave Chapman 2006-02-05 18:25:41 +00:00
parent 75a60fbf69
commit 2924a48ca5
8 changed files with 151 additions and 20 deletions

View file

@ -112,7 +112,7 @@ drivers/mas.c
#ifdef IRIVER_H300_SERIES #ifdef IRIVER_H300_SERIES
drivers/pcf50606.c drivers/pcf50606.c
#endif #endif
#if defined(APPLE_IPODCOLOR) || defined(APPLE_IPODNANO) || defined(APPLE_IPODVIDEO) || defined(APPLE_IPOD3G) #if defined(APPLE_IPODCOLOR) || defined(APPLE_IPODNANO) || defined(APPLE_IPODVIDEO) || defined(APPLE_IPOD3G) || defined(APPLE_IPOD4G)
drivers/pcf50605.c drivers/pcf50605.c
#endif #endif
#if (CONFIG_RTC == RTC_M41ST84W) || (CONFIG_RTC == RTC_PCF50606) #if (CONFIG_RTC == RTC_M41ST84W) || (CONFIG_RTC == RTC_PCF50606)

View file

@ -52,7 +52,7 @@ INPUT(crt0.o)
#define FLASHSIZE 256K - ROM_START #define FLASHSIZE 256K - ROM_START
#endif #endif
#if (CONFIG_CPU!=PP5002) && (CONFIG_CPU!=PP5002) #if (CONFIG_CPU!=PP5002) && (CONFIG_CPU!=PP5020)
MEMORY MEMORY
{ {
DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE DRAM : ORIGIN = DRAMORIG, LENGTH = DRAMSIZE

View file

@ -610,7 +610,26 @@ void lcd_putsxy(int x, int y, const unsigned char *str)
/*** line oriented text output ***/ /*** line oriented text output ***/
/* put a string at a given char position */
void lcd_puts(int x, int y, const unsigned char *str)
{
lcd_puts_style_offset(x, y, str, STYLE_DEFAULT, 0);
}
void lcd_puts_style(int x, int y, const unsigned char *str, int style) void lcd_puts_style(int x, int y, const unsigned char *str, int style)
{
lcd_puts_style_offset(x, y, str, style, 0);
}
void lcd_puts_offset(int x, int y, const unsigned char *str, int offset)
{
lcd_puts_style_offset(x, y, str, STYLE_DEFAULT, offset);
}
/* put a string at a given char position, style, and pixel position,
* skipping first offset pixel columns */
void lcd_puts_style_offset(int x, int y, const unsigned char *str,
int style, int offset)
{ {
int xpos,ypos,w,h; int xpos,ypos,w,h;
int lastmode = drawmode; int lastmode = drawmode;
@ -624,23 +643,14 @@ void lcd_puts_style(int x, int y, const unsigned char *str, int style)
lcd_getstringsize(str, &w, &h); lcd_getstringsize(str, &w, &h);
xpos = xmargin + x*w / utf8length((char *)str); xpos = xmargin + x*w / utf8length((char *)str);
ypos = ymargin + y*h; ypos = ymargin + y*h;
lcd_putsxy(xpos, ypos, str); drawmode = (style & STYLE_INVERT) ?
drawmode = (DRMODE_SOLID|DRMODE_INVERSEVID); (DRMODE_SOLID|DRMODE_INVERSEVID) : DRMODE_SOLID;
lcd_putsxyofs(xpos, ypos, offset, str);
drawmode ^= DRMODE_INVERSEVID;
lcd_fillrect(xpos + w, ypos, LCD_WIDTH - (xpos + w), h); lcd_fillrect(xpos + w, ypos, LCD_WIDTH - (xpos + w), h);
if (style & STYLE_INVERT)
{
drawmode = DRMODE_COMPLEMENT;
lcd_fillrect(xpos, ypos, LCD_WIDTH - xpos, h);
}
drawmode = lastmode; drawmode = lastmode;
} }
/* put a string at a given char position */
void lcd_puts(int x, int y, const unsigned char *str)
{
lcd_puts_style(x, y, str, STYLE_DEFAULT);
}
/*** scrolling ***/ /*** scrolling ***/
/* Reverse the invert setting of the scrolling line (if any) at given char /* Reverse the invert setting of the scrolling line (if any) at given char
@ -686,6 +696,17 @@ void lcd_puts_scroll(int x, int y, const unsigned char *string)
} }
void lcd_puts_scroll_style(int x, int y, const unsigned char *string, int style) void lcd_puts_scroll_style(int x, int y, const unsigned char *string, int style)
{
lcd_puts_scroll_style_offset(x, y, string, style, 0);
}
void lcd_puts_scroll_offset(int x, int y, const unsigned char *string, int offset)
{
lcd_puts_scroll_style_offset(x, y, string, STYLE_DEFAULT, offset);
}
void lcd_puts_scroll_style_offset(int x, int y, const unsigned char *string,
int style, int offset)
{ {
struct scrollinfo* s; struct scrollinfo* s;
int w, h; int w, h;
@ -696,10 +717,10 @@ void lcd_puts_scroll_style(int x, int y, const unsigned char *string, int style)
s->invert = false; s->invert = false;
if (style & STYLE_INVERT) { if (style & STYLE_INVERT) {
s->invert = true; s->invert = true;
lcd_puts_style(x,y,string,STYLE_INVERT); lcd_puts_style_offset(x,y,string,STYLE_INVERT,offset);
} }
else else
lcd_puts(x,y,string); lcd_puts_offset(x,y,string,offset);
lcd_getstringsize(string, &w, &h); lcd_getstringsize(string, &w, &h);
@ -732,7 +753,7 @@ void lcd_puts_scroll_style(int x, int y, const unsigned char *string, int style)
strncpy(end, (char *)string, LCD_WIDTH/2); strncpy(end, (char *)string, LCD_WIDTH/2);
s->len = utf8length((char *)string); s->len = utf8length((char *)string);
s->offset = 0; s->offset = offset;
s->startx = x; s->startx = x;
s->backward = false; s->backward = false;
scrolling_lines |= (1<<y); scrolling_lines |= (1<<y);

View file

@ -156,6 +156,19 @@ void lcd_set_contrast(int val)
lcd_contrast = val; lcd_contrast = val;
} }
void lcd_set_invert_display(bool yesno)
{
/* TODO: Implement lcd_set_invert_display() */
(void)yesno;
}
/* turn the display upside down (call lcd_update() afterwards) */
void lcd_set_flip(bool yesno)
{
/* TODO: Implement lcd_set_flip() */
(void)yesno;
}
void lcd_update_rect(int x, int y, int width, int height) void lcd_update_rect(int x, int y, int width, int height)
{ {
int cursor_pos, xx; int cursor_pos, xx;

View file

@ -273,7 +273,7 @@ void power_off(void)
and_l(~0x00080000, &GPIO1_OUT); and_l(~0x00080000, &GPIO1_OUT);
#elif defined(IAUDIO_X5) #elif defined(IAUDIO_X5)
and_l(~0x00000008, &GPIO_OUT); and_l(~0x00000008, &GPIO_OUT);
#elif (CONFIG_CPU == PP5002) || (CONFIG_CPU == PP5002) #elif (CONFIG_CPU == PP5002) || (CONFIG_CPU == PP5020)
#ifndef BOOTLOADER #ifndef BOOTLOADER
/* We don't turn off the ipod, we put it in a deep sleep */ /* We don't turn off the ipod, we put it in a deep sleep */
pcf50605_standby_mode(); pcf50605_standby_mode();

View file

@ -0,0 +1,95 @@
/*
* This config file is for the Apple iPod Color/Photo
*/
#define APPLE_IPOD4G 1
/* For Rolo and boot loader */
#define MODEL_NUMBER 8
/* 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 160
#define LCD_HEIGHT 128
#define LCD_DEPTH 2 /* 4 colours - 2bpp */
#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_IPOD4G /* 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

View file

@ -153,6 +153,8 @@
#include "config-ipodvideo.h" #include "config-ipodvideo.h"
#elif defined(IPOD_3G) #elif defined(IPOD_3G)
#include "config-ipod3g.h" #include "config-ipod3g.h"
#elif defined(IPOD_4G)
#include "config-ipod4g.h"
#elif defined(IRIVER_IFP7XX) #elif defined(IRIVER_IFP7XX)
#include "config-ifp7xx.h" #include "config-ifp7xx.h"
#else #else

View file

@ -172,7 +172,7 @@ void usb_enable(bool on)
if (on) if (on)
{ {
/* The following code is copied from ipodlinux */ /* The following code is copied from ipodlinux */
#if defined (APPLE_IPODCOLOR) || defined(APPLE_IPOD3G) #if defined (APPLE_IPODCOLOR) || defined(APPLE_IPOD3G) || defined(APPLE_IPOD4G)
unsigned char* storage_ptr = (unsigned char *)0x40017F00; unsigned char* storage_ptr = (unsigned char *)0x40017F00;
#elif defined(APPLE_IPODNANO) || defined(APPLE_IPODVIDEO) #elif defined(APPLE_IPODNANO) || defined(APPLE_IPODVIDEO)
unsigned char* storage_ptr = (unsigned char *)0x4001FF00; unsigned char* storage_ptr = (unsigned char *)0x4001FF00;