1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
From 43f0013d9050a0011c05370c9b6123eb059f235b Mon Sep 17 00:00:00 2001
From: b-ak <anur.bhargav@gmail.com>
Date: Thu, 3 Jan 2019 00:29:14 +0530
Subject: [PATCH 303/703] BCM270X: Adding device tree support for AudioSense-Pi
add-on soundcard
Device tree overlay for AudioSense-Pi card.
To enable support for the hardware add the following
line to the RPi /boot/config.txt:
dtoverlay=audiosense-pi
More documentation @ arch/arm/boot/dts/overlays/README
Signed-off-by: b-ak <anur.bhargav@gmail.com>
---
arch/arm/boot/dts/overlays/Makefile | 1 +
arch/arm/boot/dts/overlays/README | 8 ++
.../dts/overlays/audiosense-pi-overlay.dts | 82 +++++++++++++++++++
3 files changed, 91 insertions(+)
create mode 100644 arch/arm/boot/dts/overlays/audiosense-pi-overlay.dts
--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -20,6 +20,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
audioinjector-addons.dtbo \
audioinjector-ultra.dtbo \
audioinjector-wm8731-audio.dtbo \
+ audiosense-pi.dtbo \
audremap.dtbo \
balena-fin.dtbo \
bmp085_i2c-sensor.dtbo \
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -453,6 +453,14 @@ Load: dtoverlay=audioinjector-wm8731-a
Params: <None>
+Name: audiosense-pi
+Info: Configures the audiosense-pi add on soundcard
+ For more information refer to
+ https://gitlab.com/kakar0t/audiosense-pi
+Load: dtoverlay=audiosense-pi
+Params: <None>
+
+
Name: audremap
Info: Switches PWM sound output to pins 12 (Right) & 13 (Left)
Load: dtoverlay=audremap,<param>=<val>
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/audiosense-pi-overlay.dts
@@ -0,0 +1,82 @@
+// Definitions for audiosense add on soundcard
+/dts-v1/;
+/plugin/;
+#include <dt-bindings/pinctrl/bcm2835.h>
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+ compatible = "brcm,bcm2837", "brcm,bcm2836", "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
+
+ fragment@0 {
+ target = <&i2s>;
+ __overlay__ {
+ status = "okay";
+ };
+ };
+
+ fragment@1 {
+ target-path = "/";
+ __overlay__ {
+ codec_reg_1v8: codec-reg-1v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "tlv320aic3204_1v8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ };
+ };
+ };
+
+ fragment@2 {
+ target = <&gpio>;
+ __overlay__ {
+ codec_rst: codec-rst {
+ brcm,pins = <26>;
+ brcm,function = <BCM2835_FSEL_GPIO_OUT>;
+ };
+ };
+ };
+
+ fragment@3 {
+ target = <&i2c1>;
+ __overlay__ {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ /* audio external oscillator */
+ codec_osc: codec_osc {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <12000000>; /* 12 MHz */
+ };
+
+ codec: tlv320aic32x4@18 {
+ #sound-dai-cells = <0>;
+ compatible = "ti,tlv320aic32x4";
+ reg = <0x18>;
+
+ clocks = <&codec_osc>;
+ clock-names = "mclk";
+
+ iov-supply = <&vdd_3v3_reg>;
+ ldoin-supply = <&vdd_3v3_reg>;
+
+ gpio-controller;
+ #gpio-cells = <2>;
+ reset-gpios = <&gpio 26 GPIO_ACTIVE_HIGH>;
+
+ status = "okay";
+ };
+ };
+ };
+
+ fragment@4 {
+ target = <&sound>;
+ __overlay__ {
+ compatible = "as,audiosense-pi";
+ i2s-controller = <&i2s>;
+ status = "okay";
+ };
+ };
+};
|