From 5b3f333dd79394d8814a838df367b45523dc207d Mon Sep 17 00:00:00 2001 From: Dave Chapman Date: Sat, 25 Jul 2009 00:49:13 +0000 Subject: Correct the memory sizes (IRAM and DRAM) for the Nano2G. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22025 a1c6a512-1295-4272-9138-f99709370657 --- .../target/arm/s5l8700/ipodnano2g/button-nano2g.c | 44 +++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) (limited to 'firmware/target/arm/s5l8700/ipodnano2g/button-nano2g.c') diff --git a/firmware/target/arm/s5l8700/ipodnano2g/button-nano2g.c b/firmware/target/arm/s5l8700/ipodnano2g/button-nano2g.c index 8049028a59..739b48b511 100644 --- a/firmware/target/arm/s5l8700/ipodnano2g/button-nano2g.c +++ b/firmware/target/arm/s5l8700/ipodnano2g/button-nano2g.c @@ -25,16 +25,58 @@ #include "s5l8700.h" #include "button-target.h" +#define CLICKWHEEL00 (*(volatile unsigned long*)(0x3c200000)) +#define CLICKWHEEL10 (*(volatile unsigned long*)(0x3c200010)) +#define CLICKWHEELINT (*(volatile unsigned long*)(0x3c200014)) +#define CLICKWHEEL_DATA (*(volatile unsigned long*)(0x3c200018)) + +static int buttons = 0; + +void INT_SPI(void) +{ + int clickwheel_events; + int btn =0; + int status; + + clickwheel_events = CLICKWHEELINT; + + if (clickwheel_events & 4) CLICKWHEELINT = 4; + if (clickwheel_events & 2) CLICKWHEELINT = 2; + if (clickwheel_events & 1) CLICKWHEELINT = 1; + + status = CLICKWHEEL_DATA; + if ((status & 0x800000ff) == 0x8000001a) + { + if (status & 0x00000100) + btn |= BUTTON_SELECT; + if (status & 0x00000200) + btn |= BUTTON_RIGHT; + if (status & 0x00000400) + btn |= BUTTON_LEFT; + if (status & 0x00000800) + btn |= BUTTON_PLAY; + if (status & 0x00001000) + btn |= BUTTON_MENU; + } + + buttons = btn; +} + void button_init_device(void) { + CLICKWHEEL00 = 0x280000; + CLICKWHEEL10 = 3; + INTMOD = 0; + INTMSK |= (1<<26); + PCON10 &= ~0xF00; } int button_read_device(void) { + return buttons; } bool button_hold(void) { return ((PDAT14 & (1 << 6)) == 0); } - -- cgit v1.2.3