Registered User mNo edit summary |
Registered User No edit summary |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{ApplicableFor | |||
|MPUs list=STM32MP13x, STM32MP15x | |MPUs list=STM32MP13x, STM32MP15x, STM32MP25x | ||
|MPUs checklist=STM32MP13x,STM32MP15x | |MPUs checklist=STM32MP13x, STM32MP15x, STM32MP25x | ||
}}</noinclude> | }} | ||
<noinclude></noinclude> | |||
== Article purpose == | == Article purpose == | ||
This article introduces the SPDIFRX Linux<sup>®</sup> driver for the [[SPDIFRX internal peripheral]]. | This article introduces the SPDIFRX Linux<sup>®</sup> driver for the [[SPDIFRX internal peripheral]]. | ||
Line 37: | Line 38: | ||
* debugfs entries: | * debugfs entries: | ||
:* '''asoc''': refer to [[ALSA_overview#How_to_monitor]] | :* '''asoc''': refer to [[ALSA_overview#How_to_monitor]] | ||
:* '''clk''': refer to [[Clock_overview# | :* '''clk''': refer to [[Clock_overview#How_to_monitor_with_debugfs_of_clock_framework]] to get information on clocks. | ||
:* '''pinctrl''': refer to [[Pinctrl_overview#How_to_monitor]] to get information on pins. | :* '''pinctrl''': refer to [[Pinctrl_overview#How_to_monitor]] to get information on pins. | ||
:* '''regmap''': allow to monitor SPDIFRX peripheral registers. | :* '''regmap''': allow to monitor SPDIFRX peripheral registers. |
Latest revision as of 16:33, 10 November 2023
1. Article purpose
This article introduces the SPDIFRX Linux® driver for the SPDIFRX internal peripheral.
2. Short Description
The SPDIFRX[1] Linux driver is an ASoC CPU DAI driver implemented in the Linux ALSA framework.
3. Configuration
3.1. Kernel Configuration
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
Refer to the SPDIFRX device tree configuration article when configuring the SPDIFRX Linux kernel driver.
4. How to use
The SPDIFRX driver is accessed from userland through an ALSA device. Refer to ALSA overview to see how to list and use ALSA devices.
The SPDFIRX driver exposes an alsa control, which allows to retrieve the IEC958 status bits from the input audio stream.
5. How to debug
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_of_clock_framework 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
sound/soc/stm/stm32_spdifrx.c : implements the SPDIFRX driver.
7. References