Rockbox

This is the bug/patch tracker for Rockbox. Click here for more information.

Quick links: Bugs · Patches · Rockbox frontpage

Tasklist

FS#9245 - [iaudio7] basic support

Attached to Project: Rockbox
Opened by Vitja Makarov (vitja) - Wednesday, 06 August 2008, 09:26 GMT+1
Last edited by Dave Chapman (linuxstb) - Saturday, 06 September 2008, 22:59 GMT+1
Task Type Patches
Category Bootloader
Status Closed
Assigned To No-one
Player Type Another
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Private No

Details

Hi!

This patch adds basic support for iaudio7 device.
This includes LCD driver, incomplete buttons driver (sensor panel doesn't work yet).

With this patch bootloader can be build.

vitja.

   iaudio7-basic.diff (23.5 KiB)
 firmware/export/config-iaudio7.h                      |  136 +++++++++
 firmware/export/tcc77x.h                              |   55 +++-
 firmware/export/hd66789r.h                            |   50 +++
 firmware/SOURCES                                      |   10 
 firmware/target/arm/tcc77x/system-tcc77x.c            |    2 
 firmware/target/arm/tcc77x/iaudio7/adc-target.h       |   28 ++
 firmware/target/arm/tcc77x/iaudio7/backlight-target.h |   23 +
 firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c      |  247 ++++++++++++++++++
 firmware/target/arm/tcc77x/iaudio7/button-target.h    |   39 ++
 firmware/target/arm/tcc77x/iaudio7/button-iaudio7.c   |   57 ++++
 firmware/target/arm/tcc77x/iaudio7/power-iaudio7.c    |   59 ++++
 firmware/target/arm/tcc77x/crt0.S                     |    5 
 12 files changed, 706 insertions(+), 5 deletions(-)

This task depends upon

Closed by  Dave Chapman (linuxstb)
Saturday, 06 September 2008, 22:59 GMT+1
Reason for closing:  Accepted
Additional comments about closing:  iaudio7-6sep.diff committed as r18435
Comment by Vitja Makarov (vitja) - Monday, 11 August 2008, 07:37 GMT+1
Updated version:

- coldstart LCD initialization now works.
- Basic support for playback based on pcm-tcc780.c, somewhy I can't get FIQ to be triggered now, but with IRQ it works. And the I fill buffer with the tone, and I hear it in headphones.
- NAND flash still doesn't works, it can't find partition data it read are all 0xff

- I found some problems with app.lds and DTCM, I made new one from boot.lds very simple, but rockboxs boot and says that flash should be formated.

now I'm going to vacations for ~2weeks

vitja.
   iaudio7-11082008.patch (51.7 KiB)
 bootloader/telechips.c                                |    2 
 tools/configure                                       |    2 
 apps/plugins/plugin.lds                               |    2 
 firmware/export/config-iaudio7.h                      |  146 ++++++++
 firmware/export/tcc77x.h                              |   55 +++
 firmware/export/hd66789r.h                            |   50 ++
 firmware/SOURCES                                      |   21 -
 firmware/target/arm/tcc780x/pcm-tcc780x.c             |  314 ------------------
 firmware/target/arm/pcm-tcc7xx.c                      |   18 -
 firmware/target/arm/tcc77x/system-tcc77x.c            |    6 
 firmware/target/arm/tcc77x/boot.lds                   |    5 
 firmware/target/arm/tcc77x/app.lds                    |  178 ++++------
 firmware/target/arm/tcc77x/iaudio7/adc-target.h       |   28 +
 firmware/target/arm/tcc77x/iaudio7/backlight-target.h |   23 +
 firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c      |  251 ++++++++++++++
 firmware/target/arm/tcc77x/iaudio7/button-target.h    |   43 ++
 firmware/target/arm/tcc77x/iaudio7/button-iaudio7.c   |   57 +++
 firmware/target/arm/tcc77x/iaudio7/power-iaudio7.c    |   85 ++++
 firmware/target/arm/tcc77x/crt0.S                     |    5 
 firmware/target/arm/tcc77x/pcm-tcc77x.c               |   77 ----
 firmware/target/arm/wmcodec-telechips.c               |    2 
 firmware/target/arm/ata-nand-telechips.c              |    2 
 firmware/drivers/audio/wm8731.c                       |    4 
 23 files changed, 863 insertions(+), 513 deletions(-)

Comment by Vitja Makarov (vitja) - Monday, 11 August 2008, 08:30 GMT+1
Here is some my work on usb driver.

It is in very early stage, but it contains register definition and masks of some bits.
Also providing some environment for debugging driver the same.

vitja.
Comment by Vitja Makarov (vitja) - Wednesday, 27 August 2008, 15:40 GMT+1
Update:

- ATA2501 support, main buttons now work too
- Initial Rockbox support (rockbox runs)
- Playback is buggy, but work sometimes
- RTC seems to work
- NAND flash driver work sometimes, same issues as with D2
   iaudio7-27aug.diff (79.4 KiB)
 bootloader/telechips.c                                |   18 
 tools/configure                                       |    2 
 apps/plugins/plugin.lds                               |    2 
 apps/SOURCES                                          |    2 
 apps/keymaps/keymap-iaudio67.c                        |  325 ++++++++++++++
 firmware/export/config-iaudio7.h                      |  153 ++++++
 firmware/export/tcc77x.h                              |   55 ++
 firmware/export/config.h                              |    1 
 firmware/export/hd66789r.h                            |   47 ++
 firmware/SOURCES                                      |   22 
 firmware/target/arm/tcc780x/pcm-tcc780x.c             |  314 --------------
 firmware/target/arm/tcc77x/system-tcc77x.c            |    6 
 firmware/target/arm/tcc77x/debug-tcc77x.c             |    5 
 firmware/target/arm/tcc77x/boot.lds                   |    5 
 firmware/target/arm/tcc77x/iaudio7/adc-target.h       |   28 +
 firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c      |  252 +++++++++++
 firmware/target/arm/tcc77x/iaudio7/backlight-target.h |   22 
 firmware/target/arm/tcc77x/iaudio7/ata2501.h          |    7 
 firmware/target/arm/tcc77x/iaudio7/button-target.h    |   37 +
 firmware/target/arm/tcc77x/iaudio7/button-iaudio7.c   |   77 +++
 firmware/target/arm/tcc77x/iaudio7/power-iaudio7.c    |   88 +++
 firmware/target/arm/tcc77x/iaudio7/ata2501.c          |  123 +++++
 firmware/target/arm/tcc77x/app.lds                    |  123 +----
 firmware/target/arm/tcc77x/crt0.S                     |    5 
 firmware/target/arm/tcc77x/pcm-tcc77x.c               |   77 ---
 firmware/target/arm/wmcodec-telechips.c               |    2 
 firmware/target/arm/ata-nand-telechips.c              |    2 
 firmware/target/arm/pcm-telechips.c                   |  397 ++++++++++++++++++
 firmware/drivers/audio/wm8731.c                       |    4 
 29 files changed, 1709 insertions(+), 492 deletions(-)

Comment by Rob Purchase (shotofadds) - Tuesday, 02 September 2008, 13:01 GMT+1
Good work! I've had a quick look at your patch with a view to getting it committed into SVN, and have the following comments so far:

1. There are some TABs in this patch - please replace them with 4 spaces (see guidelines in docs/CONTRIBUTING)
2. In pcm-telechips.c I think you should use "#ifdef CPU_TCC780X" and "#ifdef CPU_TCC77X" instead of COWON_D2 and IAUDIO_7
3. The MODEL_NUMBER should probably be the next available number rather than 555 ;-)
4. There's some "dead" code (eg. PCM_TELECHIPS_TEST and commented-out lines in the keymaps) which should be removed before committing.
5. tcc77x.h has a lot of empty comments (ie. /* ... */). Remove these or fill in a real description.
6. Please don't put whitespace in pre-processor commands (e.g. "# if" in bootloader/telechips.c)
7. Update the comment in config-iaudio7.h that says "The D2 uses a WM8985 codec"
8. Some of the file headers don't include the necessary "$Id$" line for SVN version information

Note: I have not tested the 77x and 78x changes (pcm, bootloader) on target yet.
Comment by Vitja Makarov (vitja) - Wednesday, 03 September 2008, 13:03 GMT+1
Hi Rob!

I've updated patch as you said.
But have some notes:

1. Ok
2. Different Player require different DAO setup so it should be done per-player not per-cpu
3. Ok
4. "dead" code may be very useful while debugging on new target. I leave commented buttons in keymap for future keymap improvement.
5. Ok
6. I think this is good way to keep preprocessor directives more readable. Some other rockbox files use these spaces too.
7. Ok
8. Ok


Thanks,
vitja.
   iaudio7-3sep.diff (77.2 KiB)
 bootloader/telechips.c                                |   24 -
 tools/configure                                       |    2 
 apps/plugins/plugin.lds                               |    2 
 apps/SOURCES                                          |    2 
 apps/keymaps/keymap-iaudio67.c                        |  325 ++++++++++++++++++
 firmware/export/config-iaudio7.h                      |  150 ++++++++
 firmware/export/tcc77x.h                              |   98 +++++
 firmware/export/config.h                              |    1 
 firmware/export/hd66789r.h                            |   47 ++
 firmware/SOURCES                                      |   22 -
 firmware/target/arm/tcc780x/pcm-tcc780x.c             |  314 -----------------
 firmware/target/arm/tcc77x/system-tcc77x.c            |   11 
 firmware/target/arm/tcc77x/boot.lds                   |    5 
 firmware/target/arm/tcc77x/debug-tcc77x.c             |    5 
 firmware/target/arm/tcc77x/app.lds                    |  123 ++----
 firmware/target/arm/tcc77x/iaudio7/adc-target.h       |   28 +
 firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c      |  253 ++++++++++++++
 firmware/target/arm/tcc77x/iaudio7/backlight-target.h |   42 ++
 firmware/target/arm/tcc77x/iaudio7/ata2501.h          |   27 +
 firmware/target/arm/tcc77x/iaudio7/button-target.h    |   57 +++
 firmware/target/arm/tcc77x/iaudio7/button-iaudio7.c   |   78 ++++
 firmware/target/arm/tcc77x/iaudio7/power-iaudio7.c    |   89 ++++
 firmware/target/arm/tcc77x/iaudio7/ata2501.c          |  124 ++++++
 firmware/target/arm/tcc77x/crt0.S                     |    5 
 firmware/target/arm/tcc77x/pcm-tcc77x.c               |   77 ----
 firmware/target/arm/wmcodec-telechips.c               |    2 
 firmware/target/arm/ata-nand-telechips.c              |    2 
 firmware/target/arm/pcm-telechips.c                   |   87 ++++
 firmware/drivers/audio/wm8731.c                       |    4 
 29 files changed, 1507 insertions(+), 499 deletions(-)

Comment by Rob Purchase (shotofadds) - Wednesday, 03 September 2008, 19:01 GMT+1
You're right, of course the I2S setup is dependent on both CPU and DAC, so those player #ifdef's are fine. I wouldn't worry about those commented-out lines in the keymaps (assuming somebody intends to fix them later).

Personally I don't like those spaces in the preprocessor directives - but maybe ask in IRC and see what others think?
Comment by Frank Gevaerts (fg) - Wednesday, 03 September 2008, 20:21 GMT+1
If you do further USB work, could you change the register definitions to be base-address agnostic, i.e. define something like USB_BASE in tcc77x.h and use USB_BASE+offset ? Other SoCs use the same controller
Comment by Vitja Makarov (vitja) - Friday, 05 September 2008, 11:18 GMT+1
Update:

- add usb register definition relative to USB_BASE
- disable usb device in usb_init_device()
- power_off() from cowond2
   iaudio7-5sep.diff (84.2 KiB)
 bootloader/telechips.c                                |   24 -
 tools/configure                                       |    2 
 apps/plugins/plugin.lds                               |    2 
 apps/SOURCES                                          |    2 
 apps/keymaps/keymap-iaudio67.c                        |  325 ++++++++++++++++++
 firmware/export/config-iaudio7.h                      |  150 ++++++++
 firmware/export/usb-tcc7xx.h                          |  101 +++++
 firmware/export/tcc77x.h                              |  102 +++++
 firmware/export/config.h                              |    1 
 firmware/export/hd66789r.h                            |   47 ++
 firmware/SOURCES                                      |   22 -
 firmware/target/arm/tcc780x/pcm-tcc780x.c             |  314 -----------------
 firmware/target/arm/tcc77x/system-tcc77x.c            |   11 
 firmware/target/arm/tcc77x/boot.lds                   |    5 
 firmware/target/arm/tcc77x/debug-tcc77x.c             |    5 
 firmware/target/arm/tcc77x/usb-tcc77x.c               |    6 
 firmware/target/arm/tcc77x/app.lds                    |  123 ++----
 firmware/target/arm/tcc77x/iaudio7/adc-target.h       |   28 +
 firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c      |  253 ++++++++++++++
 firmware/target/arm/tcc77x/iaudio7/backlight-target.h |   42 ++
 firmware/target/arm/tcc77x/iaudio7/ata2501.h          |   27 +
 firmware/target/arm/tcc77x/iaudio7/button-target.h    |   57 +++
 firmware/target/arm/tcc77x/iaudio7/button-iaudio7.c   |   78 ++++
 firmware/target/arm/tcc77x/iaudio7/power-iaudio7.c    |   91 +++++
 firmware/target/arm/tcc77x/iaudio7/ata2501.c          |  124 ++++++
 firmware/target/arm/tcc77x/crt0.S                     |    5 
 firmware/target/arm/tcc77x/pcm-tcc77x.c               |   77 ----
 firmware/target/arm/wmcodec-telechips.c               |    2 
 firmware/target/arm/ata-nand-telechips.c              |    2 
 firmware/target/arm/pcm-telechips.c                   |   87 ++++
 firmware/drivers/audio/wm8731.c                       |    4 
 31 files changed, 1620 insertions(+), 499 deletions(-)

Comment by Vitja Makarov (vitja) - Friday, 05 September 2008, 13:25 GMT+1
Update:

- switch on and off sensor-panel leds when switching backlight
- initial tunner support driver detects tunner, but it doesn't work now
   iaudio7-5sep.diff (90.4 KiB)
 bootloader/telechips.c                                |   24 -
 tools/configure                                       |    2 
 apps/plugins/plugin.lds                               |    2 
 apps/SOURCES                                          |    2 
 apps/keymaps/keymap-iaudio67.c                        |  325 ++++++++++++++++++
 firmware/export/config-iaudio7.h                      |  157 ++++++++
 firmware/export/usb-tcc7xx.h                          |  101 +++++
 firmware/export/tcc77x.h                              |  102 +++++
 firmware/export/config.h                              |    1 
 firmware/export/hd66789r.h                            |   47 ++
 firmware/SOURCES                                      |   23 -
 firmware/target/arm/tcc780x/pcm-tcc780x.c             |  314 -----------------
 firmware/target/arm/tcc77x/system-tcc77x.c            |   11 
 firmware/target/arm/tcc77x/boot.lds                   |    5 
 firmware/target/arm/tcc77x/debug-tcc77x.c             |    5 
 firmware/target/arm/tcc77x/usb-tcc77x.c               |    6 
 firmware/target/arm/tcc77x/app.lds                    |  123 ++----
 firmware/target/arm/tcc77x/iaudio7/adc-target.h       |   28 +
 firmware/target/arm/tcc77x/iaudio7/audio-iaudio7.c    |   96 +++++
 firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c      |  253 ++++++++++++++
 firmware/target/arm/tcc77x/iaudio7/backlight-target.h |   46 ++
 firmware/target/arm/tcc77x/iaudio7/ata2501.h          |   27 +
 firmware/target/arm/tcc77x/iaudio7/button-target.h    |   57 +++
 firmware/target/arm/tcc77x/iaudio7/button-iaudio7.c   |   78 ++++
 firmware/target/arm/tcc77x/iaudio7/power-iaudio7.c    |  154 ++++++++
 firmware/target/arm/tcc77x/iaudio7/ata2501.c          |  124 ++++++
 firmware/target/arm/tcc77x/crt0.S                     |    5 
 firmware/target/arm/tcc77x/pcm-tcc77x.c               |   77 ----
 firmware/target/arm/wmcodec-telechips.c               |    5 
 firmware/target/arm/ata-nand-telechips.c              |    2 
 firmware/target/arm/pcm-telechips.c                   |   87 ++++
 firmware/drivers/audio/wm8731.c                       |    4 
 firmware/drivers/tuner/lv24020lp.c                    |   15 
 33 files changed, 1809 insertions(+), 499 deletions(-)

Comment by Vitja Makarov (vitja) - Saturday, 06 September 2008, 08:02 GMT+1
Update:

- Radio now works, but rockbox sometimes crashes with divide by zero exception
- Dummy funcs for recording, enabling recording gives monitor mode available for radio
- Initial keymap for plugins
- Fix hold button issue

- It seems that color conversion is wrong. We need to convert RGB16 to RGB18 that doesn't work always correctly
   iaudio7-6sep.diff (95.8 KiB)
 bootloader/telechips.c                                |   24 -
 tools/configure                                       |    2 
 tools/scramble.c                                      |    2 
 apps/plugins/plugin.lds                               |    2 
 apps/plugins/battery_bench.c                          |    6 
 apps/plugins/lib/pluginlib_actions.c                  |   27 +
 apps/SOURCES                                          |    2 
 apps/keymaps/keymap-iaudio67.c                        |  325 ++++++++++++++++++
 firmware/export/config-iaudio7.h                      |  163 +++++++++
 firmware/export/usb-tcc7xx.h                          |  101 +++++
 firmware/export/tcc77x.h                              |  102 +++++
 firmware/export/config.h                              |    1 
 firmware/export/hd66789r.h                            |   47 ++
 firmware/SOURCES                                      |   23 -
 firmware/target/arm/tcc780x/pcm-tcc780x.c             |  314 -----------------
 firmware/target/arm/tcc77x/system-tcc77x.c            |   11 
 firmware/target/arm/tcc77x/debug-tcc77x.c             |    5 
 firmware/target/arm/tcc77x/boot.lds                   |    5 
 firmware/target/arm/tcc77x/adc-tcc77x.c               |    3 
 firmware/target/arm/tcc77x/usb-tcc77x.c               |    6 
 firmware/target/arm/tcc77x/iaudio7/adc-target.h       |   28 +
 firmware/target/arm/tcc77x/iaudio7/audio-iaudio7.c    |   99 +++++
 firmware/target/arm/tcc77x/iaudio7/lcd-iaudio7.c      |  252 +++++++++++++
 firmware/target/arm/tcc77x/iaudio7/backlight-target.h |   46 ++
 firmware/target/arm/tcc77x/iaudio7/ata2501.h          |   27 +
 firmware/target/arm/tcc77x/iaudio7/button-target.h    |   57 +++
 firmware/target/arm/tcc77x/iaudio7/button-iaudio7.c   |   81 ++++
 firmware/target/arm/tcc77x/iaudio7/power-iaudio7.c    |  146 ++++++++
 firmware/target/arm/tcc77x/iaudio7/ata2501.c          |  124 ++++++
 firmware/target/arm/tcc77x/app.lds                    |  123 ++----
 firmware/target/arm/tcc77x/crt0.S                     |    5 
 firmware/target/arm/tcc77x/pcm-tcc77x.c               |   77 ----
 firmware/target/arm/wmcodec-telechips.c               |    5 
 firmware/target/arm/ata-nand-telechips.c              |    2 
 firmware/target/arm/pcm-telechips.c                   |  128 ++++++-
 firmware/drivers/audio/wm8731.c                       |    4 
 firmware/drivers/tuner/lv24020lp.c                    |   15 
 37 files changed, 1891 insertions(+), 499 deletions(-)

Loading...