mbox series

[v3,0/3] Add Loongson I2S controller support

Message ID 20230614121837.3402734-1-mengyingkun@loongson.cn (mailing list archive)
Headers show
Series Add Loongson I2S controller support | expand

Message

Yingkun Meng June 14, 2023, 12:18 p.m. UTC
Hi all,

This patchset adds support for Loongson I2S controller, and
introduce a ASoC machine driver for loongson platform.

The Loongson I2S controller is available on Loongson
7a2000/2k2000 chips, works as a PCI device. It has two
private DMA controllers used to playback and capture.
Each DMA controller has one channel.

The ASoC machine driver adds support for audio device which
using loongson I2S controller to tranfser the audio data.
The audio device uses "PRP0001" as its ACPI device ID, which
provides a means to use the existing DT-compatible device
identification in ACPI.


Thanks.

---
Changes v2 -> v3
  - Patch 1
    Split the driver into PCI driver and component driver.
    Move interrupt requesting from pcm_open to pcm_create.
    Use pcim_xxx() API to get iomap of I2S register.
    Add condition checking for the number of periods.
    Add set_fmt() callback for DAI ops.
    Add volatile registers for regmap of I2S.
    Remove redundant condition checking.
    Update comment style.

  - Patch 2
    Remove redundant SoC DAI link.
    Update comment style.

  - Patch 3
    No change.


Changes v1 -> v2
  - Patch 1
    Replace pci_xxx() APIs with pcim_xxx() APIs.
    Fix build errors from lkp@intel.com.
    Minor changes in log printing.

  - Patch 2
    Use ACPI bindings to reference I2S and codec nodes.
    
  - Patch 3
    Add chip model restriction for title and description.
    Add 'required' option for sound-dai property.

Yingkun Meng (3):
  ASoC: Add support for Loongson I2S controller
  ASoC: loongson: Add Loongson ASoC Sound Card Support
  ASoC: dt-bindings: Add support for Loongson audio card

 .../sound/loongson,ls-audio-card.yaml         |  70 ++++
 sound/soc/Kconfig                             |   1 +
 sound/soc/Makefile                            |   1 +
 sound/soc/loongson/Kconfig                    |  26 ++
 sound/soc/loongson/Makefile                   |   8 +
 sound/soc/loongson/loongson_card.c            | 230 ++++++++++++
 sound/soc/loongson/loongson_dma.c             | 350 ++++++++++++++++++
 sound/soc/loongson/loongson_dma.h             |  16 +
 sound/soc/loongson/loongson_i2s.c             | 269 ++++++++++++++
 sound/soc/loongson/loongson_i2s.h             |  71 ++++
 sound/soc/loongson/loongson_i2s_pci.c         | 171 +++++++++
 11 files changed, 1213 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/sound/loongson,ls-audio-card.yaml
 create mode 100644 sound/soc/loongson/Kconfig
 create mode 100644 sound/soc/loongson/Makefile
 create mode 100644 sound/soc/loongson/loongson_card.c
 create mode 100644 sound/soc/loongson/loongson_dma.c
 create mode 100644 sound/soc/loongson/loongson_dma.h
 create mode 100644 sound/soc/loongson/loongson_i2s.c
 create mode 100644 sound/soc/loongson/loongson_i2s.h
 create mode 100644 sound/soc/loongson/loongson_i2s_pci.c


base-commit: a11e6515b019da62266b731ff20bc6863f00df4d