Commit graph

1787 commits

Author SHA1 Message Date
Jack Halpin
d24ebd1613 Sansa AMS: Make write delay work for non-MULTIDRIVE.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24020 a1c6a512-1295-4272-9138-f99709370657
2009-12-16 06:56:44 +00:00
Jack Halpin
7d6ec7bb6f Sansa AMS: Use small write delay for all non-HS cards including the internal SD to prevent data corruption.
Making this delay apply to all non-HS SD cards seems to fix some data corruption issues that came up with the switch to 4-bit widebus.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24019 a1c6a512-1295-4272-9138-f99709370657
2009-12-16 06:32:22 +00:00
Alexander Levin
492c377fbf Fix typo in the comment
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24004 a1c6a512-1295-4272-9138-f99709370657
2009-12-15 12:09:14 +00:00
Jack Halpin
0f19f4713d Sansa AMS: Add MCI_RESPONSE_ERROR macro to make code function more obvious.
MCI_RESPONSE_ERROR covers MCI_CMD_TIMEOUT & MCI_CMD_CRC_FAIL and makes it more clear that these are errors in the response and not the command itself.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24003 a1c6a512-1295-4272-9138-f99709370657
2009-12-15 06:11:29 +00:00
Karl Kurbjun
7bb00be29d M:Robe 500: Initialize the power button.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24002 a1c6a512-1295-4272-9138-f99709370657
2009-12-15 05:47:21 +00:00
Karl Kurbjun
716fc9e7f8 M:Robe 500: Initialize the buzzer and move it out of the LCD code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24001 a1c6a512-1295-4272-9138-f99709370657
2009-12-15 05:35:02 +00:00
Karl Kurbjun
6d52f54d8b M:Robe 500: Fix the bootloader build.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24000 a1c6a512-1295-4272-9138-f99709370657
2009-12-15 01:30:59 +00:00
Karl Kurbjun
5bc85067eb M:Robe 500: Add in coldstart detection.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23999 a1c6a512-1295-4272-9138-f99709370657
2009-12-15 01:23:20 +00:00
Karl Kurbjun
7c1fa7cf61 M:Robe 500: Initialize USB related pins with pin setup function
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23998 a1c6a512-1295-4272-9138-f99709370657
2009-12-15 01:06:16 +00:00
Karl Kurbjun
2ef5858a5b M:Robe 500: Initialize ATA related pins with pin setup function
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23997 a1c6a512-1295-4272-9138-f99709370657
2009-12-15 01:03:16 +00:00
Karl Kurbjun
47af429f2e M:Robe 500: Initialize power related pins with pin setup function
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23996 a1c6a512-1295-4272-9138-f99709370657
2009-12-15 01:02:39 +00:00
Karl Kurbjun
2b57fc434c M:Robe 500: Initialize TSC2100 pins with pin setup function
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23989 a1c6a512-1295-4272-9138-f99709370657
2009-12-14 07:18:55 +00:00
Karl Kurbjun
86dd88c86e M:Robe 500: Initialize UART1 pins with pin setup function
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23988 a1c6a512-1295-4272-9138-f99709370657
2009-12-14 07:00:37 +00:00
Karl Kurbjun
537832d3c6 M:Robe 500: Initialize SPI pins with pin setup function
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23987 a1c6a512-1295-4272-9138-f99709370657
2009-12-14 06:52:35 +00:00
Karl Kurbjun
26fa2d81f6 M:Robe 500: Start adding some composite output stuff based on OF. Initialize LCD pins with pin-setup function.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23986 a1c6a512-1295-4272-9138-f99709370657
2009-12-14 06:32:30 +00:00
Karl Kurbjun
ac3fe260f1 DM320: Add generic pin-setup function.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23985 a1c6a512-1295-4272-9138-f99709370657
2009-12-14 06:29:15 +00:00
Karl Kurbjun
91ada17c36 M:Robe 500 Add some additional pin initialization for the SPI devices.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23984 a1c6a512-1295-4272-9138-f99709370657
2009-12-14 04:47:59 +00:00
Jack Halpin
87770d2439 Sansa AMS: Implement 4 bit widebus mode for SD cards.
Both the internal and uSD cards are now put into 4 bit widebus mode during initialization except for bootloader.
Add MCI_START_BIT_ERR to MCI_ERROR list and change name to MCI_DATA_ERROR for clarity.
Make appropriate changes to SD error codes.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23977 a1c6a512-1295-4272-9138-f99709370657
2009-12-13 20:37:55 +00:00
Karl Kurbjun
e087751b10 M:Robe 500: Fix FIQ's and make the audio DMA a FIQ, simplify the ADC code and make it more reliable. Fix ADC problems on initial boot.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23948 a1c6a512-1295-4272-9138-f99709370657
2009-12-12 18:36:52 +00:00
Jack Halpin
c03871ab80 Sansa AMS: Assume IDE_CLK is used as MCLK for internal SD. We assumed PCLK previously.
This patch changes all references/assumptions of PCLK to IDE_CLK for the internal pl180 controller.
Lower the AS3525_IDE_FREQ to 50 MHz in order to be able to divide by 2 for 25 MHz on the internal SD card.
Adjust the code in debug-as3525.c to account for the change and the frequencies reported should be correct.
Add some #if defined(HAVE_MULTIDRIVE) conditionals to cut out the code dealing with uSD for the clip.
Isolate the write delay needed for low frequency writes to only run for standard speed uSD cards. That is the only case for an MCICLK at 15.5 MHz.

Internal cards run at 25 MHz, HS uSD at 31 MHz, and standard speed uSD cards at 15.5 MHz.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23929 a1c6a512-1295-4272-9138-f99709370657
2009-12-11 04:53:22 +00:00
Jack Halpin
fae4eab4b2 Sansa AMS: Add extra delay to the uSD init sequence to enhance card compatability,
Some cards need this delay now that we're running at ident speed during this part of the init stage.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23919 a1c6a512-1295-4272-9138-f99709370657
2009-12-10 17:42:03 +00:00
Jack Halpin
f37fe25638 Sansa AMS: Run all SD cards within SD Specification frequencies.
Addition of a small write delay avoids data crc failures at lower MCICLK frequencies.
Check the actual speed value from the card's CSD register to determine HS status.  HS cards can run at twice the speed of standard speed SD cards.
Internal cards & standard speed uSD now run at PCLK/4 = 15.5 MHz.  HS uSD cards run at PCLK/2 = 31 MHz.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23901 a1c6a512-1295-4272-9138-f99709370657
2009-12-08 20:26:31 +00:00
Robert Kukla
2d722a17ec make tpj1022 bootloader compile again
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23892 a1c6a512-1295-4272-9138-f99709370657
2009-12-07 16:12:49 +00:00
Jack Halpin
472bab654b Sansa AMS: Move the boost from SD ident to operating frequency to after the cards get switched to HS timings.
It seems that lowering the operating frequency for the SD cards has made some uSD cards have problems with the init process.
By moving the boost from ident to operating frequency to after the switch to HS timing these card now seem to init normally.
We still need to fix the problem where the internal cards and non HS uSD cards are still slightly overclocked at 31 MHz.
As of now we experience data crc failures during writes at the next lower frequency of 15.5 MHz.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23870 a1c6a512-1295-4272-9138-f99709370657
2009-12-06 07:32:40 +00:00
Jack Halpin
43991cdc8f Sansa AMS: The internal SD does not use the IDE AHB interface so remove references to it. It does use the other non AHB interface.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23836 a1c6a512-1295-4272-9138-f99709370657
2009-12-03 20:06:46 +00:00
Jack Halpin
d414b0a027 Sansa AMS: Reduce MCICLK speed on SD cards to 31 MHz.
This is within the SD Spec for v2 High Speed cards but still over the 25 MHz limit for v1 and non-HS v2 cards.
Test_disk write & verify passes on both internal and uSD.
The v1 cards still need to be lowered to 15 MHz but that causes data crc failures at this point.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23835 a1c6a512-1295-4272-9138-f99709370657
2009-12-03 20:06:40 +00:00
Jack Halpin
7f88cc44aa Sansa AMS: Use some new macros to set the MCICLK frequency to help avoid missing the bypass bit when resetting frequencies with MCI_CLOCK register.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23831 a1c6a512-1295-4272-9138-f99709370657
2009-12-03 17:22:09 +00:00
Jack Halpin
40629be046 Sansa AMS: Wait until sd_init_card() to turn on the clocks for the pl180 controller.
Currently the bypass bit is not cleared so it's possible to enter the identification phase at bypass speed instead of ident speed.
The simplest solution to ensure the bypass bit is not set is to set the register with an = operation instead of |=.
This makes setting the MCI_CLOCK register at the end of the controller init unnecessary.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23830 a1c6a512-1295-4272-9138-f99709370657
2009-12-03 17:22:03 +00:00
Jack Halpin
d8f420a48d Sansa AMS: Add read/write and drive info to panic message for SD transfer errors.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23829 a1c6a512-1295-4272-9138-f99709370657
2009-12-03 17:21:56 +00:00
Karl Kurbjun
30c3382a48 M:Robe 500: Improve audio DMA shutdown for Pause/Stop and significantly reduce the size of the DSP code.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23817 a1c6a512-1295-4272-9138-f99709370657
2009-12-02 04:30:08 +00:00
Jack Halpin
c67ce499f3 Sansa AMS: Check if SD controllers are already enabled before attempting to enable in order to read the registers.
If the controllers were already enabled there was a chance we could try to read the MCI_CLOCK registers while the cards were buffering and then disable the controllers prematurely.

I guess funman knows and sees all!!  Thanks funman.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23811 a1c6a512-1295-4272-9138-f99709370657
2009-12-01 21:23:11 +00:00
Jack Halpin
5bd4ec0c87 Sansa AMS: Force sd_enable(true) when using the Debug View HW info page so we can read the registers immediately.
Because we turn off the clocks to the SD controllers between disk accesses we were unable to read the MCI_CLOCK registers until there was a disk access.  Now we can read them immediately.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23810 a1c6a512-1295-4272-9138-f99709370657
2009-12-01 20:12:25 +00:00
Jack Halpin
a22ab34649 Sansa AMS: Reorganize sd_enable() and add/change comments. No real functional changes.
Enabling/disabling of the NAF and IDE clocks is now grouped together as both are related to the internal SD.
Sequence for disabling SD now mirrors the enable sequence.
Comments added to make it easier to follow the configuration change for XPD from gpio to mci-sd and back.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23808 a1c6a512-1295-4272-9138-f99709370657
2009-12-01 18:22:25 +00:00
Laurent Gautier
2f4bce3f2c correction on DEFINE, thanks to Kugel who spotted it ;)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23807 a1c6a512-1295-4272-9138-f99709370657
2009-12-01 18:11:06 +00:00
Laurent Gautier
0260852771 Add support for the ipod FM remote to the 4G, Color, 5G, nano 1G with RDS
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23805 a1c6a512-1295-4272-9138-f99709370657
2009-12-01 17:54:40 +00:00
Thomas Martitz
ee7cf6c63c Remove unused card_detect(), and make card_detect_target() static inline in each sd driver.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23757 a1c6a512-1295-4272-9138-f99709370657
2009-11-26 00:51:09 +00:00
Thomas Martitz
82bbd1ed9f Revert unrelated commit
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23756 a1c6a512-1295-4272-9138-f99709370657
2009-11-26 00:38:56 +00:00
Thomas Martitz
1ecb753668 Redo a hack that precluded entering a folder on an ejected hotswap drive. Use storage api and proper defines for the drive folder instead.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23755 a1c6a512-1295-4272-9138-f99709370657
2009-11-26 00:37:27 +00:00
Thomas Martitz
10753f195b Mini2440: Cleanup SD driver a bit, undefine SD_DEBUG for faster transfers, implement hotswap and HAVE_HOTSWAP_STORAGE_AS_MAIN.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23754 a1c6a512-1295-4272-9138-f99709370657
2009-11-25 23:23:21 +00:00
Jack Halpin
84f04a57ee AMS Sansa: For consistency, replace references to SECTOR_SIZE with SD_BLOCK_SIZE which is defined in sd.h as 512 bytes.
We had 3 different references to the same value.  Rockbox always uses a blocksize of 512 bytes for SD and we were using SECTOR_SIZE, SD_BLOCK_SIZE, & card_info[drive].blocksize to use this value.  Now the only reference being used is SD_BLOCK_SIZE.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23746 a1c6a512-1295-4272-9138-f99709370657
2009-11-25 03:24:28 +00:00
Rafaël Carré
231e54d80f Sansa AMS : fix recording
Flyspray: FS#10371
Authors: Fred Bauer and myself

Only enabled on e200v2 and Fuze (crashes on clipv1)

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23739 a1c6a512-1295-4272-9138-f99709370657
2009-11-24 17:59:25 +00:00
Jack Halpin
cb9dff0a95 AMS Sansa: Include time spent yielding when figuring timeout in sd_wait_for_state().
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23738 a1c6a512-1295-4272-9138-f99709370657
2009-11-24 17:43:53 +00:00
Robert Kukla
1511d75f9d Tatung Elio: a few more buttons identified
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23737 a1c6a512-1295-4272-9138-f99709370657
2009-11-24 15:42:54 +00:00
Rafaël Carré
ed13fd6dca Sansa AMS: VIC_INT_ENABLE register is not a mask
When read it returns all enabled interrupt sources
When written it enables interrupt sources for each bit set
So just like VIC_INT_EN_CLEAR, we don't have to read the previous value
before writing to it (VIC_INT_EN_CLEAR is write-only anyway)

Thanks to Fred Bauer for spotting

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23734 a1c6a512-1295-4272-9138-f99709370657
2009-11-24 12:05:53 +00:00
Jack Halpin
4314ceb73b AMS Sansa: Remove MCI_RX_ACTIVE FIFO check following SD transfers.
We don't need to check the FIFO for MCI_RX_ACTIVE because we don't experience problems reading from the SD cards.
We need the MCI_TX_ACTIVE FIFO check during writes because some SD cards spend longer times in the PRG state
programming the data that has been written to them.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23733 a1c6a512-1295-4272-9138-f99709370657
2009-11-24 06:37:36 +00:00
Jack Halpin
9e9db20357 AMS Sansa: Remove wait_for_state() following transfer in sd_select_bank() function.
We use wait_for_state() before any command that requires a state prior to being sent.  Waiting after a transfer is not needed.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23732 a1c6a512-1295-4272-9138-f99709370657
2009-11-24 06:12:17 +00:00
Jack Halpin
f5b59cdf5e AMS Sansa: dma-pl081.c: dma_enable_channel() Add step to clear pending interrupts from the previous operation. Add comments and make construction
of the CH_CONTROL and CH_CONFIGURATION registers easier to follow.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23725 a1c6a512-1295-4272-9138-f99709370657
2009-11-23 19:44:13 +00:00
Jack Halpin
fab80009bc AMS Sansa: Handle responses to SD Commands so that response crc checking is accounted for. Adjust sd error codes appropriately.
The crc check on responses to sd commands was being bypassed due to a SD_APP_OP_COND special case.  Now a short response is returned
even if the crc check fails so we can check the busy bit.  The send_cmd() function still returns a false value but it loads the response
variable with the cmd response.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23718 a1c6a512-1295-4272-9138-f99709370657
2009-11-23 04:22:11 +00:00
Jack Halpin
ecbb01fe0a AMS Sansa: Remove a now redundant sd_wait_for_state() and adjust error codes in ata_sd_as3525.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23698 a1c6a512-1295-4272-9138-f99709370657
2009-11-22 14:13:39 +00:00
Jack Halpin
6df98f690d AMS Sansa: Make send_cmd() function a bit less complicated and save ~96 bytes.
Also move sd_wait_for_state() to immediately precede SD_READ/WRITE_MULTIPLE_BLOCK commands.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23692 a1c6a512-1295-4272-9138-f99709370657
2009-11-22 04:50:26 +00:00