mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-28 09:39:00 +00:00
19226502bf
Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
131 lines
3.5 KiB
Diff
131 lines
3.5 KiB
Diff
From 8a063d9d7c86075dbae91ef353540ab7724cce35 Mon Sep 17 00:00:00 2001
|
|
From: wavelet2 <20504977+wavelet2@users.noreply.github.com>
|
|
Date: Mon, 15 Apr 2019 10:00:20 +0100
|
|
Subject: [PATCH 428/725] Maxim MAX98357A I2S DAC overlay (#2935)
|
|
|
|
Add overlay for Maxim MAX98357A I2S DAC.
|
|
|
|
Signed-off-by: Richard Steedman <richard.steedman@gmail.com>
|
|
---
|
|
arch/arm/boot/dts/overlays/Makefile | 1 +
|
|
arch/arm/boot/dts/overlays/README | 9 ++
|
|
.../boot/dts/overlays/max98357a-overlay.dts | 84 +++++++++++++++++++
|
|
3 files changed, 94 insertions(+)
|
|
create mode 100644 arch/arm/boot/dts/overlays/max98357a-overlay.dts
|
|
|
|
--- a/arch/arm/boot/dts/overlays/Makefile
|
|
+++ b/arch/arm/boot/dts/overlays/Makefile
|
|
@@ -75,6 +75,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
|
|
justboom-dac.dtbo \
|
|
justboom-digi.dtbo \
|
|
ltc294x.dtbo \
|
|
+ max98357a.dtbo \
|
|
mbed-dac.dtbo \
|
|
mcp23017.dtbo \
|
|
mcp23s17.dtbo \
|
|
--- a/arch/arm/boot/dts/overlays/README
|
|
+++ b/arch/arm/boot/dts/overlays/README
|
|
@@ -1276,6 +1276,15 @@ Params: ltc2941 Select t
|
|
See the datasheet for more information.
|
|
|
|
|
|
+Name: max98357a
|
|
+Info: Configures the Maxim MAX98357A I2S DAC
|
|
+Load: dtoverlay=max98357a,<param>=<val>
|
|
+Params: no-sdmode Driver does not manage the state of the DAC's
|
|
+ SD_MODE pin (i.e. chip is always on).
|
|
+ sdmode-pin integer, GPIO pin connected to the SD_MODE input
|
|
+ of the DAC (default GPIO4 if parameter omitted).
|
|
+
|
|
+
|
|
Name: mbed-dac
|
|
Info: Configures the mbed AudioCODEC (TLV320AIC23B)
|
|
Load: dtoverlay=mbed-dac
|
|
--- /dev/null
|
|
+++ b/arch/arm/boot/dts/overlays/max98357a-overlay.dts
|
|
@@ -0,0 +1,84 @@
|
|
+// Overlay for Maxim MAX98357A audio DAC
|
|
+
|
|
+// dtparams:
|
|
+// no-sdmode - SD_MODE pin not managed by driver.
|
|
+// sdmode-pin - Specify GPIO pin to which SD_MODE is connected (default 4).
|
|
+
|
|
+/dts-v1/;
|
|
+/plugin/;
|
|
+
|
|
+/ {
|
|
+ compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
|
|
+
|
|
+ /* Enable I2S */
|
|
+ fragment@0 {
|
|
+ target = <&i2s>;
|
|
+ __overlay__ {
|
|
+ status = "okay";
|
|
+ };
|
|
+ };
|
|
+
|
|
+ /* DAC whose SD_MODE pin is managed by driver (via GPIO pin) */
|
|
+ fragment@1 {
|
|
+ target-path = "/";
|
|
+ __overlay__ {
|
|
+ max98357a_dac: max98357a {
|
|
+ compatible = "maxim,max98357a";
|
|
+ #sound-dai-cells = <0>;
|
|
+ sdmode-gpios = <&gpio 4 0>; /* 2nd word overwritten by sdmode-pin parameter */
|
|
+ status = "okay";
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+
|
|
+ /* DAC whose SD_MODE pin is not managed by driver */
|
|
+ fragment@2 {
|
|
+ target-path = "/";
|
|
+ __dormant__ {
|
|
+ max98357a_nsd: max98357a {
|
|
+ compatible = "maxim,max98357a";
|
|
+ #sound-dai-cells = <0>;
|
|
+ status = "okay";
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+
|
|
+ /* Soundcard connecting I2S to DAC with SD_MODE */
|
|
+ fragment@3 {
|
|
+ target = <&sound>;
|
|
+ __overlay__ {
|
|
+ compatible = "simple-audio-card";
|
|
+ simple-audio-card,format = "i2s";
|
|
+ simple-audio-card,name = "MAX98357A";
|
|
+ status = "okay";
|
|
+ simple-audio-card,cpu {
|
|
+ sound-dai = <&i2s>;
|
|
+ };
|
|
+ simple-audio-card,codec {
|
|
+ sound-dai = <&max98357a_dac>;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+
|
|
+ /* Soundcard connecting I2S to DAC without SD_MODE */
|
|
+ fragment@4 {
|
|
+ target = <&sound>;
|
|
+ __dormant__ {
|
|
+ compatible = "simple-audio-card";
|
|
+ simple-audio-card,format = "i2s";
|
|
+ simple-audio-card,name = "MAX98357A";
|
|
+ status = "okay";
|
|
+ simple-audio-card,cpu {
|
|
+ sound-dai = <&i2s>;
|
|
+ };
|
|
+ simple-audio-card,codec {
|
|
+ sound-dai = <&max98357a_nsd>;
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+
|
|
+ __overrides__ {
|
|
+ no-sdmode = <0>,"-1+2-3+4";
|
|
+ sdmode-pin = <&max98357a_dac>,"sdmode-gpios:4";
|
|
+ };
|
|
+};
|