Difference between revisions of "I2S Linux driver"
[quality revision] | [quality revision] |
(Created page with "<noinclude> {{ArticleBasedOnModel | Linux driver article model}} {{ArticleMainWriter | OlivierM}} {{ArticleApprovedVersion | Jean-ChristopheT | Nobody | No previous approv...")
|
imported>Frq08988
m
|
Template:ArticleMainWriter Template:ArticleApprovedVersion
![]() |
Coming soon |
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.
7 References[edit]
<noinclude> {{ArticleBasedOnModel | [[Linux driver article model]]}} {{ArticleMainWriter | OlivierM}} {{ArticleApprovedVersion | Jean-ChristopheT | Nobody OlivierM | ArnaudP(Pass, 14/01/2019) | No previous approved version | Automatic approval (article under construction) | 28Jan’19}} [[Category:ALSA]]</noinclude> {{UnderConstruction}}BrunoB - 29Jan'19 - 10338 | 29Jan'19}} [[Category:ALSA]]</noinclude> == Article purpose == This article introduces the I2S Linux<sup>®</sup> driver for the [[SPI internal peripheral|SPI/I2S internal peripheral]]. == Short Description == The I2S Linux driver is an ASoC CPU DAI driver implemented in the Linux [[ALSA_overview|ALSA framework]]. == Configuration == === Kernel Configuration === Activate the I2S 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 I2S interface (SPI/I2S block) support</pre> === Device tree === Refer to the I2S device tree configuration article when configuring the I2S Linux kernel driver. {{ReviewsComments| olivierM w902: Device tree configuration to be detailed in specific article}} == How to use == The I2S 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 I2S 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 SPI/I2S 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 == {{CodeSource | Linux kernel | sound/soc/stm/stm32_i2s.c}}: implements the I2S Linux driver. ==References==<references />
Line 2: | Line 2: | ||
{{ArticleBasedOnModel | [[Linux driver article model]]}} |
{{ArticleBasedOnModel | [[Linux driver article model]]}} |
||
{{ArticleMainWriter | OlivierM}} |
{{ArticleMainWriter | OlivierM}} |
||
− | {{ArticleApprovedVersion | |
+ | {{ArticleApprovedVersion | OlivierM | ArnaudP(Pass, 14/01/2019) | No previous approved version | BrunoB - 29Jan'19 - 10338 | 29Jan'19}} |
[[Category:ALSA]] |
[[Category:ALSA]] |
||
</noinclude> |
</noinclude> |
||
− | {{ |
+ | |
+ | == Article purpose == |
||
+ | This article introduces the I2S Linux<sup>®</sup> driver for the [[SPI internal peripheral|SPI/I2S internal peripheral]]. |
||
+ | |||
+ | == Short Description == |
||
+ | The I2S Linux driver is an ASoC CPU DAI driver implemented in the Linux [[ALSA_overview|ALSA framework]]. |
||
+ | |||
+ | == Configuration == |
||
+ | |||
+ | === Kernel Configuration === |
||
+ | Activate the I2S 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 I2S interface (SPI/I2S block) support |
||
+ | </pre> |
||
+ | |||
+ | === Device tree === |
||
+ | Refer to the I2S device tree configuration article when configuring the I2S Linux kernel driver. |
||
+ | |||
+ | {{ReviewsComments| olivierM w902: Device tree configuration to be detailed in specific article}} |
||
+ | |||
+ | == How to use == |
||
+ | The I2S 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 I2S 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 SPI/I2S 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 == |
||
+ | {{CodeSource | Linux kernel | sound/soc/stm/stm32_i2s.c}}: implements the I2S Linux driver. |
||
+ | |||
+ | ==References== |
||
+ | <references /> |