circuitpython/ports/mimxrt/boards
MikeTeachman 1f6cb8f047 mixmrt/machine_i2s: Add I2S protocol support.
This commit adds support for machine.I2S on the mimxrt port.  The I2S API
is consistent with the existing stm32, esp32, and rp2 implementations.

I2S features:
- controller transmit and controller receive
- 16-bit and 32-bit sample sizes
- mono and stereo formats
- sampling frequencies from 8kHz to 48kHz
- 3 modes of operation:
  - blocking
  - non-blocking with callback
  - uasyncio
- configurable internal buffer
- optional MCK

Tested with the following development boards:
- MIMXRT1010_EVK, MIMXRT1015_EVK, MIMXRT1020_EVK, MIMXRT1050_EVK
- Teensy 4.0, Teensy 4.1
- Olimex RT1010
- Seeed ARCH MIX

Tested with the following I2S hardware peripherals:
- UDA1334
- GY-SPH0645LM4H
- WM8960 codec on board the MIMXRT boards and separate breakout board
- INMP441
- PCM5102
- SGTL5000 on the Teensy audio shield

Signed-off-by: Mike Teachman <mike.teachman@gmail.com>
2022-03-30 14:12:40 +11:00
..
MIMXRT1010_EVK mixmrt/machine_i2s: Add I2S protocol support. 2022-03-30 14:12:40 +11:00
MIMXRT1015_EVK mimxrt/boards: Add board files for MIMXRT1015 and MIMXRT1015_EVK. 2022-03-08 23:08:44 +11:00
MIMXRT1020_EVK mixmrt/machine_i2s: Add I2S protocol support. 2022-03-30 14:12:40 +11:00
MIMXRT1050_EVK mixmrt/machine_i2s: Add I2S protocol support. 2022-03-30 14:12:40 +11:00
MIMXRT1060_EVK mixmrt/machine_i2s: Add I2S protocol support. 2022-03-30 14:12:40 +11:00
MIMXRT1064_EVK mixmrt/machine_i2s: Add I2S protocol support. 2022-03-30 14:12:40 +11:00
OLIMEX_RT1010 mixmrt/machine_i2s: Add I2S protocol support. 2022-03-30 14:12:40 +11:00
SEEED_ARCH_MIX mixmrt/machine_i2s: Add I2S protocol support. 2022-03-30 14:12:40 +11:00
TEENSY40 mixmrt/machine_i2s: Add I2S protocol support. 2022-03-30 14:12:40 +11:00
TEENSY41 mixmrt/machine_i2s: Add I2S protocol support. 2022-03-30 14:12:40 +11:00
common.ld mimxrt: Optimize the runtime speed. 2021-10-25 23:54:47 +11:00
deploy_mimxrt.md mimxrt/boards: Update the board.json files and add deploy_xx.md files. 2021-11-16 23:17:42 +11:00
deploy_teensy.md mimxrt/boards: Update the board.json files and add deploy_xx.md files. 2021-11-16 23:17:42 +11:00
make-flexram-config.py mimxrt/boards: Add board files for MIMXRT1015 and MIMXRT1015_EVK. 2022-03-08 23:08:44 +11:00
make-pins.py mimxrt: Support PWM using the FLEXPWM and QTMR modules. 2021-11-24 13:48:27 +11:00
manifest.py mimxrt/boards: Support using an optional board-specific manifest.py. 2022-03-08 23:10:41 +11:00
MIMXRT1011_af.csv mimxrt: Implement machine.Pin class. 2021-05-26 00:12:42 +10:00
MIMXRT1011.ld mimxrt/sdram: Add SDRAM support. 2021-10-22 08:23:24 +02:00
MIMXRT1015_af.csv mimxrt/boards: Add board files for MIMXRT1015 and MIMXRT1015_EVK. 2022-03-08 23:08:44 +11:00
MIMXRT1015.ld mimxrt/boards: Add board files for MIMXRT1015 and MIMXRT1015_EVK. 2022-03-08 23:08:44 +11:00
MIMXRT1021_af.csv mimxrt: Support PWM using the FLEXPWM and QTMR modules. 2021-11-24 13:48:27 +11:00
MIMXRT1021.ld mimxrt: Support PWM using the FLEXPWM and QTMR modules. 2021-11-24 13:48:27 +11:00
MIMXRT1052_af.csv mimxrt: Implement machine.Pin class. 2021-05-26 00:12:42 +10:00
MIMXRT1052.ld mimxrt: Enable ticks_cpu at boot time for NDEBUG builds only. 2021-12-14 08:07:52 +01:00
MIMXRT1062_af.csv mimxrt: Implement machine.Pin class. 2021-05-26 00:12:42 +10:00
MIMXRT1062.ld mimxrt/sdram: Add SDRAM support. 2021-10-22 08:23:24 +02:00
MIMXRT1064_af.csv mimxrt: Implement machine.Pin class. 2021-05-26 00:12:42 +10:00
MIMXRT1064.ld mimxrt/sdram: Add SDRAM support. 2021-10-22 08:23:24 +02:00
mimxrt_prefix.c mimxrt/sdcard: Implement SDCard driver. 2021-09-07 20:45:33 +02:00