SAMA5D4-EK/nsh: WM8904 support enabled; README updated

This commit is contained in:
Gregory Nutt
2014-09-18 14:29:20 -06:00
parent 033d1b1fdc
commit e2331ce415
2 changed files with 91 additions and 11 deletions
+47
View File
@@ -4460,6 +4460,9 @@ Configurations
nxplayer> device pcm0
nxplayer> play <filename>
STATUS: Not yet functional. See the To-Do list at the bottom of this
README file.
20. The SAMA5D4-EK includes for an AT25 serial DataFlash. That support is
NOT enabled in this configuration. Support for that serial FLASH could
be enabled by modifying the NuttX configuration as described above in
@@ -4689,6 +4692,12 @@ Configurations
new one, you should see the .WAV files on the SD card in the lis
box.
STATUS: Despite the comments above, WM8904 support has *NOT* yet
been enabled in this configuration. This is because it is not yet
working in the nxwm configuration. See the To-Do list at the
bottom of this README file. The current nxwm configuration is still
set up for the Rev C board using the "NULL" audio device.
Things still to do:
a. Currently the list box is not scrollable. So you will be
@@ -4815,3 +4824,41 @@ To-Do List
for the PWM and the Timer/Counter drivers. These drivers use the
BOARD_MCK_FREQUENCY definition in more complex ways and will require some
minor redesign and re-testing before they can be available.
5) The WM8904 is not usable on the Rev C version of the board due to some I2C
related issues. These issues seem to be resolved on the Rev E version of
the board. However, the WM8904 is still not function:
a) With a logic analyzer I can see that the I2C writes to the WM8904
device look good. This is the same setup that was used in the working
SAMA5D3x-EK nxplayer configuration and so should be correct (you cannot
even get this far on the Rev C board).
b) I2C readback of the WM8904 registers (via CONFIG_WM8904_REGDUMP) does
not, however, show proper registers contents. Groups of extra bits
(apparently 0x01fd) appear to be set in many registers on reading.
This is assumed to be some interference from some other device on the
I2C bus rather that errors in writing. This assumption is credible
since the bad bits appear immediately after resetting the WM8904 and
before anything has been written to it.
c) Also with the logic analyzer, I can that the 12MHz MCLK input is
being provided to the WM8904.
d) However, not bit clock (BLCK) is being generated by the WM8904. This
should appear on both AUDIO_TK0_PB27 and AUDIO_RK0_PB28, but I see
nothing.
e) With no BCLK, I would expect the SSC0 DMA transfers to hang... they do
not. No errors of any kind are detected by the firmware; it believes
that it is successfully playing .WAV files. This leads to believe
that there may be some schematic error.
e) There is, of course, no audio output.
You can replace the WM8904 with the "NULL" audio driver by:
CONFIG_AUDIO_WM8904=n : Disable the WM8904
CONFIG_SAMA5_SSC0=n : Disable SSC0
CONFIG_AUDIO_NULL=y : Enable the NULL audio device
CONFIG_AUDIO_NULL_BUFFER_SIZE=8192
CONFIG_AUDIO_NULL_MSG_PRIO=1
CONFIG_AUDIO_NULL_NUM_BUFFERS=4
CONFIG_AUDIO_NULL_WORKER_STACKSIZE=768
CONFIG_AUDIO_NUM_BUFFERS=2