diff options
| author | Jean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com> | 2005-02-22 09:55:40 +0000 |
|---|---|---|
| committer | Jean-Philippe Bernardy <jeanphilippe.bernardy@gmail.com> | 2005-02-22 09:55:40 +0000 |
| commit | 376057d2b67bae0a7b24ae1715d3cbb0b540b7a9 (patch) | |
| tree | f8740872907575e84dd52b62a25d0385186e1bbd /firmware/system.c | |
| parent | e638eadaffe61143f0ded093936cbbafb1f569ce (diff) | |
| download | rockbox-376057d2b67bae0a7b24ae1715d3cbb0b540b7a9.zip rockbox-376057d2b67bae0a7b24ae1715d3cbb0b540b7a9.tar.gz rockbox-376057d2b67bae0a7b24ae1715d3cbb0b540b7a9.tar.bz2 rockbox-376057d2b67bae0a7b24ae1715d3cbb0b540b7a9.tar.xz | |
Gmini SMSC chip improvements
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6030 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/system.c')
| -rw-r--r-- | firmware/system.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/firmware/system.c b/firmware/system.c index 9d3e2a0..05f5f49 100644 --- a/firmware/system.c +++ b/firmware/system.c @@ -34,13 +34,13 @@ void ddma_wait_idle(void) } while ((DDMACOM & 3) != 0); } -void ddma_transfer(int dir, int mem, long intAddr, long extAddr, int num) +void ddma_transfer(int dir, int mem, void* intAddr, long extAddr, int num) __attribute__ ((section (".icode"))); -void ddma_transfer(int dir, int mem, long intAddr, long extAddr, int num) { +void ddma_transfer(int dir, int mem, void* intAddr, long extAddr, int num) { int irq = set_irq_level(1); ddma_wait_idle(); long externalAddress = (long) extAddr; - long internalAddress = (long) intAddr; + long internalAddress = ((long) intAddr) & 0xFFFF; /* HW wants those two in word units. */ num /= 2; externalAddress /= 2; @@ -130,10 +130,9 @@ void smsc_delay() { } static void extra_init(void) { - /* Power on - P1 |= 0x01; - P1CON |= 0x01; - */ + /* Power on stuff */ + P1 |= 0x07; + P1CON |= 0x1f; /* SMSC chip config (?) */ P6CON |= 0x08; @@ -147,7 +146,7 @@ static void extra_init(void) { } /* P5 conf - * line 2 & 4 are digital, other analog. : P5CON = 0xec; + * lines 0, 1 & 4 are digital, other analog. : P5CON = 0xec; */ /* P7 conf |