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

来自百问网嵌入式Linux wiki
 
(未显示同一用户的3个中间版本)
第22行: 第22行:
  
 
== How to use ==
 
== 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.
+
可以通过ALSA设备从用户域访问SAI Linux驱动程序。有关如何列出和使用ALSA设备的信息,请参考[[ALSA_overview#How_to_use|ALSA overview]]
  
 
==How to trace and debug==
 
==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|debugfs]] 和procfs文件系统以获取有关SAI驱动程序及其使用的资源的信息。 下面提供了这些文件系统条目的详尽列表。 有关调试工具的更多详细信息,请参见[[ALSA_overview#How_to_trace_and_debug_the_framework|ALSA overview]]
  
* debugfs entries:
+
* debugfs条目:
:* '''asoc''': refer to [[ALSA_overview#How_to_monitor]]
+
:* '''asoc''': 请参阅 [[ALSA_overview#How_to_monitor]]
:* '''clk''': refer to [[Clock_overview#How_to_monitor_with_debugfs]] to get information on clocks.
+
:* '''clk''': 请参阅 [[Clock_overview#How_to_monitor_with_debugfs]] 以获取有关时钟的信息。
:* '''pinctrl''': refer to [[Pinctrl_overview#How_to_monitor]] to get information on pins.
+
:* '''pinctrl''': 请参阅 [[Pinctrl_overview#How_to_monitor]] 以获取有关PIN的信息。
:* '''regmap''': allow to monitor SAI peripheral registers.
+
:* '''regmap''': 允许监视SAI外设寄存器。
 
<div style="margin-left: 2em;">
 
<div style="margin-left: 2em;">
 
  $ cat /sys/kernel/debug/regmap/xxx.audio-controller/registers
 
  $ cat /sys/kernel/debug/regmap/xxx.audio-controller/registers
 
</div>
 
</div>
* procfs entries:
+
* procfs条目:
:* '''asound''': refer to [[ALSA_overview#How_to_debug]]
+
:* '''asound''': 请参阅 [[ALSA_overview#How_to_debug]]
:* '''interrupts''': allow to check interrupts.
+
:* '''interrupts''': 允许检查中断。
 
<div style="margin-left: 2em;">
 
<div style="margin-left: 2em;">
 
  $ cat /proc/interrupts
 
  $ cat /proc/interrupts
第43行: 第43行:
  
 
== Source code location ==
 
== Source code location ==
The STM32 SAI peripheral includes two independent audio subblocks that share common resources. The driver source code reflects this architecture.
+
STM32 SAI外围设备包括两个共享公共资源的独立音频子块。 驱动程序源代码反映了该体系结构
  
{{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.c}}: 处理常见的资源,例如时钟,中断,复位和共享寄存器。
  
{{CodeSource | Linux kernel | sound/soc/stm/stm32_sai_sub.c}}: handles the resources dedicated to each subblock.
+
{{CodeSource | Linux kernel | sound/soc/stm/stm32_sai_sub.c}}: 处理专用于每个子块的资源。
  
 
==References==
 
==References==
 
<references />
 
<references />

2020年11月5日 (四) 16:08的最新版本

Article purpose

本文介绍了适用于SAI internal peripheral的SAI Linux® 驱动程序。

Short Description

SAI[1] Linux驱动程序是在Linux ALSA framework中实现的ASoC CPU DAI驱动程序。

Configuration

Kernel Configuration

使用Linux Menuconfig工具在内核配置中激活SAI [1] Linux驱动程序: 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

配置SAI Linux内核驱动时,请参考SAI device tree configuration 文章。

How to use

可以通过ALSA设备从用户域访问SAI Linux驱动程序。有关如何列出和使用ALSA设备的信息,请参考ALSA overview

How to trace and debug

可以检查调试文件系统(debugfs) 和procfs文件系统以获取有关SAI驱动程序及其使用的资源的信息。 下面提供了这些文件系统条目的详尽列表。 有关调试工具的更多详细信息,请参见ALSA overview

  • debugfs条目:
$ cat /sys/kernel/debug/regmap/xxx.audio-controller/registers
  • procfs条目:
$ cat /proc/interrupts

Source code location

STM32 SAI外围设备包括两个共享公共资源的独立音频子块。 驱动程序源代码反映了该体系结构

sound/soc/stm/stm32_sai.c| |}} sound/soc/stm/stm32_sai.c : 处理常见的资源,例如时钟,中断,复位和共享寄存器。

sound/soc/stm/stm32_sai_sub.c| |}} sound/soc/stm/stm32_sai_sub.c : 处理专用于每个子块的资源。