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