Commit graph

436 commits

Author SHA1 Message Date
Rafaël Carré
f74a6ed38a Sansa Clipv2: use similar button driver to Clipv1
Fixes some buttons not being read (hold is still buggy)

FlySpray: FS#11111
Author: Pascal Below

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25209 a1c6a512-1295-4272-9138-f99709370657
2010-03-15 23:01:45 +00:00
Rafaël Carré
ba68f2dedd sd-as3525v2: add card hotswap to sd_thread
Clip+: add (disabled) configuration for µSD slot

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25194 a1c6a512-1295-4272-9138-f99709370657
2010-03-15 02:36:16 +00:00
Rafaël Carré
72e0bf3381 sd-as3525v2: prepare for multidrive builds
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25193 a1c6a512-1295-4272-9138-f99709370657
2010-03-15 01:57:15 +00:00
Rafaël Carré
9dba6593cd as3525: do not assume we can record from microphone
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25191 a1c6a512-1295-4272-9138-f99709370657
2010-03-15 01:00:00 +00:00
Rafaël Carré
6159278e0d Clip+: si4702 FM
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25190 a1c6a512-1295-4272-9138-f99709370657
2010-03-15 00:36:13 +00:00
Rafaël Carré
ade669f0e7 sd-as3525v2: reduce the delay before reading response
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25189 a1c6a512-1295-4272-9138-f99709370657
2010-03-15 00:36:08 +00:00
Rafaël Carré
c3c7306098 sd-as3525: do not reverse 2 times long responses, read them directly in the needed order
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25185 a1c6a512-1295-4272-9138-f99709370657
2010-03-14 21:46:25 +00:00
Rafaël Carré
db7aedf93a sd-as3525v2: do not reverse 2 times long responses, read them directly in the needed order
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25184 a1c6a512-1295-4272-9138-f99709370657
2010-03-14 21:38:36 +00:00
Rafaël Carré
291e2b1ae6 sd-as3525v2: delay a bit before reading the command response
Especially when using caches we might read the response too fast and get
the response for the previous command instead.

Now Clip+ boots fine with both instruction & data caches enabled, the
delay might need to be lowered though: boot time is a bit longer.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25183 a1c6a512-1295-4272-9138-f99709370657
2010-03-14 21:38:30 +00:00
Jack Halpin
405f6e6dbc SansaAMS: debug-as3525.c Allow View HW info page to display correct info for both V1 & V2 versions of as3525.
calc_freq(CLK_PLLA) for as3525v2 simply returns 240MHz instead of calculating until we understand how it is calculated.
Now displays 922T or 926ejs depending on version.
Remove SD and uSD info from as3525v2 as it is not useful due to different SD controller.
Increased the lines used for each page of display on clip screen size.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25120 a1c6a512-1295-4272-9138-f99709370657
2010-03-11 19:01:49 +00:00
Thomas Martitz
02660557ad Fix a bunch of boot.lds files so that they build with newer ld. The stack/bss sections need NOLOAD. otherwise the linker would try to include those into the binary. I don't know why this ever worked with our current ld version.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25078 a1c6a512-1295-4272-9138-f99709370657
2010-03-08 23:16:57 +00:00
Rafaël Carré
8653c0a567 Sansa AMS: do not pretend we can power off the tuner
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25029 a1c6a512-1295-4272-9138-f99709370657
2010-03-05 01:43:47 +00:00
Thomas Martitz
2ac962aceb Fix as3525 lowmem targets. They put the init code into the plugin buffer, but some init functions are grabbing it.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25023 a1c6a512-1295-4272-9138-f99709370657
2010-03-04 12:32:12 +00:00
Thomas Martitz
f8edc32589 FS#10756 - Free unused init code
Introduce a new .init section for initialisation code, so that it can be copied to an area which is later overwritten before calling. The stack/bss can then overwrite that code, effectively freeing the code size that the initialisation routines need. Gives a few kB ram usage back.
Only implemented for PP and as3525 so far. More targets could be added, as well as more functions.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25013 a1c6a512-1295-4272-9138-f99709370657
2010-03-03 23:20:32 +00:00
Jack Halpin
a872587a8d sd-as3525v2: Load CID info to cardinfo.cid[] correctly.
SD_ALL_SEND_CID was using cardinfo.cid to store the response instead of the temp array used for long responses.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24944 a1c6a512-1295-4272-9138-f99709370657
2010-02-27 17:07:54 +00:00
Thomas Martitz
0094b0500c Add Sansa Fuzev2 to the target tree. Bootloader builds, but is completely untested.
Compilation shows a warning for the first argument of the lcd_bitmap() call in show_logo().

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24911 a1c6a512-1295-4272-9138-f99709370657
2010-02-25 13:26:46 +00:00
Jack Halpin
d95211a23d sd-as3525v2: Controller and card init much more reliably now.
Remove MCI_HCON read from init_controller() as it now appears unneccesary.
Make sd-init_card() use similar init sequence to the one in sd-as3525.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24903 a1c6a512-1295-4272-9138-f99709370657
2010-02-25 06:46:16 +00:00
Michael Chicoine
b6033c9aa0 Revert r24898 and fix yellow properly so that register is still read
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24899 a1c6a512-1295-4272-9138-f99709370657
2010-02-25 00:02:58 +00:00
Michael Chicoine
abacbbda6c Comment out unused variable (fix yellow)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24898 a1c6a512-1295-4272-9138-f99709370657
2010-02-24 23:22:19 +00:00
Jack Halpin
241abf4bc5 sd-as3525v2.c: Correct some #defines, add comments, attempt to lower sd frequency to 400 khz during init.
I've left in some commented out code for now as this is still a bit experimental.....

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24891 a1c6a512-1295-4272-9138-f99709370657
2010-02-24 20:24:48 +00:00
Jack Halpin
1c09c037f9 sd-as3525v2: Add some register bit descriptions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24872 a1c6a512-1295-4272-9138-f99709370657
2010-02-23 21:31:54 +00:00
Rafaël Carré
8ca62f32aa sd-as3525v2: correct CGU_MEMSTICK setting, shift divider
Add a note about the unknown clock register

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24869 a1c6a512-1295-4272-9138-f99709370657
2010-02-23 07:08:33 +00:00
Rafaël Carré
e32e180244 as3525v2: share more of system_init() between the 2 SoCs
Differences remaining:
    - list of peripherals reset
    - CGU_PROC isn't modified on as3525v2
    - CGU_PLLA bits aren't known, but we use a known setting for 240MHz

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24868 a1c6a512-1295-4272-9138-f99709370657
2010-02-23 06:59:58 +00:00
Rafaël Carré
0af879c21a sd-as3525v2: unaligned transfers are handled properly (with memcpy)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24866 a1c6a512-1295-4272-9138-f99709370657
2010-02-23 01:00:21 +00:00
Rafaël Carré
adf5bbdc46 Clip+: greylib
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24860 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 10:35:51 +00:00
Rafaël Carré
355f38d30a sd-as3525v2: use an uncached buffer, disable write for the moment
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24858 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 10:02:20 +00:00
Rafaël Carré
a92a059abe Clip+: fix buttons driver
Do not use a static variable for buttons, else they're never reset
Remove unneeded code
Move GPIO_DIR setting to init function

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24855 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 10:02:05 +00:00
Rafaël Carré
ed55520985 as3525v2: do not modify CGU_PERI in rockbox.sansa
this prevented booting, we need to figure out CGU_PROC bits

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24854 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 08:29:02 +00:00
Rafaël Carré
21ac9d23d0 sd-as3525v2: working bootloader
check all error bits
only signal wakeup on data transfers, not on commands
trim down send_cmd

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24851 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 07:31:45 +00:00
Rafaël Carré
b347245d7c as3525v2: init sdram
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24849 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 07:31:37 +00:00
Rafaël Carré
c2c01ac34c Clip+ boots with iram mapped at 0x0, only the clipv2 is different
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24842 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 05:41:05 +00:00
Rafaël Carré
31eda59720 as3525v2: build normal firmware properly (Clipv2/+)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24840 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 02:42:58 +00:00
Rafaël Carré
a012b185ac sd-as3525v2: working transfers, still awfully slow
not touching MCI_CTYPE (leaving bus width to 1) gives data transfers
ignore the hardware locked up while error bit for now
remove printf() helper & debug code

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24838 a1c6a512-1295-4272-9138-f99709370657
2010-02-22 02:42:46 +00:00
Rafaël Carré
1ae6307a5a sd-as3525v2: panic in case of error in the isr
Disable errors on response timeout since it can happen on SD_SEND_IF_COND
Disable errors on start bit error : it's ignored by the linux driver

No panic on my side with those 2 bits unchecked, but no transfer
completion either.
Note: the Linux driver doesn't implement DMA

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24837 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:49:57 +00:00
Rafaël Carré
c6af5c962d sd-as3525v2: describe interrupt mask bits
Reset DMA before transfers and check data transfer over bit in isr
Still no error or data transfer over conditions

Read the correct status register in isr : there is a masked interrupt
status register and a general status register

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24836 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:49:53 +00:00
Rafaël Carré
e9cd0f1c7a sd-as3525v2: no limits on the amount of sectors to transfer
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24832 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:01:37 +00:00
Rafaël Carré
f857fe1450 sd-as3525v2: MCI_HCON bits
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24831 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:01:33 +00:00
Rafaël Carré
95f063cc6f sd-as3525v2: MCI_FIFOTH bits
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24830 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:01:29 +00:00
Rafaël Carré
ad7d84d315 sd-as3525v2: command register bits
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24829 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:01:23 +00:00
Rafaël Carré
d19705f7fc sd-as3525v2: name interrupt bits (no description yet)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24828 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:01:18 +00:00
Rafaël Carré
ceae8748b8 sd-as3525v2: describe CTYPE bit
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24827 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:01:13 +00:00
Rafaël Carré
4be56226c1 sd-as3525v2: detail MCI_CTRL bits
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24826 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:01:09 +00:00
Rafaël Carré
48ed5ad66e as3525v2: full list of registers + description
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24825 a1c6a512-1295-4272-9138-f99709370657
2010-02-21 22:01:05 +00:00
Rafaël Carré
8b4ee2cfdd as3525: make clear the CCU bit we can't reset is the IDE interface
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24738 a1c6a512-1295-4272-9138-f99709370657
2010-02-17 23:27:35 +00:00
Rafaël Carré
9f228d7662 as3525v2: use CGU_BASE instead of hardcoded address for unknown register
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24737 a1c6a512-1295-4272-9138-f99709370657
2010-02-17 23:27:31 +00:00
Rafaël Carré
04fef58210 as3525v2: make clear the SD code is debug only and display a message
comment out printing of registers in the isr

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24736 a1c6a512-1295-4272-9138-f99709370657
2010-02-17 23:09:56 +00:00
Rafaël Carré
020322665b Clip+: LCD display (with FlynDice help)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24729 a1c6a512-1295-4272-9138-f99709370657
2010-02-17 18:43:13 +00:00
Jack Halpin
3a60a6aa23 Sansa Clip+: Implement button driver.
Initial button driver for clip+.  I've followed the steps the OF uses to read the buttons.
There is no hold button on the clip+ so for now calling button_hold() siply returns false.
The OF actually sets an additional flag for the 2nd read from D6 and not BUTTON_POWER as I have done here. 

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24669 a1c6a512-1295-4272-9138-f99709370657
2010-02-15 19:29:47 +00:00
Rafaël Carré
3f43765925 Sansa Clip+: use 8 bits transfers, like DMA transfers
The code assumed LCD pixels were packed on 16 bits values but for the
Clip we use 8 bits values.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24563 a1c6a512-1295-4272-9138-f99709370657
2010-02-08 08:20:42 +00:00
Rafaël Carré
ec39555290 Add DMA line for SSP as used in Clip+
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24562 a1c6a512-1295-4272-9138-f99709370657
2010-02-08 08:13:52 +00:00