“SAI Linux driver”的版本间的差异

来自百问网嵌入式Linux wiki
第1行: 第1行:
{{DISPLAYTITLE:SAI Linux驱动程序}}
+
== Article purpose ==
 +
This article introduces the SAI Linux<sup>&reg;</sup> driver for the [[SAI internal peripheral]].
  
[[Category:Linux_Operating_System]]
+
== Short Description ==
[[Category:Audio]]
+
The SAI<ref name="SAI internal peripheral">[[SAI internal peripheral]]</ref> Linux driver is an ASoC CPU DAI driver implemented in the Linux [[ALSA_overview|ALSA framework]].
[[Category:ALSA]]
+
 
 +
== Configuration ==
 +
 
 +
=== Kernel Configuration ===
 +
Activate the SAI<ref name="SAI internal peripheral"/> Linux driver in the kernel configuration using the Linux Menuconfig tool: [[Menuconfig or how to configure kernel]].
 +
<pre>
 +
[*] Device Drivers
 +
    [*] Sound card support
 +
        [*] Advanced Linux Sound Architecture
 +
            [*] ALSA for SoC audio support
 +
                STMicroelectronics STM32 SOC audio support
 +
            [*] STM32 SAI interface (Serial Audio Interface) support
 +
</pre>
 +
 
 +
=== Device tree ===
 +
Refer to the [[SAI device tree configuration]] article when configuring the SAI Linux kernel driver.
 +
 
 +
== How to use ==
 +
The SAI Linux driver can be accessed from userland through an ALSA device. Refer to [[ALSA_overview#How_to_use|ALSA overview]] for information on how to list and use ALSA devices.
 +
 
 +
==How to trace and debug==
 +
The [[Debugfs|debugfs]] and procfs file system can be checked to get information on the SAI driver and the resources it uses. A non-exhaustive list of these file system entries is provided below. Refer to [[ALSA_overview#How_to_trace_and_debug_the_framework|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 SAI peripheral registers.
 +
<div style="margin-left: 2em;">
 +
$ cat /sys/kernel/debug/regmap/xxx.audio-controller/registers
 +
</div>
 +
* procfs entries:
 +
:* '''asound''': refer to [[ALSA_overview#How_to_debug]]
 +
:* '''interrupts''': allow to check interrupts.
 +
<div style="margin-left: 2em;">
 +
$ cat /proc/interrupts
 +
</div>
 +
 
 +
== Source code location ==
 +
The STM32 SAI peripheral includes two independent audio subblocks that share common resources. The driver source code reflects this architecture.
 +
 
 +
{{CodeSource | Linux kernel | sound/soc/stm/stm32_sai.c}}: handles common resources such as clock, interrupt, reset and shared register.
 +
 
 +
{{CodeSource | Linux kernel | sound/soc/stm/stm32_sai_sub.c}}: handles the resources dedicated to each subblock.
 +
 
 +
==References==
 +
<references />
 +
 
 +
<noinclude>
 +
{{ArticleBasedOnModel | Linux driver article model}}
 +
{{PublicationRequestId | 9229  | 16-10-2018 | AnneJ}}
 +
[[Category:ALSA]]
 +
</noinclude>

2020年5月7日 (四) 11:09的版本

Article purpose

This article introduces the SAI Linux® driver for the SAI internal peripheral.

Short Description

The SAI[1] Linux driver is an ASoC CPU DAI driver implemented in the Linux ALSA framework.

Configuration

Kernel Configuration

Activate the SAI[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 SAI interface (Serial Audio Interface) support

Device tree

Refer to the SAI device tree configuration article when configuring the SAI Linux kernel driver.

How to use

The SAI 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.

How to trace and debug

The 调试文件系统(debugfs) and procfs file system can be checked to get information on the SAI 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:
$ cat /sys/kernel/debug/regmap/xxx.audio-controller/registers
  • procfs entries:
$ cat /proc/interrupts

Source code location

The STM32 SAI peripheral includes two independent audio subblocks that share common resources. The driver source code reflects this architecture.

sound/soc/stm/stm32_sai.c| |}} sound/soc/stm/stm32_sai.c : handles common resources such as clock, interrupt, reset and shared register.

sound/soc/stm/stm32_sai_sub.c| |}} sound/soc/stm/stm32_sai_sub.c : handles the resources dedicated to each subblock.

References


<securetransclude src="ProtectedTemplate:ArticleBasedOnModel" params="Linux driver article model"></securetransclude> <securetransclude src="ProtectedTemplate:PublicationRequestId" params="9229 | 16-10-2018 | AnneJ"></securetransclude>