OpenWrt – Rev 1

Subversion Repositories:
Rev:
From e4981de3c02a5d73085ba036be4e104a6b034791 Mon Sep 17 00:00:00 2001
From: Matt Flax <flatmax@flatmax.org>
Date: Tue, 28 Aug 2018 18:42:13 +1000
Subject: [PATCH 411/454] Add support for audioinjector.net ultra soundcard.
 (#2664)

Uses the simple-audio-card ALSA machine driver. Sets up the machine
driver in the device tree overlay file. The overlays/Makefile is
altered to add the audioinjector-ultra.dtbo dtb overlay.

Adds CONFIG_SND_SOC_CS4265 to the defconfig files.

Signed-off-by: Matt Flax <flatmax@flatmax.org>
---
 arch/arm/boot/dts/overlays/Makefile           |  1 +
 arch/arm/boot/dts/overlays/README             |  6 ++
 .../overlays/audioinjector-ultra-overlay.dts  | 71 +++++++++++++++++++
 arch/arm/configs/bcm2709_defconfig            |  1 +
 arch/arm/configs/bcmrpi_defconfig             |  1 +
 5 files changed, 80 insertions(+)
 create mode 100644 arch/arm/boot/dts/overlays/audioinjector-ultra-overlay.dts

--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -17,6 +17,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
        applepi-dac.dtbo \
        at86rf233.dtbo \
        audioinjector-addons.dtbo \
+       audioinjector-ultra.dtbo \
        audioinjector-wm8731-audio.dtbo \
        audremap.dtbo \
        balena-fin.dtbo \
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -411,6 +411,12 @@ Params: non-stop-clocks         Keeps th
                                 is paused or stopped (default off)
 
 
+Name:   audioinjector-ultra
+Info:   Configures the audioinjector.net ultra soundcard
+Load:   dtoverlay=audioinjector-ultra
+Params: <None>
+
+
 Name:   audioinjector-wm8731-audio
 Info:   Configures the audioinjector.net audio add on soundcard
 Load:   dtoverlay=audioinjector-wm8731-audio
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/audioinjector-ultra-overlay.dts
@@ -0,0 +1,71 @@
+// Definitions for audioinjector.net audio add on soundcard
+/dts-v1/;
+/plugin/;
+
+/ {
+       compatible = "brcm,bcm2708";
+
+       fragment@0 {
+               target = <&i2s>;
+               __overlay__ {
+                       status = "okay";
+               };
+       };
+
+       fragment@1 {
+               target = <&i2c1>;
+               __overlay__ {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "okay";
+
+                       cs4265: cs4265@4e {
+                               #sound-dai-cells = <0>;
+                               compatible = "cirrus,cs4265";
+                               reg = <0x4e>;
+                               reset-gpios = <&gpio 5 0>;
+                               status = "okay";
+                       };
+               };
+       };
+
+       fragment@2 {
+               target = <&sound>;
+               __overlay__ {
+                       compatible = "simple-audio-card";
+                       i2s-controller = <&i2s>;
+                       status = "okay";
+
+                       simple-audio-card,name = "audioinjector-ultra";
+
+                       simple-audio-card,widgets =
+                               "Line", "OUTPUTS",
+                               "Line", "INPUTS";
+
+                       simple-audio-card,routing =
+                               "OUTPUTS","LINEOUTL",
+                               "OUTPUTS","LINEOUTR",
+                               "OUTPUTS","SPDIFOUT",
+                               "LINEINL","INPUTS",
+                               "LINEINR","INPUTS",
+                               "MICL","INPUTS",
+                               "MICR","INPUTS";
+
+                       simple-audio-card,format = "i2s";
+
+                       simple-audio-card,bitclock-master = <&sound_master>;
+                       simple-audio-card,frame-master = <&sound_master>;
+
+                       simple-audio-card,cpu {
+                               sound-dai = <&i2s>;
+                               dai-tdm-slot-num = <2>;
+                               dai-tdm-slot-width = <32>;
+                       };
+
+                       sound_master: simple-audio-card,codec {
+                               sound-dai = <&cs4265>;
+                               system-clock-frequency = <12288000>;
+                       };
+               };
+       };
+};
--- a/arch/arm/configs/bcm2709_defconfig
+++ b/arch/arm/configs/bcm2709_defconfig
@@ -917,6 +917,7 @@ CONFIG_SND_SOC_AK4554=m
 CONFIG_SND_SOC_CS4271_I2C=m
 CONFIG_SND_SOC_SPDIF=m
 CONFIG_SND_SOC_WM8804_I2C=m
+CONFIG_SND_SOC_CS4265=m
 CONFIG_SND_SIMPLE_CARD=m
 CONFIG_HID_BATTERY_STRENGTH=y
 CONFIG_HIDRAW=y
--- a/arch/arm/configs/bcmrpi_defconfig
+++ b/arch/arm/configs/bcmrpi_defconfig
@@ -910,6 +910,7 @@ CONFIG_SND_SOC_AK4554=m
 CONFIG_SND_SOC_CS4271_I2C=m
 CONFIG_SND_SOC_SPDIF=m
 CONFIG_SND_SOC_WM8804_I2C=m
+CONFIG_SND_SOC_CS4265=m
 CONFIG_SND_SIMPLE_CARD=m
 CONFIG_HID_BATTERY_STRENGTH=y
 CONFIG_HIDRAW=y