Template:ArticleBasedOnModel Template:ArticleMainWriter Template:ArticleApprovedVersion
1. Article purpose[edit | edit source]
This article introduces the SPDIFRX Linux® driver for the SPDIFRX internal peripheral.
2. Short Description[edit | edit source]
The SPDIFRX[1] Linux driver is an ASoC CPU DAI driver implemented in the Linux ALSA framework.
3. Configuration[edit | edit source]
3.1. Kernel Configuration[edit | edit source]
Activate the SPDIFRX[1] Linux driver in the kernel configuration using the Linux Menuconfig tool: Menuconfig or how to configure kernel
[*] Device Drivers [*] Sound card support [*] Advanced Linux Sound Architecture [*] ALSA for SoC audio support STMicroelectronics STM32 SOC audio support [*] STM32 S/PDIF receiver (SPDIFRX) support
3.2. Device tree[edit | edit source]
Refer to the SPDIFRX device tree configuration article when configuring the SPDIFRX Linux kernel driver.
4. How to use[edit | edit source]
The SAI driver is accessed from userland through an ALSA device. Refer to ALSA overview to see how to list and use ALSA devices.
5. How to debug[edit | edit source]
The debugfs and procfs file systems can be checked to get information about the SPDFIRX driver and the resources it uses. A none exhaustive list of these file system entries is provided below. Refer to ALSA overview to get more details about debugging tools.
- debugfs entries:
- asoc: refer to ALSA_overview#How_to_monitor
- clk: refer to Clock_overview#How_to_monitor_with_debugfs to get information on clocks.
- pinctrl: refer to Pinctrl_overview#How_to_monitor to get information on pins.
- regmap: allow to monitor SPDIFRX peripheral registers.
$ cat /sys/kernel/debug/regmap/xxx.audio-controller/registers
- procfs entries:
- asound: refer to ALSA_overview#How_to_debug
- interrupts: allow to check interrupts.
$ cat /proc/interrupts
6. Source code location[edit | edit source]
Template:CodeSource: implements the SPDIFRX driver.