Commit | Line | Data |
---|---|---|
6ed1d799 AF |
1 | /* |
2 | * Copyright (C) 2018 Logic PD, Inc - http://www.logicpd.com/ | |
3 | * | |
4 | * This program is free software; you can redistribute it and/or modify | |
5 | * it under the terms of the GNU General Public License version 2 as | |
6 | * published by the Free Software Foundation. | |
7 | */ | |
8 | ||
9 | #include <dt-bindings/input/input.h> | |
10 | ||
11 | / { | |
12 | codec1 { | |
13 | compatible = "simple-audio-card"; | |
14 | simple-audio-card,name = "tlv320aic23-hifi"; | |
15 | ||
16 | simple-audio-card,widgets = | |
17 | "Microphone", "Mic In", | |
18 | "Line", "Line In", | |
19 | "Line", "Line Out"; | |
20 | ||
21 | simple-audio-card,routing = | |
22 | "Line Out", "LOUT", | |
23 | "Line Out", "ROUT", | |
24 | "LLINEIN", "Line In", | |
25 | "RLINEIN", "Line In", | |
26 | "MICIN", "Mic In"; | |
27 | ||
28 | simple-audio-card,format = "i2s"; | |
29 | simple-audio-card,bitclock-master = <&sound_master>; | |
30 | simple-audio-card,frame-master = <&sound_master>; | |
31 | ||
32 | simple-audio-card,cpu { | |
33 | sound-dai = <&mcbsp1>; | |
34 | }; | |
35 | ||
36 | sound_master: simple-audio-card,codec { | |
37 | sound-dai = <&tlv320aic23_1>; | |
38 | system-clock-frequency = <12000000>; | |
39 | }; | |
40 | }; | |
41 | ||
42 | codec2 { | |
43 | compatible = "simple-audio-card"; | |
44 | simple-audio-card,name = "tlv320aic23-hifi"; | |
45 | ||
46 | simple-audio-card,widgets = | |
47 | "Microphone", "Mic In", | |
48 | "Line", "Line In", | |
49 | "Line", "Line Out"; | |
50 | ||
51 | simple-audio-card,routing = | |
52 | "Line Out", "LOUT", | |
53 | "Line Out", "ROUT", | |
54 | "LLINEIN", "Line In", | |
55 | "RLINEIN", "Line In", | |
56 | "MICIN", "Mic In"; | |
57 | ||
58 | simple-audio-card,format = "i2s"; | |
59 | simple-audio-card,bitclock-master = <&sound_master2>; | |
60 | simple-audio-card,frame-master = <&sound_master2>; | |
61 | ||
62 | simple-audio-card,cpu { | |
63 | sound-dai = <&mcbsp2>; | |
64 | }; | |
65 | ||
66 | sound_master2: simple-audio-card,codec { | |
67 | sound-dai = <&tlv320aic23_2>; | |
68 | system-clock-frequency = <12000000>; | |
69 | }; | |
70 | }; | |
71 | ||
72 | expander-keys { | |
73 | compatible = "gpio-keys-polled"; | |
74 | poll-interval = <100>; | |
75 | ||
76 | record { | |
77 | label = "Record"; | |
78 | /* linux,code = <BTN_0>; */ | |
79 | gpios = <&tca6416_2 15 GPIO_ACTIVE_LOW>; | |
80 | }; | |
81 | ||
82 | play { | |
83 | label = "Play"; | |
84 | linux,code = <KEY_PLAY>; | |
85 | gpios = <&tca6416_2 14 GPIO_ACTIVE_LOW>; | |
86 | }; | |
87 | ||
88 | Stop { | |
89 | label = "Stop"; | |
90 | linux,code = <KEY_STOP>; | |
91 | gpios = <&tca6416_2 13 GPIO_ACTIVE_LOW>; | |
92 | }; | |
93 | ||
94 | fwd { | |
95 | label = "FWD"; | |
96 | linux,code = <KEY_FASTFORWARD>; | |
97 | gpios = <&tca6416_2 12 GPIO_ACTIVE_LOW>; | |
98 | }; | |
99 | ||
100 | rwd { | |
101 | label = "RWD"; | |
102 | linux,code = <KEY_REWIND>; | |
103 | gpios = <&tca6416_2 11 GPIO_ACTIVE_LOW>; | |
104 | }; | |
105 | ||
106 | shift { | |
107 | label = "Shift"; | |
108 | linux,code = <KEY_LEFTSHIFT>; | |
109 | gpios = <&tca6416_2 10 GPIO_ACTIVE_LOW>; | |
110 | }; | |
111 | ||
112 | Mode { | |
113 | label = "Mode"; | |
114 | linux,code = <BTN_MODE>; | |
115 | gpios = <&tca6416_2 9 GPIO_ACTIVE_LOW>; | |
116 | }; | |
117 | ||
118 | Menu { | |
119 | label = "Menu"; | |
120 | linux,code = <KEY_MENU>; | |
121 | gpios = <&tca6416_2 8 GPIO_ACTIVE_LOW>; | |
122 | }; | |
123 | ||
124 | Up { | |
125 | label = "Up"; | |
126 | linux,code = <KEY_UP>; | |
127 | gpios = <&tca6416_2 7 GPIO_ACTIVE_LOW>; | |
128 | }; | |
129 | ||
130 | Down { | |
131 | label = "Down"; | |
132 | linux,code = <KEY_DOWN>; | |
133 | gpios = <&tca6416_2 6 GPIO_ACTIVE_LOW>; | |
134 | }; | |
135 | }; | |
136 | }; | |
137 | ||
138 | &i2c2 { | |
139 | /* Audio codecs */ | |
140 | tlv320aic23_1: codec@1a { | |
141 | compatible = "ti,tlv320aic23"; | |
142 | reg = <0x1a>; | |
143 | #sound-dai-cells= <0>; | |
144 | status = "okay"; | |
145 | }; | |
146 | ||
147 | tlv320aic23_2: codec@1b { | |
148 | compatible = "ti,tlv320aic23"; | |
149 | reg = <0x1b>; | |
150 | #sound-dai-cells= <0>; | |
151 | status = "okay"; | |
152 | }; | |
153 | }; | |
154 | ||
155 | &i2c3 { | |
156 | /* Audio codecs */ | |
157 | tlv320aic23_3: codec@1a { | |
158 | compatible = "ti,tlv320aic23"; | |
159 | reg = <0x1a>; | |
160 | #sound-dai-cells= <0>; | |
161 | status = "okay"; | |
162 | }; | |
163 | ||
164 | /* GPIO Expanders */ | |
165 | tca6416_2: gpio@20 { | |
166 | compatible = "ti,tca6416"; | |
167 | reg = <0x20>; | |
168 | gpio-controller; | |
169 | #gpio-cells = <2>; | |
170 | vcc-supply = <&vdd_io_reg>; | |
171 | }; | |
172 | ||
173 | tca6416_3: gpio@21 { | |
174 | compatible = "ti,tca6416"; | |
175 | reg = <0x21>; | |
176 | gpio-controller; | |
177 | #gpio-cells = <2>; | |
178 | vcc-supply = <&vdd_io_reg>; | |
179 | }; | |
180 | ||
181 | /* TVP5146 Analog Video decoder input */ | |
182 | tvp5146@5c { | |
183 | compatible = "ti,tvp5146m2"; | |
184 | reg = <0x5c>; | |
185 | }; | |
186 | }; | |
187 | ||
188 | &mcbsp1 { | |
189 | status = "ok"; | |
190 | #sound-dai-cells = <0>; | |
191 | pinctrl-names = "default"; | |
192 | pinctrl-0 = <&mcbsp1_pins>; | |
193 | }; | |
194 | ||
195 | &mcbsp2 { | |
196 | status = "ok"; | |
197 | #sound-dai-cells = <0>; | |
198 | pinctrl-names = "default"; | |
199 | pinctrl-0 = <&mcbsp2_pins>; | |
200 | }; | |
201 | ||
202 | &omap3_pmx_core { | |
203 | mcbsp1_pins: pinmux_mcbsp1_pins { | |
204 | pinctrl-single,pins = < | |
205 | OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE0) /* mcbsp1_dx.mcbsp1_dx */ | |
206 | OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT | MUX_MODE0) /* mcbsp1_dx.mcbsp1_dr */ | |
207 | OMAP3_CORE1_IOPAD(0x2196, PIN_INPUT | MUX_MODE0) /* mcbsp_clks.mcbsp1_fsx */ | |
208 | OMAP3_CORE1_IOPAD(0x2198, PIN_INPUT | MUX_MODE0) /* mcbsp1_clkx.mcbsp1_clkx */ | |
209 | >; | |
210 | }; | |
211 | ||
212 | mcbsp2_pins: pinmux_mcbsp2_pins { | |
213 | pinctrl-single,pins = < | |
214 | OMAP3_CORE1_IOPAD(0x213c, PIN_INPUT | MUX_MODE0) /* mcbsp2_fsx.mcbsp2_fsx */ | |
215 | OMAP3_CORE1_IOPAD(0x213e, PIN_INPUT | MUX_MODE0) /* mcbsp2_clkx.mcbsp2_clkx */ | |
216 | OMAP3_CORE1_IOPAD(0x2140, PIN_INPUT | MUX_MODE0) /* mcbsp2_dr.mcbsp2.dr */ | |
217 | OMAP3_CORE1_IOPAD(0x2142, PIN_OUTPUT | MUX_MODE0) /* mcbsp2_dx.mcbsp2_dx */ | |
218 | >; | |
219 | }; | |
220 | }; |