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