]> git.ipfire.org Git - thirdparty/openwrt.git/blob
8fbde277ef7cf64e3dbf29b21ed2a91c838e1d7c
[thirdparty/openwrt.git] /
1 From 209e8a3e6646f25abb352fd5a8a4c2e855b1e952 Mon Sep 17 00:00:00 2001
2 From: Adrian Figueroa <elagil@takanome.de>
3 Date: Wed, 14 Aug 2024 20:00:12 +0200
4 Subject: [PATCH 1219/1350] overlays: add overlay for generic I2S clock-master
5 DAC
6
7 Adds an overlay for supporting a generic I2S DAC that
8 acts as the clock master on the bus.
9 The data format is 32 bit stereo.
10
11 Signed-off-by: Adrian Figueroa <elagil@takanome.de>
12 ---
13 arch/arm/boot/dts/overlays/Makefile | 1 +
14 arch/arm/boot/dts/overlays/README | 6 +++
15 .../dts/overlays/i2s-master-dac-overlay.dts | 50 +++++++++++++++++++
16 3 files changed, 57 insertions(+)
17 create mode 100644 arch/arm/boot/dts/overlays/i2s-master-dac-overlay.dts
18
19 --- a/arch/arm/boot/dts/overlays/Makefile
20 +++ b/arch/arm/boot/dts/overlays/Makefile
21 @@ -125,6 +125,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
22 i2c6.dtbo \
23 i2s-dac.dtbo \
24 i2s-gpio28-31.dtbo \
25 + i2s-master-dac.dtbo \
26 ilitek251x.dtbo \
27 imx219.dtbo \
28 imx258.dtbo \
29 --- a/arch/arm/boot/dts/overlays/README
30 +++ b/arch/arm/boot/dts/overlays/README
31 @@ -2633,6 +2633,12 @@ Load: dtoverlay=i2s-gpio28-31
32 Params: <None>
33
34
35 +Name: i2s-master-dac
36 +Info: Configures a generic I2S DAC soundcard that acts as a clock master.
37 +Load: dtoverlay=i2s-master-dac
38 +Params: <None>
39 +
40 +
41 Name: ilitek251x
42 Info: Enables I2C connected Ilitek 251x multiple touch controller using
43 GPIO 4 (pin 7 on GPIO header) for interrupt.
44 --- /dev/null
45 +++ b/arch/arm/boot/dts/overlays/i2s-master-dac-overlay.dts
46 @@ -0,0 +1,50 @@
47 +// Definitions for a generic I2S DAC that acts as clock master on the bus.
48 +/dts-v1/;
49 +/plugin/;
50 +
51 +/ {
52 + compatible = "brcm,bcm2835";
53 +
54 + fragment@0 {
55 + target = <&i2s_clk_consumer>;
56 + __overlay__ {
57 + status = "okay";
58 + };
59 + };
60 +
61 + fragment@1 {
62 + target-path = "/";
63 + __overlay__ {
64 + codec_bare: codec_bare {
65 + compatible = "linux,spdif-dit";
66 + #sound-dai-cells = <0>;
67 + status = "okay";
68 + };
69 + };
70 + };
71 +
72 + fragment@2 {
73 + target = <&sound>;
74 + __overlay__ {
75 + compatible = "simple-audio-card";
76 + i2s-controller = <&i2s_clk_consumer>;
77 + status = "okay";
78 +
79 + simple-audio-card,name = "i2s-master-dac";
80 + simple-audio-card,format = "i2s";
81 +
82 + simple-audio-card,bitclock-master = <&snd_codec>;
83 + simple-audio-card,frame-master = <&snd_codec>;
84 +
85 + simple-audio-card,cpu {
86 + sound-dai = <&i2s_clk_consumer>;
87 + dai-tdm-slot-num = <2>;
88 + dai-tdm-slot-width = <32>;
89 + };
90 +
91 + snd_codec: simple-audio-card,codec {
92 + sound-dai = <&codec_bare>;
93 + };
94 + };
95 + };
96 +};