Commit graph

203 commits

Author SHA1 Message Date
Thomas Martitz
4633446517 Sansa AMS: Centralise mapping of RAM and IRAM in as3525.h via #defines. This will hopefully make ongoing mmu work easier as less places need to be changed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21000 a1c6a512-1295-4272-9138-f99709370657
2009-05-20 21:09:53 +00:00
Rafaël Carré
e71c67f340 Fix my mistake in r20987/FS#10219 : live update of Sansa AMS clock freqs (fix by Jack Halpin)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20995 a1c6a512-1295-4272-9138-f99709370657
2009-05-20 11:22:31 +00:00
Rafaël Carré
00392020d8 FS#10219 (AMSSansa Debug Clocks) by Jack Halpin
With a few modifications by me:
Return 0MHz for PLL disabled (PLLB)
Mention if i2si and i2so are on or off
Simplify scrolling (for small & large displays)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20987 a1c6a512-1295-4272-9138-f99709370657
2009-05-19 14:43:37 +00:00
Rafaël Carré
1dfeba5702 Sansa Clip : ignore previous setting of CGU_DBOP (do not use ORR)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20986 a1c6a512-1295-4272-9138-f99709370657
2009-05-19 14:43:26 +00:00
Rafaël Carré
49c25816f0 Sansa AMS i2c : fix 2 problems identified by Jack Halpin & Bertrik Sikken
i2c clock frequency uses pclk as reference, not plla
i2c clock divider is only 10 bits, not 16

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20929 a1c6a512-1295-4272-9138-f99709370657
2009-05-14 09:36:56 +00:00
Rafaël Carré
8033342d0f Sansa AMS : remove mci_set_clock_divider()
Inline the 2 uses, and use a preprocessor sanity check for identification frequency

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20924 a1c6a512-1295-4272-9138-f99709370657
2009-05-13 08:27:33 +00:00
Rafaël Carré
adb978a44d Sansa AMS: Various fixes/enhancements for clock frequencies
Fix CGU_DBOP setting

Set PCLK to the exact frequency (62MHz, not the maximal frequency)

Use a better comment for CLK_DIV macro

Use preprocessor safety checks for clock divider sizes to avoid future mistakes (not for SD_IDENT frequency since that check is handled by mci_set_clock_divider)

Use maximal IDE frequency of 66MHz (like OF), not 90MHz like written in AS3525 datasheet. The IDE chip is somehow linked to internal storage, and a too high frequency could affect the storage driver.

Use the same DBOP frequency of 32MHz for all models (like OF, verified clip, fuze, e200v2 and m200v4), compromise between performance and battery life could be added in the future for each target
Performance increase on Sansa Fuze with DBOP freq. set to 64MHz: +12% fps for lcd_update, +1% fps for yuv

Thanks to daytona955 on the forums for his help

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20923 a1c6a512-1295-4272-9138-f99709370657
2009-05-13 08:27:20 +00:00
Rafaël Carré
c58aaee55f Sansa Clip : remove unused variable xoffset from lcd driver
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20920 a1c6a512-1295-4272-9138-f99709370657
2009-05-12 13:24:13 +00:00
Rafaël Carré
b1d03ccee7 FS#10118 & FS#10165 : lcd_blit_yuv() for Sansa Fuze & Sansa e200v2
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20919 a1c6a512-1295-4272-9138-f99709370657
2009-05-12 13:22:39 +00:00
Bertrik Sikken
b5886beb81 Allow a clock divider larger than 255 for the internal i2c bus to the as3525 ascodec.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20861 a1c6a512-1295-4272-9138-f99709370657
2009-05-06 17:33:56 +00:00
Thomas Martitz
3c5e67516b FS#10151 - e200v2: scrollwheel acceleration by Dustin Skoracki. Improves the scroll wheel acceleration on the e200v2 mainly by not decrementing the counter which which causes the acceleration if a wheel read was missed due to lcd operation.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20822 a1c6a512-1295-4272-9138-f99709370657
2009-04-29 20:50:12 +00:00
Bertrik Sikken
0d6a28edc3 Enable FM radio on the sansa c200v2 (untested).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20809 a1c6a512-1295-4272-9138-f99709370657
2009-04-26 21:28:34 +00:00
Thomas Martitz
8e8c36019c FS#10126 - lcd_e200v2 cleanup by Michael Chicoine
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20801 a1c6a512-1295-4272-9138-f99709370657
2009-04-26 11:14:19 +00:00
Thomas Martitz
ace509a2ff FS#10158 - e200v2 button delay revisited by Michael Chicoine to fix some weirdnesses with button reading.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20800 a1c6a512-1295-4272-9138-f99709370657
2009-04-26 11:05:53 +00:00
Thomas Martitz
6abae1f124 Remove the calls to backlight_lcd_sleep_countdown from target specific code and move it into backlight.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20793 a1c6a512-1295-4272-9138-f99709370657
2009-04-26 01:23:39 +00:00
Bertrik Sikken
dccdce6c3c Remove unnecessary #include "adc.h"
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20791 a1c6a512-1295-4272-9138-f99709370657
2009-04-25 22:24:59 +00:00
Thomas Martitz
e29358c154 Fix FS#10128 - The View IO Ports debug menu showed weird dbop values (sometimes FFFF prepended), due to sign-extension. Switch to unsigned short to fix it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20757 a1c6a512-1295-4272-9138-f99709370657
2009-04-20 20:11:01 +00:00
Thomas Martitz
aef5731d71 FS#10148 by Dustin Skoracki, removes a redundant check for != BUTTON_NONE in the scrollwheel drivers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20744 a1c6a512-1295-4272-9138-f99709370657
2009-04-19 17:05:36 +00:00
Thomas Martitz
42f5973177 Few Fuze/e200v2 button fixes. Don't read the scrollwheel when the hold button is active and rename a variable to describe better what it is for.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20701 a1c6a512-1295-4272-9138-f99709370657
2009-04-13 17:10:52 +00:00
Thomas Martitz
c48f4c6be4 FS#10127 - Sansa e200v2: wrapping in menus by Dustin Skoracki and me. Implements better list wrap handling mostly by taking Fuze's scrollwheel driver, but with tweaks w.r.t. to BUTTON_REPEAT to make it work on the e200v2.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20700 a1c6a512-1295-4272-9138-f99709370657
2009-04-13 14:08:43 +00:00
Thomas Martitz
e5e41c3a82 FS#10120 - fuze/e200v2: poll the wheel more often (every 5ms). This makes the scrollwheel behavior nearly perfect (decent acceleration, no direction changes if you turn to fast).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20699 a1c6a512-1295-4272-9138-f99709370657
2009-04-13 10:28:06 +00:00
Bertrik Sikken
65aa187aef Fix #includes in usb-as3525.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20698 a1c6a512-1295-4272-9138-f99709370657
2009-04-12 19:08:26 +00:00
Thomas Martitz
ec797ed622 FS#10113 - Sansa AMS : do not use unaligned buffers on ATA DMA by Rafaël Carré.
Fixes various storage related problems like stuttering audio, md5sum and test disk failure and Sansa Fuze's backdrop corruption by using aligned buffers. There's a speed penalty but stability has more priority.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20679 a1c6a512-1295-4272-9138-f99709370657
2009-04-10 17:03:56 +00:00
Thomas Martitz
bac611868e FS#10114 - Sansa AMS : use IRAM for codecs on >2MB targets Rafaël Carré
Activates IRAM for AMS Sansas to be used by codecs and core. Fixes Reboot-on-mp3 and gives speed up on codecs using IRAM in general.
I've made a change: the core/codec ratio is 0x20000/0x30000 instead of 0x10000/0x40000, 0x30000 is way more than codecs currently use (0x14000 at max) and the core might need more than 0x10000.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20678 a1c6a512-1295-4272-9138-f99709370657
2009-04-10 17:00:23 +00:00
Michael Giacomelli
30b888cb58 Commit fs#9959 by Jack Halpin. Removes delays from the Sansa e200v2 button driver and cleans up the code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20676 a1c6a512-1295-4272-9138-f99709370657
2009-04-10 15:19:59 +00:00
Michael Giacomelli
b94b12cd20 Commit FS#10043 by Michael Chicoine for the Sansa e200v2. Implements LCD sleeping, cleans up unused GPIOs and implements LCD flipping/invert.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20670 a1c6a512-1295-4272-9138-f99709370657
2009-04-10 01:44:05 +00:00
Bertrik Sikken
070ee525ac Patch by Rafaël Carré - Sansa AMS i2c :
* remove peripheral reset (already made in system_init).
  * Move empty i2c_init() from i2c-as3525.c (and remove that file)


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20645 a1c6a512-1295-4272-9138-f99709370657
2009-04-07 17:20:31 +00:00
Bertrik Sikken
9ab84b073f Patch by Rafaël Carré - Sansa AMS : inform pcm.c when playback stopped, use pcm_play_dma_stopped_callback()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20644 a1c6a512-1295-4272-9138-f99709370657
2009-04-07 17:11:55 +00:00
Bertrik Sikken
6b63f23648 Patch by Rafaël Carré - Sansa AMS: Fix a few mistakes in DMA code
DMAC_INT_TC_CLEAR is a write-only reg
HIGH bits of DMAC_SYNC mean synchronisation logic disabled.
Also, according to the OF and to tests, all the peripherals we use run at the same frequency (PCLK?).



git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20643 a1c6a512-1295-4272-9138-f99709370657
2009-04-07 17:08:26 +00:00
Dominik Wenger
f5c5983c73 commit FS#10092 (cleanup AMS system init) by Rafaël Carré.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20640 a1c6a512-1295-4272-9138-f99709370657
2009-04-07 16:14:01 +00:00
Thomas Martitz
487d78995a A bit of cleanup in config-fuze (don't define features we do not have yet), a bit of reordering. Cleanup in the lcd driver. Reintroduce the delay in the dbop read function, as it helps avoiding heavy hold button weirdness when boosted
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20583 a1c6a512-1295-4272-9138-f99709370657
2009-03-30 19:57:42 +00:00
Thomas Martitz
dc859ebd51 FS#10053 - Sansa AMS >2GB support by Rafaël Carré. Enables bank switching on
the AMS sansas, which solves the ">2GB problem" (the problem that we could not
access data past 1GB on devices having more than 2GB internal storage).


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20577 a1c6a512-1295-4272-9138-f99709370657
2009-03-30 13:26:05 +00:00
Bertrik Sikken
a87aad3284 Add missing powermgmt-e200v2.c file from FS#9968
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20466 a1c6a512-1295-4272-9138-f99709370657
2009-03-22 19:22:12 +00:00
Bertrik Sikken
9ee68cbfd3 FS#9968: Charging on e200v2
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20465 a1c6a512-1295-4272-9138-f99709370657
2009-03-22 19:06:54 +00:00
Thomas Martitz
4ed387d603 Fix reds and yellows (hopefully). Some targets apparently didn't properly #ifdef lcd_enable and lcd_sleep code out, so that it got partly active in the bootloader; rename the ui simulator stub fixes most reds; for the clip: move the hook code into lcd-1bit-vert.c which should fix the bootloader red.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20333 a1c6a512-1295-4272-9138-f99709370657
2009-03-17 03:36:36 +00:00
Thomas Martitz
b7739fbf1c Rework lcd_enabled and lcd_set/call_enable hook
a) lcd_enabled() is now lcd_active(), and is available for HAVE_LCD_SLEEP only targets (e.g. ipod video) too. It was depandent on HAVE_LCD_ENALE only before
b) rename the hook accordingly, and implement the hook for other other targets too (e.g. the clip [the only mono target with lcd_enable/lcd_sleep yet, so the code is still in the lcd driver], ipod, fuze, c200)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20331 a1c6a512-1295-4272-9138-f99709370657
2009-03-17 02:43:47 +00:00
Thomas Martitz
5876418343 SansaAMS: Add a comment to clarifing a bit that the dcache is inactive without mmu; Show the cp15 control register in the "View I/O Pots menu".
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20324 a1c6a512-1295-4272-9138-f99709370657
2009-03-14 17:17:27 +00:00
Thomas Martitz
26306a8e91 Sansa Fuze Buttons: cleanup slightly, prevent button_counter from wrapping, and implement a (imo) decent wheel acceleration.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20317 a1c6a512-1295-4272-9138-f99709370657
2009-03-13 16:18:56 +00:00
Bertrik Sikken
045b6e48cd Move powermgmt-target.h up one directory (from as3525/sansa-clip to as3525) in preparation to enable charging for other ams sansa targets.
AMS sansas.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20314 a1c6a512-1295-4272-9138-f99709370657
2009-03-12 22:49:36 +00:00
Bertrik Sikken
1fb8242d96 Simplify generic_i2c, removing the link between i2c address and i2c interface, adding the concept of an i2c bus index.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20193 a1c6a512-1295-4272-9138-f99709370657
2009-03-03 18:00:17 +00:00
Thomas Martitz
f6f426eda4 e200v2: fix broken lcd driver and cleanup a little bit further.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20063 a1c6a512-1295-4272-9138-f99709370657
2009-02-20 15:10:49 +00:00
Thomas Martitz
7d0b9f7fb7 Fix occasional power button ghost presses and get rid of the delay which was needed to reduce the ghost presses (i.e. don't read power button too during lcd updates)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20058 a1c6a512-1295-4272-9138-f99709370657
2009-02-19 22:54:48 +00:00
Thomas Martitz
1cb3ff0ab0 Sansa Fuze buttons:
1) fix driver from reading invalid home button while lcd updates (use old value then)
2) put in a 1s delay for power button reading after releasing hold
3) revert r20028, I thought it wasn't needed, since I didn't update the bootloader
4) enable hold for the bootloader (even though not really needed, but is consistent with other targets)
5) let button_dbop return DBOP_DIN, and do the reading in button_read_device
6) various cleanups

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20054 a1c6a512-1295-4272-9138-f99709370657
2009-02-19 21:20:42 +00:00
Thomas Martitz
1ad58f9757 Sansa e200v2: Some LCD driver changes (none with functional changes):
1) put window addressing in a seperate function like on the fuze
2) use fb_data instead of unsigned short
3) change clipping a bit

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20051 a1c6a512-1295-4272-9138-f99709370657
2009-02-19 20:40:00 +00:00
Thomas Martitz
28eb803f79 Fix stupid typo...
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20048 a1c6a512-1295-4272-9138-f99709370657
2009-02-19 17:43:19 +00:00
Thomas Martitz
740e5a2ffe Show DBOP in the e200v2's view IO ports menu.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20042 a1c6a512-1295-4272-9138-f99709370657
2009-02-18 17:46:11 +00:00
Thomas Martitz
5e3b4fe3f8 Return old button value if lcd_button_supprt was blocked.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20041 a1c6a512-1295-4272-9138-f99709370657
2009-02-18 17:43:38 +00:00
Thomas Martitz
30255d53da Get rid of disabling irq. Simply blocking does it too, it also caused problems (particulary with scrolling lines).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20040 a1c6a512-1295-4272-9138-f99709370657
2009-02-18 16:38:16 +00:00
Thomas Martitz
5593de5e79 Fix red
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20029 a1c6a512-1295-4272-9138-f99709370657
2009-02-17 03:03:06 +00:00
Thomas Martitz
e7718a711f Setting GPIOA_PIN 1 is apparently not needed (anymore)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20028 a1c6a512-1295-4272-9138-f99709370657
2009-02-17 02:41:30 +00:00