Skip to content

Commit 4235c80

Browse files
committed
Add audio support for LPC32XX CPUs
Merge series from Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>: This pach set is to bring back audio to machines with a LPC32XX CPU. The legacy LPC32XX SoC used to have audio spport in linux 2.6.27. The support was dropped due to lack of interest from mainaeners.
2 parents 730674b + 0959de6 commit 4235c80

File tree

7 files changed

+618
-0
lines changed

7 files changed

+618
-0
lines changed
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/sound/nxp,lpc3220-i2s.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: NXP LPC32XX I2S Controller
8+
9+
description:
10+
The I2S controller in LPC32XX SoCs, ASoC DAI.
11+
12+
maintainers:
13+
- J.M.B. Downing <jonathan.downing@nautel.com>
14+
- Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
15+
16+
allOf:
17+
- $ref: dai-common.yaml#
18+
19+
properties:
20+
compatible:
21+
enum:
22+
- nxp,lpc3220-i2s
23+
24+
reg:
25+
maxItems: 1
26+
27+
interrupts:
28+
maxItems: 1
29+
30+
clocks:
31+
items:
32+
- description: input clock of the peripheral.
33+
34+
dmas:
35+
items:
36+
- description: RX DMA Channel
37+
- description: TX DMA Channel
38+
39+
dma-names:
40+
items:
41+
- const: rx
42+
- const: tx
43+
44+
"#sound-dai-cells":
45+
const: 0
46+
47+
required:
48+
- compatible
49+
- reg
50+
- interrupts
51+
- clocks
52+
- dmas
53+
- dma-names
54+
- '#sound-dai-cells'
55+
56+
additionalProperties: false
57+
58+
examples:
59+
- |
60+
#include <dt-bindings/clock/lpc32xx-clock.h>
61+
#include <dt-bindings/interrupt-controller/irq.h>
62+
63+
i2s@20094000 {
64+
compatible = "nxp,lpc3220-i2s";
65+
reg = <0x20094000 0x1000>;
66+
interrupts = <22 IRQ_TYPE_LEVEL_HIGH>;
67+
clocks = <&clk LPC32XX_CLK_I2S0>;
68+
dmas = <&dma 0 1>, <&dma 13 1>;
69+
dma-names = "rx", "tx";
70+
#sound-dai-cells = <0>;
71+
};
72+
73+
...

MAINTAINERS

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8909,6 +8909,16 @@ S: Maintained
89098909
F: sound/soc/fsl/fsl*
89108910
F: sound/soc/fsl/imx*
89118911

8912+
FREESCALE SOC LPC32XX SOUND DRIVERS
8913+
M: J.M.B. Downing <jonathan.downing@nautel.com>
8914+
M: Piotr Wojtaszczyk <piotr.wojtaszczyk@timesys.com>
8915+
R: Vladimir Zapolskiy <vz@mleia.com>
8916+
L: alsa-devel@alsa-project.org (moderated for non-subscribers)
8917+
L: linuxppc-dev@lists.ozlabs.org
8918+
S: Maintained
8919+
F: Documentation/devicetree/bindings/sound/nxp,lpc3220-i2s.yaml
8920+
F: sound/soc/fsl/lpc3xxx-*
8921+
89128922
FREESCALE SOC SOUND QMC DRIVER
89138923
M: Herve Codina <herve.codina@bootlin.com>
89148924
L: alsa-devel@alsa-project.org (moderated for non-subscribers)

sound/soc/fsl/Kconfig

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,13 @@ config SND_SOC_FSL_RPMSG
131131
This option is only useful for out-of-tree drivers since
132132
in-tree drivers select it automatically.
133133

134+
config SND_SOC_FSL_LPC3XXX
135+
tristate "SoC Audio for NXP LPC32XX CPUs"
136+
depends on ARCH_LPC32XX || COMPILE_TEST
137+
select SND_SOC_GENERIC_DMAENGINE_PCM
138+
help
139+
Say Y or M if you want to add support for the LPC3XXX I2S interface.
140+
134141
config SND_SOC_IMX_PCM_DMA
135142
tristate
136143
select SND_SOC_GENERIC_DMAENGINE_PCM

sound/soc/fsl/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ obj-$(CONFIG_SND_SOC_P1022_RDK) += snd-soc-p1022-rdk.o
1111
snd-soc-fsl-audmix-y := fsl_audmix.o
1212
snd-soc-fsl-asoc-card-y := fsl-asoc-card.o
1313
snd-soc-fsl-asrc-y := fsl_asrc.o fsl_asrc_dma.o
14+
snd-soc-fsl-lpc3xxx-y := lpc3xxx-pcm.o lpc3xxx-i2s.o
1415
snd-soc-fsl-sai-y := fsl_sai.o
1516
snd-soc-fsl-ssi-y := fsl_ssi.o
1617
snd-soc-fsl-ssi-$(CONFIG_DEBUG_FS) += fsl_ssi_dbg.o
@@ -29,6 +30,7 @@ snd-soc-fsl-qmc-audio-y := fsl_qmc_audio.o
2930
obj-$(CONFIG_SND_SOC_FSL_AUDMIX) += snd-soc-fsl-audmix.o
3031
obj-$(CONFIG_SND_SOC_FSL_ASOC_CARD) += snd-soc-fsl-asoc-card.o
3132
obj-$(CONFIG_SND_SOC_FSL_ASRC) += snd-soc-fsl-asrc.o
33+
obj-$(CONFIG_SND_SOC_FSL_LPC3XXX) += snd-soc-fsl-lpc3xxx.o
3234
obj-$(CONFIG_SND_SOC_FSL_SAI) += snd-soc-fsl-sai.o
3335
obj-$(CONFIG_SND_SOC_FSL_SSI) += snd-soc-fsl-ssi.o
3436
obj-$(CONFIG_SND_SOC_FSL_SPDIF) += snd-soc-fsl-spdif.o

0 commit comments

Comments
 (0)