Rockbox Development > New Ports
SanDisk Sansa c200v2, m200v4, clipv1, clipv2, clip+, and fuzev2
pbxy:
--- Quote from: funman on March 26, 2009, 09:17:05 AM ---Good news : I have now access to the LCD on Clipv2 (I updated the ticket with a new patch, pay attention to _backlight_on() which holds the required i2c registers modifications).
--- End quote ---
Great work! :)
(Rockbox logo on clipv2.)
--- Quote from: funman on March 26, 2009, 09:17:05 AM ---pbxy I hope it will help you to find the last buttons.
--- End quote ---
It did! Used as keypad inputs are D0:2 as you said, outputs are D3:5.
Compared to the v1, column switching works the other way around: All 3 output pins are high except the one for the wanted column.
An input pins reads 0 when the corresponding button is pressed.
I needed to add a few nops after switching a column to get reliable results from button_read_device().
Without the delay, eg. VOL_UP and DOWN were reported when just DOWN was pressed.
With the attached button-clip.c every button except for HOLD gets detected.
I printed out all GPIO pin states on the display but nothing changes when hold is pressed.
j8048188:
--- Quote from: funman on March 26, 2009, 09:17:05 AM ---
* SD code is different, and pl18? documentation on ARM.com has vanished?
--- End quote ---
Was it on the website before? If so, where did you go to get it?
I may be able to find a cache of the page.
mc2739:
For any tester with an e200v2, I have opened FS#10043 for updates to the lcd driver.
These updates enable inverse video, upside down mode, and lcd standby. Also, some unneeded GPIO setting code was removed.
Please post any comments or results on the Flyspray task.
Thanks
funman:
--- Quote from: pbxy on March 26, 2009, 01:26:22 PM ---With the attached button-clip.c every button except for HOLD gets detected.
I printed out all GPIO pin states on the display but nothing changes when hold is pressed.
--- End quote ---
Isn't hold on A3 like on Clipv1 ? I'll have to test, but I remember seeing it on A3 in the OF.
saratoga:
Are you sure your armv5 instruction isn't data or 2 thumb instructions ?
You should check register c0 of cp15 to be sure of the CPU used.
By the way I should get a Clipv1 within a few days (sent today).
And also: AMS answered (in french!) and sent me a NDA before sending me the AS3536 datasheet.
Now I just wait their answer about AS3530 & AS3531, because AS3530 & AS3536 have built in hardware H264 decoders (expensive, especially for the patents licences); this is why I think the Clipv2 is AS3531 based, but having all the documents couldn't harm in determining the exact SoC used.
j8048188:
I still have the document, but I was hoping to see if the SD registers matched with a newer PrimeCell controller : it seems ARM doesn't build new SD controllers.
By the way : here are some SD registers I found:
0xC6070000 = sd registers base
+ 0x00 = power?
+ 0x28 = argument
+ 0x2c = cmd
+ 0x30 = resp0
+ 0x34 = resp1
+ 0x38 = resp2
+ 0x3C = resp3
+ 0x40 = status (irq status?)
+ 0x44 = clear (irq clear?)
+ 0x100 = fifo
command register bits:
bits 5:0 = command
bit 6 = response
bit 7 = long response
bit 31 = command enable/command active ?
I had a look at Linux (2.6.28) source but couldn't find any controller matching those.
funman:
--- Quote from: funman on March 27, 2009, 11:35:22 AM ---
--- Quote from: pbxy on March 26, 2009, 01:26:22 PM ---With the attached button-clip.c every button except for HOLD gets detected.
I printed out all GPIO pin states on the display but nothing changes when hold is pressed.
--- End quote ---
Isn't hold on A3 like on Clipv1 ? I'll have to test, but I remember seeing it on A3 in the OF.
--- End quote ---
You have to set A7 direction out, set pin A7, wait a little bit (I used for(i=0;i<50;i++) asm volatile("nop"); ) , read A3; unset pin A7 and set the direction to input to read power button.
Now the buttons are complete!
I tried quickly to access the SD, I could send some commands but with some trouble:
* The CID & CSD registers are reverted, and are sent in the same order even if I switch SEND_CSD & SEND_CID command : it indicates 0x1E9E00 blocks
* I can't get out of IDENT mode (and I don't know the registers modifications needed prior DMA transfer)
* If I reset all the peripherals, I can't even get past the power up phase
So I think I'll just wait the documents from AMS.. it should save much pain
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version