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:
parent
75a60fbf69
commit
2924a48ca5
8 changed files with 151 additions and 20 deletions
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
95
firmware/export/config-ipod4g.h
Normal file
95
firmware/export/config-ipod4g.h
Normal 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
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue