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

Under construction.png Coming soon


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:
$ cat /sys/kernel/debug/regmap/xxx.audio-controller/registers

  • procfs entries:
$ 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>&reg;</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 | Jean-ChristopheT | Nobody | No previous approved version | Automatic approval (article under construction) | 28Jan’19}}
+
{{ArticleApprovedVersion | OlivierM | ArnaudP(Pass, 14/01/2019) | No previous approved version | BrunoB - 29Jan'19 - 10338 | 29Jan'19}}
 
[[Category:ALSA]]
 
[[Category:ALSA]]
 
</noinclude>
 
</noinclude>
{{UnderConstruction}}
+
 
  +
== Article purpose ==
  +
This article introduces the I2S Linux<sup>&reg;</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 />