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