1
0
Fork 0
forked from len0rd/rockbox

Patch FS#4841 from Ralf Herz, debug more io ports on the PP5020 based ipods

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9088 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Brandon Low 2006-03-18 09:13:55 +00:00
parent b09573120a
commit d00d58896b
2 changed files with 130 additions and 1 deletions

View file

@ -1022,6 +1022,8 @@ bool dbg_ports(void)
#elif CONFIG_CPU == PP5020
unsigned int gpio_a, gpio_b, gpio_c, gpio_d;
unsigned int gpio_e, gpio_f, gpio_g, gpio_h;
unsigned int gpio_i, gpio_j, gpio_k, gpio_l;
char buf[128];
int button;
@ -1049,7 +1051,37 @@ bool dbg_ports(void)
lcd_puts(0, line++, buf);
snprintf(buf, sizeof(buf), "GPIO_D: %02x", gpio_d);
lcd_puts(0, line++, buf);
line++;
gpio_e = GPIOE_INPUT_VAL;
gpio_f = GPIOF_INPUT_VAL;
gpio_g = GPIOG_INPUT_VAL;
gpio_h = GPIOH_INPUT_VAL;
snprintf(buf, sizeof(buf), "GPIO_E: %02x", gpio_e);
lcd_puts(0, line++, buf);
snprintf(buf, sizeof(buf), "GPIO_F: %02x", gpio_f);
lcd_puts(0, line++, buf);
snprintf(buf, sizeof(buf), "GPIO_G: %02x", gpio_g);
lcd_puts(0, line++, buf);
snprintf(buf, sizeof(buf), "GPIO_H: %02x", gpio_h);
lcd_puts(0, line++, buf);
line++;
gpio_i = GPIOI_INPUT_VAL;
gpio_j = GPIOJ_INPUT_VAL;
gpio_k = GPIOK_INPUT_VAL;
gpio_l = GPIOL_INPUT_VAL;
snprintf(buf, sizeof(buf), "GPIO_I: %02x", gpio_i);
lcd_puts(0, line++, buf);
snprintf(buf, sizeof(buf), "GPIO_J: %02x", gpio_j);
lcd_puts(0, line++, buf);
snprintf(buf, sizeof(buf), "GPIO_K: %02x", gpio_k);
lcd_puts(0, line++, buf);
snprintf(buf, sizeof(buf), "GPIO_L: %02x", gpio_l);
lcd_puts(0, line++, buf);
lcd_update();
button = button_get_w_tmo(HZ/10);
@ -1309,9 +1341,40 @@ bool view_battery(void)
lcd_puts(0, 6, buf);
lcd_puts(0, 7, power_message);
#else /* !HAVE_CHARGE_CTRL */
#if defined IPOD_ARCH
#if defined APPLE_IPODNANO || defined APPLE_IPODVIDEO
int usb_pwr = (GPIOL_INPUT_VAL & 0x10)?true:false;
int ext_pwr = (GPIOL_INPUT_VAL & 0x08)?false:true;
int dock = (GPIOA_INPUT_VAL & 0x10)?true:false;
int charging = (GPIOB_INPUT_VAL & 0x01)?false:true;
int headphone= (GPIOA_INPUT_VAL & 0x80)?true:false;
snprintf(buf, 30, "USB pwr: %s",
usb_pwr ? "present" : "absent");
lcd_puts(0, 3, buf);
snprintf(buf, 30, "EXT pwr: %s",
ext_pwr ? "present" : "absent");
lcd_puts(0, 4, buf);
snprintf(buf, 30, "Battery: %s",
charging ? "charging" : (usb_pwr||ext_pwr) ? "charged" : "discharging");
lcd_puts(0, 5, buf);
snprintf(buf, 30, "Dock mode: %s",
dock ? "enabled" : "disabled");
lcd_puts(0, 6, buf);
snprintf(buf, 30, "Headphone: %s",
headphone ? "connected" : "disconnected");
lcd_puts(0, 7, buf);
#else
/* other ipod devices go here */
snprintf(buf, 30, "Charger: %s",
charger_inserted() ? "present" : "absent");
lcd_puts(0, 3, buf);
#endif
#elif
snprintf(buf, 30, "Charger: %s",
charger_inserted() ? "present" : "absent");
lcd_puts(0, 3, buf);
#endif
#endif /* !HAVE_CHARGE_CTRL */
#endif /* HAVE_CHARGING */
break;

View file

@ -56,6 +56,72 @@
#define GPIOC_INT_CLR (*(volatile unsigned long *)(0x6000d078))
#define GPIOD_INT_CLR (*(volatile unsigned long *)(0x6000d07c))
#define GPIOE_ENABLE (*(volatile unsigned long *)(0x6000d080))
#define GPIOF_ENABLE (*(volatile unsigned long *)(0x6000d084))
#define GPIOG_ENABLE (*(volatile unsigned long *)(0x6000d088))
#define GPIOH_ENABLE (*(volatile unsigned long *)(0x6000d08c))
#define GPIOE_OUTPUT_EN (*(volatile unsigned long *)(0x6000d090))
#define GPIOF_OUTPUT_EN (*(volatile unsigned long *)(0x6000d094))
#define GPIOG_OUTPUT_EN (*(volatile unsigned long *)(0x6000d098))
#define GPIOH_OUTPUT_EN (*(volatile unsigned long *)(0x6000d09c))
#define GPIOE_OUTPUT_VAL (*(volatile unsigned long *)(0x6000d0a0))
#define GPIOF_OUTPUT_VAL (*(volatile unsigned long *)(0x6000d0a4))
#define GPIOG_OUTPUT_VAL (*(volatile unsigned long *)(0x6000d0a8))
#define GPIOH_OUTPUT_VAL (*(volatile unsigned long *)(0x6000d0ac))
#define GPIOE_INPUT_VAL (*(volatile unsigned long *)(0x6000d0b0))
#define GPIOF_INPUT_VAL (*(volatile unsigned long *)(0x6000d0b4))
#define GPIOG_INPUT_VAL (*(volatile unsigned long *)(0x6000d0b8))
#define GPIOH_INPUT_VAL (*(volatile unsigned long *)(0x6000d0bc))
#define GPIOE_INT_STAT (*(volatile unsigned long *)(0x6000d0c0))
#define GPIOF_INT_STAT (*(volatile unsigned long *)(0x6000d0c4))
#define GPIOG_INT_STAT (*(volatile unsigned long *)(0x6000d0c8))
#define GPIOH_INT_STAT (*(volatile unsigned long *)(0x6000d0cc))
#define GPIOE_INT_EN (*(volatile unsigned long *)(0x6000d0d0))
#define GPIOF_INT_EN (*(volatile unsigned long *)(0x6000d0d4))
#define GPIOG_INT_EN (*(volatile unsigned long *)(0x6000d0d8))
#define GPIOH_INT_EN (*(volatile unsigned long *)(0x6000d0dc))
#define GPIOE_INT_LEV (*(volatile unsigned long *)(0x6000d0e0))
#define GPIOF_INT_LEV (*(volatile unsigned long *)(0x6000d0e4))
#define GPIOG_INT_LEV (*(volatile unsigned long *)(0x6000d0e8))
#define GPIOH_INT_LEV (*(volatile unsigned long *)(0x6000d0ec))
#define GPIOE_INT_CLR (*(volatile unsigned long *)(0x6000d0f0))
#define GPIOF_INT_CLR (*(volatile unsigned long *)(0x6000d0f4))
#define GPIOG_INT_CLR (*(volatile unsigned long *)(0x6000d0f8))
#define GPIOH_INT_CLR (*(volatile unsigned long *)(0x6000d0fc))
#define GPIOI_ENABLE (*(volatile unsigned long *)(0x6000d100))
#define GPIOJ_ENABLE (*(volatile unsigned long *)(0x6000d104))
#define GPIOK_ENABLE (*(volatile unsigned long *)(0x6000d108))
#define GPIOL_ENABLE (*(volatile unsigned long *)(0x6000d10c))
#define GPIOI_OUTPUT_EN (*(volatile unsigned long *)(0x6000d110))
#define GPIOJ_OUTPUT_EN (*(volatile unsigned long *)(0x6000d114))
#define GPIOK_OUTPUT_EN (*(volatile unsigned long *)(0x6000d118))
#define GPIOL_OUTPUT_EN (*(volatile unsigned long *)(0x6000d11c))
#define GPIOI_OUTPUT_VAL (*(volatile unsigned long *)(0x6000d120))
#define GPIOJ_OUTPUT_VAL (*(volatile unsigned long *)(0x6000d124))
#define GPIOK_OUTPUT_VAL (*(volatile unsigned long *)(0x6000d128))
#define GPIOL_OUTPUT_VAL (*(volatile unsigned long *)(0x6000d12c))
#define GPIOI_INPUT_VAL (*(volatile unsigned long *)(0x6000d130))
#define GPIOJ_INPUT_VAL (*(volatile unsigned long *)(0x6000d134))
#define GPIOK_INPUT_VAL (*(volatile unsigned long *)(0x6000d138))
#define GPIOL_INPUT_VAL (*(volatile unsigned long *)(0x6000d13c))
#define GPIOI_INT_STAT (*(volatile unsigned long *)(0x6000d140))
#define GPIOJ_INT_STAT (*(volatile unsigned long *)(0x6000d144))
#define GPIOK_INT_STAT (*(volatile unsigned long *)(0x6000d148))
#define GPIOL_INT_STAT (*(volatile unsigned long *)(0x6000d14c))
#define GPIOI_INT_EN (*(volatile unsigned long *)(0x6000d150))
#define GPIOJ_INT_EN (*(volatile unsigned long *)(0x6000d154))
#define GPIOK_INT_EN (*(volatile unsigned long *)(0x6000d158))
#define GPIOL_INT_EN (*(volatile unsigned long *)(0x6000d15c))
#define GPIOI_INT_LEV (*(volatile unsigned long *)(0x6000d160))
#define GPIOJ_INT_LEV (*(volatile unsigned long *)(0x6000d164))
#define GPIOK_INT_LEV (*(volatile unsigned long *)(0x6000d168))
#define GPIOL_INT_LEV (*(volatile unsigned long *)(0x6000d16c))
#define GPIOI_INT_CLR (*(volatile unsigned long *)(0x6000d170))
#define GPIOJ_INT_CLR (*(volatile unsigned long *)(0x6000d174))
#define GPIOK_INT_CLR (*(volatile unsigned long *)(0x6000d178))
#define GPIOL_INT_CLR (*(volatile unsigned long *)(0x6000d17c))
#define DEV_RS (*(volatile unsigned long *)(0x60006004))
#define DEV_EN (*(volatile unsigned long *)(0x6000600c))