overlays: Add overlay for Chipdip I2S master DAC
authorchipdip.lab <43340836+chipdipru@users.noreply.github.com>
Fri, 9 Jul 2021 13:00:22 +0000 (16:00 +0300)
committerGitHub <noreply@github.com>
Fri, 9 Jul 2021 13:00:22 +0000 (14:00 +0100)
Signed-off-by: Evgenij Sapunov <evgenij.sapunov@chipdip.ru>
arch/arm/boot/dts/overlays/Makefile
arch/arm/boot/dts/overlays/README
arch/arm/boot/dts/overlays/chipdip-i2s-master-dac-overlay.dts [new file with mode: 0644]

index 05657a7..59cdd1e 100644 (file)
@@ -30,6 +30,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
        audiosense-pi.dtbo \
        audremap.dtbo \
        balena-fin.dtbo \
+       chipdip-i2s-master-dac.dtbo \
        cma.dtbo \
        dht11.dtbo \
        dionaudio-loco.dtbo \
index 625ad9c..2fc6131 100644 (file)
@@ -622,6 +622,12 @@ Info:   This overlay is now deprecated - see i2c-sensor
 Load:   <Deprecated>
 
 
+Name:   chipdip-i2s-master-dac
+Info:   Configures Raspberry PI to work as I2S slave with BCLK=64Fs.
+Load:   dtoverlay=chipdip-i2s-master-dac
+Params: <None>
+
+
 Name:   cma
 Info:   Set custom CMA sizes, only use if you know what you are doing, might
         clash with other overlays like vc4-fkms-v3d and vc4-kms-v3d.
diff --git a/arch/arm/boot/dts/overlays/chipdip-i2s-master-dac-overlay.dts b/arch/arm/boot/dts/overlays/chipdip-i2s-master-dac-overlay.dts
new file mode 100644 (file)
index 0000000..a35ac36
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * Device Tree overlay for ChipDip I2S master DAC
+ */
+
+/dts-v1/;
+/plugin/;
+
+/ {
+    compatible = "brcm,bcm2835";
+    fragment@0 {
+        target = <&sound>;
+        __overlay__ {
+            compatible = "simple-audio-card";
+            simple-audio-card,name = "ChipDip I2S master DAC";
+            status="okay";
+            playback_link: simple-audio-card,dai-link@0 {
+                format = "i2s";
+               bitclock-master = <&p_codec_dai>;
+                frame-master = <&p_codec_dai>;
+                p_cpu_dai: cpu {
+                        sound-dai = <&i2s>;
+                       dai-tdm-slot-num = <2>;
+                       dai-tdm-slot-width = <32>;
+                               };
+
+                p_codec_dai: codec {
+                        sound-dai = <&codec_out>;
+                };
+            };
+        };
+    }; 
+
+    fragment@1 {
+        target-path = "/";
+        __overlay__ {
+            codec_out: spdif-transmitter {
+                #address-cells = <0>;
+                #size-cells = <0>;
+                #sound-dai-cells = <0>;
+                compatible = "linux,spdif-dit";
+                status = "okay";
+            };
+        };
+    };
+    fragment@2 {
+        target = <&i2s>;
+        __overlay__ {
+            #sound-dai-cells = <0>;
+            status = "okay";
+        };
+    };
+};