diff --git a/configs/sama5d3x-ek/README.txt b/configs/sama5d3x-ek/README.txt index 628f6cd27d7..8d776aab47c 100644 --- a/configs/sama5d3x-ek/README.txt +++ b/configs/sama5d3x-ek/README.txt @@ -81,9 +81,10 @@ Contents - SAMA5 ADC Support - SAMA5 PWM Support - OV2640 Camera Interface - - WM8904 Audio Codec Interface + - I2S Audio Support - SAMA5D3x-EK Configuration Options - Configurations + - To-Do List Development Environment ======================= @@ -978,11 +979,16 @@ OV2640 Camera Interface PC26 C ISI_D11 29 ISI_D11 30 GND -WM8904 Audio Codec Interface -============================ +I2S Audio Support +================= - Connectivity - ------------ + The SAMA5D3x-EK has two devices on-board that can be used for verification + of I2S functionaly: HDMI and a WM8904 audio CODEC. As of this writing, + the I2S driver is present, but there are not drivers for either the HDMI + or the WM8904. + + WM8904 Audio CODEC Interface + ---------------------------- ------------- ---------------- ----------------- WM8904 SAMA5D3 NuttX Pin Name @@ -999,11 +1005,66 @@ WM8904 Audio Codec Interface 1 IRQ/GPIO1 PD16 INT_AUDIO N/A ------------- ---------------- ----------------- - Configuration - ------------- + I2S Loopback Test + ----------------- - nxplayer - -------- + The I2S driver was verified using a special I2C character driver (at + nuttx/drivers/audio/i2schar.c) and a test driver at apps/examples/i2schar. + The I2S driver was verified in loopback mode with no audio device. + + [NOTE: The above statement is anticipatory: As of this writing I2S driver + verification is underway and still not complete]. + + This section describes the modifications to the NSH configuration that were + used to perform the I2S testing: + + System Type -> SAMA5 Peripheral Support + CONFIG_SAMA5_SSCO=y : Enable SSC0 driver support + CONFIG_SAMA5_DMAC0=y : DMAC0 required by SSC0 + + Alternatively, SSC1 could have be used: + + System Type -> SAMA5 Peripheral Support + CONFIG_SAMA5_SSC1=y : Enable SSC0 driver support + CONFIG_SAMA5_DMAC1=y : DMAC0 required by SSC0 + + System Type -> SSC Configuration + CONFIG_SAMA5_SSC_MAXINFLIGHT=16 : Up to 16 pending DMA transfers + CONFIG_SAMA5_SSC0_MASTER=y : Master mode + CONFIG_SAMA5_SSC0_DATALEN=16 : 16-bit data + CONFIG_SAMA5_SSC0_RX=y : Support a receiver + CONFIG_SAMA5_SSC0_RX_RKINPUT=y : Receiver gets clock from RK input + CONFIG_SAMA5_SSC0_TX=y : Support a transmitter + CONFIG_SAMA5_SSC0_TX_MCKDIV=y : Transmitter gets clock from MCK/2 + CONFIG_SAMA5_SSC0_MCKDIV_SAMPLERATE=48000 : Sampling at 48K samples/sec + CONFIG_SAMA5_SSC0_TX_TKOUTPUT_CONT=y : Outputs clock on TK + CONFIG_SAMA5_SSC0_LOOPBACK=y : Loopmode mode connects RD/TD and RK/TK + + Audio + CONFIG_AUDIO=y : Audio support needed + : Defaults should be okay + + Drivers -> Audio + CONFIG_I2S=y : General I2S support + CONFIG_AUDIO_DEVICES=y : Audio device support + CONFIG_AUDIO_I2SCHAR=y : Build I2S character driver + + The following describes how I have the test application at + apps/examples/i2schar configured: + + CONFIG_EXAMPLES_I2SCHAR=y + CONFIG_EXAMPLES_I2SCHAR_DEVPATH="/dev/i2schar0" + CONFIG_EXAMPLES_I2SCHAR_TX=y + CONFIG_EXAMPLES_I2SCHAR_TXBUFFERS=4 + CONFIG_EXAMPLES_I2SCHAR_TXSTACKSIZE=1536 + CONFIG_EXAMPLES_I2SCHAR_RX=y + CONFIG_EXAMPLES_I2SCHAR_RXBUFFERS=4 + CONFIG_EXAMPLES_I2SCHAR_RXSTACKSIZE=1536 + CONFIG_EXAMPLES_I2SCHAR_BUFSIZE=256 + CONFIG_EXAMPLES_I2SCHAR_DEVINIT=y + + Library Routines + CONFIG_SCHED_WORKQUEUE=y : Driver needs work queue support SAMA5D3x-EK Configuration Options ================================= @@ -2848,3 +2909,55 @@ Configurations 2013-7-31: Using delay loop calibration from the hello configuration. That configuration runs out of internal SRAM and, as a result, this configuration needs to be recalibrated. + +To-Do List +========== + +1) Currently the SAMA5Dx is running at 396MHz in these configurations. This + is because the timing for the PLLs, NOR FLASH, and SDRAM came from the + Atmel NoOS sample code which runs at that rate. The SAMA5Dx is capable + of running at 528MHz, however. The setup for that configuration exists + in the Bareboard assembly language setup and should be incorporated. + +2) Currently, these configurations keep all .bss and .data in internal SRAM. + The SDRAM is available for heap, but not for static data. This is + because the SDRAM does not get configured until after the system has + booted; until after .bss and .data have been initialized. To change + this, the solution would be to port the Bareboard assembly language + setup into the NuttX assembly language startup and execute it BEFORE + initializing .bss and .data. + +3) Neither USB OHCI nor EHCI support Isochronous endpoints. Interrupt + endpoint support in the EHCI driver is untested. + +4) HSCMI TX DMA support is currently commented out. + +5) I believe that there is an issue when the internal AT25 FLASH is + formatted by NuttX. That format works fine with Linux, but does not + appear to work with Windows. Reformatting on Windows can resolve this. + NOTE: This is not a SAMA5Dx issue. + +6) CAN testing has not yet been performed due to issues with cabling. I + just do not have a good test bed (or sufficient CAN knowledge) for + good CAN testing. + +7) The NxWM example does not work well. This example was designed to work + with much smaller displays and does not look good or work well with the + SAMA5Dx-EKs 800x480 display. + +8) There are lots of LCDC hardware features that are not tested with NuttX. + The simple NuttX graphics system does not have support for all of the + layers and other features of the LCDC. + +9) I have a Camera, but there is still no ISI driver. I am not sure what to + do with the camera. NuttX needs something liek V4L to provide the + definition for what a camera driver is supposed to do. + +10) NAND. There is no NAND support. A NAND driver is a complex thing + because it must support not only basic NAND access but also bad block + detection, sparing and ECC. Lots of work! + +11) GMAC has only been tested on a 10/100Base-T network. I don't have a + 1000Base-T network to support additional testing. + +12) I2S testing. Underway now.