- Last edited 3 years ago ago
I2S Linux driver
Template:ArticleMainWriter
Template:ArticleApprovedVersion
Contents
1 Article purpose[edit]
This article introduces the I2S Linux® driver for the SPI/I2S internal peripheral.
2 Short Description[edit]
The I2S Linux driver is an ASoC CPU DAI driver implemented in the Linux ALSA framework.
3 Configuration[edit]
3.1 Kernel Configuration[edit]
Activate the I2S 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 I2S interface (SPI/I2S block) support
3.2 Device tree[edit]
Refer to the I2S device tree configuration article when configuring the I2S Linux kernel driver.
4 How to use[edit]
The I2S Linux driver can be accessed from userland through an ALSA device. Refer to ALSA overview for information on how to list and use ALSA devices.
5 How to trace and debug[edit]
The debugfs and procfs file system can be checked to get information on the I2S driver and the resources it uses. A non-exhaustive list of these file system entries is provided below. Refer to ALSA overview for more details on 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 SPI/I2S 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]
sound/soc/stm/stm32_i2s.c : implements the I2S Linux driver.