xref: /linux/arch/arm/boot/dts/ti/omap/omap3-pandora-common.dtsi (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only
2724ba675SRob Herring/*
3724ba675SRob Herring * Copyright (C) 2015
4724ba675SRob Herring *   Nikolaus Schaller <hns@goldelico.com>
5724ba675SRob Herring *
6724ba675SRob Herring * Common device tree include for OpenPandora devices.
7724ba675SRob Herring */
8724ba675SRob Herring
9724ba675SRob Herring#include <dt-bindings/input/input.h>
10724ba675SRob Herring
11724ba675SRob Herring/ {
12724ba675SRob Herring	cpus {
13724ba675SRob Herring		cpu@0 {
14724ba675SRob Herring			cpu0-supply = <&vcc>;
15724ba675SRob Herring		};
16724ba675SRob Herring	};
17724ba675SRob Herring
18724ba675SRob Herring	memory@80000000 {
19724ba675SRob Herring		device_type = "memory";
20724ba675SRob Herring		reg = <0x80000000 0x20000000>; /* 512 MB */
21724ba675SRob Herring	};
22724ba675SRob Herring
23724ba675SRob Herring	aliases {
24724ba675SRob Herring		display0 = &lcd;
25724ba675SRob Herring	};
26724ba675SRob Herring
27724ba675SRob Herring	/* fixed 26MHz oscillator */
28724ba675SRob Herring	hfclk_26m: oscillator {
29724ba675SRob Herring		#clock-cells = <0>;
30724ba675SRob Herring		compatible = "fixed-clock";
31724ba675SRob Herring		clock-frequency = <26000000>;
32724ba675SRob Herring	};
33724ba675SRob Herring
34724ba675SRob Herring	tv: connector {
35724ba675SRob Herring		compatible = "connector-analog-tv";
36724ba675SRob Herring		label = "tv";
37724ba675SRob Herring
38724ba675SRob Herring		port {
39724ba675SRob Herring			tv_connector_in: endpoint {
40724ba675SRob Herring				remote-endpoint = <&venc_out>;
41724ba675SRob Herring			};
42724ba675SRob Herring		};
43724ba675SRob Herring	};
44724ba675SRob Herring
45724ba675SRob Herring	gpio-leds {
46724ba675SRob Herring
47724ba675SRob Herring		compatible = "gpio-leds";
48724ba675SRob Herring
49724ba675SRob Herring		pinctrl-names = "default";
50724ba675SRob Herring		pinctrl-0 = <&led_pins>;
51724ba675SRob Herring
52724ba675SRob Herring		led1 {
53724ba675SRob Herring			label = "pandora::sd1";
54724ba675SRob Herring			gpios = <&gpio5 0 GPIO_ACTIVE_HIGH>;	/* GPIO_128 */
55724ba675SRob Herring			linux,default-trigger = "mmc0";
56724ba675SRob Herring			default-state = "off";
57724ba675SRob Herring		};
58724ba675SRob Herring
59724ba675SRob Herring		led2 {
60724ba675SRob Herring			label = "pandora::sd2";
61724ba675SRob Herring			gpios = <&gpio5 1 GPIO_ACTIVE_HIGH>;	/* GPIO_129 */
62724ba675SRob Herring			linux,default-trigger = "mmc1";
63724ba675SRob Herring			default-state = "off";
64724ba675SRob Herring		};
65724ba675SRob Herring
66724ba675SRob Herring		led3 {
67724ba675SRob Herring			label = "pandora::bluetooth";
68724ba675SRob Herring			gpios = <&gpio5 30 GPIO_ACTIVE_HIGH>;	/* GPIO_158 */
69724ba675SRob Herring			linux,default-trigger = "heartbeat";
70724ba675SRob Herring			default-state = "off";
71724ba675SRob Herring		};
72724ba675SRob Herring
73724ba675SRob Herring		led4 {
74724ba675SRob Herring			label = "pandora::wifi";
75724ba675SRob Herring			gpios = <&gpio5 31 GPIO_ACTIVE_HIGH>;	/* GPIO_159 */
76724ba675SRob Herring			linux,default-trigger = "mmc2";
77724ba675SRob Herring			default-state = "off";
78724ba675SRob Herring		};
79724ba675SRob Herring	};
80724ba675SRob Herring
81724ba675SRob Herring	gpio-keys {
82724ba675SRob Herring		compatible = "gpio-keys";
83724ba675SRob Herring
84724ba675SRob Herring		pinctrl-names = "default";
85724ba675SRob Herring		pinctrl-0 = <&button_pins>;
86724ba675SRob Herring
87724ba675SRob Herring		up-button {
88724ba675SRob Herring			label = "up";
89724ba675SRob Herring			linux,code = <KEY_UP>;
90724ba675SRob Herring			gpios = <&gpio4 14 GPIO_ACTIVE_LOW>;	/* GPIO_110 */
91724ba675SRob Herring			wakeup-source;
92724ba675SRob Herring		};
93724ba675SRob Herring
94724ba675SRob Herring		down-button {
95724ba675SRob Herring			label = "down";
96724ba675SRob Herring			linux,code = <KEY_DOWN>;
97724ba675SRob Herring			gpios = <&gpio4 7 GPIO_ACTIVE_LOW>;	/* GPIO_103 */
98724ba675SRob Herring			wakeup-source;
99724ba675SRob Herring		};
100724ba675SRob Herring
101724ba675SRob Herring		left-button {
102724ba675SRob Herring			label = "left";
103724ba675SRob Herring			linux,code = <KEY_LEFT>;
104724ba675SRob Herring			gpios = <&gpio4 0 GPIO_ACTIVE_LOW>;	/* GPIO_96 */
105724ba675SRob Herring			wakeup-source;
106724ba675SRob Herring		};
107724ba675SRob Herring
108724ba675SRob Herring		right-button {
109724ba675SRob Herring			label = "right";
110724ba675SRob Herring			linux,code = <KEY_RIGHT>;
111724ba675SRob Herring			gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;	/* GPIO_98 */
112724ba675SRob Herring			wakeup-source;
113724ba675SRob Herring		};
114724ba675SRob Herring
115724ba675SRob Herring		pageup-button {
116724ba675SRob Herring			label = "game 1";
117724ba675SRob Herring			linux,code = <KEY_PAGEUP>;
118724ba675SRob Herring			gpios = <&gpio4 13 GPIO_ACTIVE_LOW>;	/* GPIO_109 */
119724ba675SRob Herring			wakeup-source;
120724ba675SRob Herring		};
121724ba675SRob Herring
122724ba675SRob Herring		pagedown-button {
123724ba675SRob Herring			label = "game 3";
124724ba675SRob Herring			linux,code = <KEY_PAGEDOWN>;
125724ba675SRob Herring			gpios = <&gpio4 10 GPIO_ACTIVE_LOW>;	/* GPIO_106 */
126724ba675SRob Herring			wakeup-source;
127724ba675SRob Herring		};
128724ba675SRob Herring
129724ba675SRob Herring		home-button {
130724ba675SRob Herring			label = "game 4";
131724ba675SRob Herring			linux,code = <KEY_HOME>;
132724ba675SRob Herring			gpios = <&gpio4 5 GPIO_ACTIVE_LOW>;	/* GPIO_101 */
133724ba675SRob Herring			wakeup-source;
134724ba675SRob Herring		};
135724ba675SRob Herring
136724ba675SRob Herring		end-button {
137724ba675SRob Herring			label = "game 2";
138724ba675SRob Herring			linux,code = <KEY_END>;
139724ba675SRob Herring			gpios = <&gpio4 15 GPIO_ACTIVE_LOW>;	/* GPIO_111 */
140724ba675SRob Herring			wakeup-source;
141724ba675SRob Herring		};
142724ba675SRob Herring
143724ba675SRob Herring		right-shift {
144724ba675SRob Herring			label = "l";
145724ba675SRob Herring			linux,code = <KEY_RIGHTSHIFT>;
146724ba675SRob Herring			gpios = <&gpio4 6 GPIO_ACTIVE_LOW>;	/* GPIO_102 */
147724ba675SRob Herring			wakeup-source;
148724ba675SRob Herring		};
149724ba675SRob Herring
150724ba675SRob Herring		kp-plus {
151724ba675SRob Herring			label = "l2";
152724ba675SRob Herring			linux,code = <KEY_KPPLUS>;
153724ba675SRob Herring			gpios = <&gpio4 1 GPIO_ACTIVE_LOW>;	/* GPIO_97 */
154724ba675SRob Herring			wakeup-source;
155724ba675SRob Herring		};
156724ba675SRob Herring
157724ba675SRob Herring		right-ctrl {
158724ba675SRob Herring			label = "r";
159724ba675SRob Herring			linux,code = <KEY_RIGHTCTRL>;
160724ba675SRob Herring			gpios = <&gpio4 9 GPIO_ACTIVE_LOW>;	/* GPIO_105 */
161724ba675SRob Herring			wakeup-source;
162724ba675SRob Herring		};
163724ba675SRob Herring
164724ba675SRob Herring		kp-minus {
165724ba675SRob Herring			label = "r2";
166724ba675SRob Herring			linux,code = <KEY_KPMINUS>;
167724ba675SRob Herring			gpios = <&gpio4 11 GPIO_ACTIVE_LOW>;	/* GPIO_107 */
168724ba675SRob Herring			wakeup-source;
169724ba675SRob Herring		};
170724ba675SRob Herring
171724ba675SRob Herring		left-ctrl {
172724ba675SRob Herring			label = "ctrl";
173724ba675SRob Herring			linux,code = <KEY_LEFTCTRL>;
174724ba675SRob Herring			gpios = <&gpio4 8 GPIO_ACTIVE_LOW>;	/* GPIO_104 */
175724ba675SRob Herring			wakeup-source;
176724ba675SRob Herring		};
177724ba675SRob Herring
178724ba675SRob Herring		menu {
179724ba675SRob Herring			label = "menu";
180724ba675SRob Herring			linux,code = <KEY_MENU>;
181724ba675SRob Herring			gpios = <&gpio4 3 GPIO_ACTIVE_LOW>;	/* GPIO_99 */
182724ba675SRob Herring			wakeup-source;
183724ba675SRob Herring		};
184724ba675SRob Herring
185724ba675SRob Herring		hold {
186724ba675SRob Herring			label = "hold";
187724ba675SRob Herring			linux,code = <KEY_COFFEE>;
188724ba675SRob Herring			gpios = <&gpio6 16 GPIO_ACTIVE_LOW>;	/* GPIO_176 */
189724ba675SRob Herring			wakeup-source;
190724ba675SRob Herring		};
191724ba675SRob Herring
192724ba675SRob Herring		left-alt {
193724ba675SRob Herring			label = "alt";
194724ba675SRob Herring			linux,code = <KEY_LEFTALT>;
195724ba675SRob Herring			gpios = <&gpio4 4 GPIO_ACTIVE_HIGH>;	/* GPIO_100 */
196724ba675SRob Herring			wakeup-source;
197724ba675SRob Herring		};
198724ba675SRob Herring
199724ba675SRob Herring		lid {
200724ba675SRob Herring			label = "lid";
201724ba675SRob Herring			linux,code = <0x00>;    /* SW_LID lid shut */
202724ba675SRob Herring			linux,input-type = <0x05>;    /* EV_SW */
203724ba675SRob Herring			gpios = <&gpio4 12 GPIO_ACTIVE_HIGH>;   /* GPIO_108 */
204724ba675SRob Herring		};
205724ba675SRob Herring	};
206724ba675SRob Herring
207724ba675SRob Herring	/* HS USB Host PHY on PORT 2 */
208724ba675SRob Herring	hsusb2_phy: hsusb2-phy-pins {
209724ba675SRob Herring		compatible = "usb-nop-xceiv";
210724ba675SRob Herring		reset-gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; /* GPIO_16 */
211724ba675SRob Herring		vcc-supply = <&vaux2>;
212724ba675SRob Herring		#phy-cells = <0>;
213724ba675SRob Herring	};
214724ba675SRob Herring
215724ba675SRob Herring	/* HS USB Host VBUS supply
216724ba675SRob Herring	 * disabling this regulator causes current leakage, and LCD flicker
217724ba675SRob Herring	 * on earlier (CC) board revisions, so keep it always on */
218724ba675SRob Herring	usb_host_5v: fixed-regulator-usb_host_5v {
219724ba675SRob Herring		compatible = "regulator-fixed";
220724ba675SRob Herring		regulator-name = "usb_host_5v";
221724ba675SRob Herring		regulator-min-microvolt = <5000000>;
222724ba675SRob Herring		regulator-max-microvolt = <5000000>;
223724ba675SRob Herring		regulator-always-on;
224724ba675SRob Herring		regulator-boot-on;
225724ba675SRob Herring		enable-active-high;
226724ba675SRob Herring		gpio = <&gpio6 4 GPIO_ACTIVE_HIGH>;	/* GPIO_164 */
227724ba675SRob Herring	};
228724ba675SRob Herring
229724ba675SRob Herring	/* wl1251 wifi+bt module */
230724ba675SRob Herring	wlan_en: fixed-regulator-wg7210_en {
231724ba675SRob Herring		compatible = "regulator-fixed";
232724ba675SRob Herring		regulator-name = "vwlan";
233724ba675SRob Herring		regulator-min-microvolt = <1800000>;
234724ba675SRob Herring		regulator-max-microvolt = <1800000>;
235724ba675SRob Herring		startup-delay-us = <50000>;
236724ba675SRob Herring		enable-active-high;
237724ba675SRob Herring		gpio = <&gpio1 23 GPIO_ACTIVE_HIGH>;
238724ba675SRob Herring	};
239724ba675SRob Herring
240724ba675SRob Herring	/* wg7210 (wifi+bt module) 32k clock buffer */
241724ba675SRob Herring	wg7210_32k: fixed-regulator-wg7210_32k {
242724ba675SRob Herring		compatible = "regulator-fixed";
243724ba675SRob Herring		regulator-name = "wg7210_32k";
244724ba675SRob Herring		regulator-min-microvolt = <1800000>;
245724ba675SRob Herring		regulator-max-microvolt = <1800000>;
246724ba675SRob Herring		regulator-always-on;
247724ba675SRob Herring		enable-active-high;
248724ba675SRob Herring		gpio = <&twl_gpio 13 GPIO_ACTIVE_HIGH>;
249724ba675SRob Herring	};
250724ba675SRob Herring};
251724ba675SRob Herring
252724ba675SRob Herring&omap3_pmx_core {
253724ba675SRob Herring
254724ba675SRob Herring	mmc1_pins: mmc1-pins {
255724ba675SRob Herring		pinctrl-single,pins = <
256724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc1_clk.sdmmc1_clk */
257724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc1_cmd.sdmmc1_cmd */
258724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc1_dat0.sdmmc1_dat0 */
259724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc1_dat1.sdmmc1_dat1 */
260724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc1_dat2.sdmmc1_dat2 */
261724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc1_dat3.sdmmc1_dat3 */
262724ba675SRob Herring		>;
263724ba675SRob Herring	};
264724ba675SRob Herring
265724ba675SRob Herring	mmc2_pins: mmc2-pins {
266724ba675SRob Herring		pinctrl-single,pins = <
267724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_clk.sdmmc2_clk */
268724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_cmd.sdmmc2_cmd */
269724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_dat0.sdmmc2_dat0 */
270724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_dat1.sdmmc2_dat1 */
271724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_dat2.sdmmc2_dat2 */
272724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0)		/* sdmmc2_dat3.sdmmc2_dat3 */
273724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2164, PIN_OUTPUT_PULLUP | MUX_MODE1)	/* sdmmc2_dat4.sdmmc2_dirdat0 */
274724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2166, PIN_OUTPUT_PULLUP | MUX_MODE1)	/* sdmmc2_dat5.sdmmc2_dirdat1 */
275724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2168, PIN_OUTPUT_PULLUP | MUX_MODE1)	/* sdmmc2_dat6.sdmmc2_dircmd */
276724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE1)		/* sdmmc2_dat7.sdmmc2_clkin */
277724ba675SRob Herring		>;
278724ba675SRob Herring	};
279724ba675SRob Herring
280724ba675SRob Herring	dss_dpi_pins: dss-dpi-pins {
281724ba675SRob Herring		pinctrl-single,pins = <
282724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20d4, PIN_OUTPUT | MUX_MODE0)	/* dss_pclk.dss_pclk */
283724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20d6, PIN_OUTPUT | MUX_MODE0)	/* dss_hsync.dss_hsync */
284724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20d8, PIN_OUTPUT | MUX_MODE0)	/* dss_vsync.dss_vsync */
285724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20da, PIN_OUTPUT | MUX_MODE0)	/* dss_acbias.dss_acbias */
286724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE0)	/* dss_data0.dss_data0 */
287724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20de, PIN_OUTPUT | MUX_MODE0)	/* dss_data1.dss_data1 */
288724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20e0, PIN_OUTPUT | MUX_MODE0)	/* dss_data2.dss_data2 */
289724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE0)	/* dss_data3.dss_data3 */
290724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE0)	/* dss_data4.dss_data4 */
291724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE0)	/* dss_data5.dss_data5 */
292724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20e8, PIN_OUTPUT | MUX_MODE0)	/* dss_data6.dss_data6 */
293724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20ea, PIN_OUTPUT | MUX_MODE0)	/* dss_data7.dss_data7 */
294724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20ec, PIN_OUTPUT | MUX_MODE0)	/* dss_data8.dss_data8 */
295724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20ee, PIN_OUTPUT | MUX_MODE0)	/* dss_data9.dss_data9 */
296724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE0)	/* dss_data10.dss_data10 */
297724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE0)	/* dss_data11.dss_data11 */
298724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE0)	/* dss_data12.dss_data12 */
299724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE0)	/* dss_data13.dss_data13 */
300724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20f8, PIN_OUTPUT | MUX_MODE0)	/* dss_data14.dss_data14 */
301724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20fa, PIN_OUTPUT | MUX_MODE0)	/* dss_data15.dss_data15 */
302724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE0)	/* dss_data16.dss_data16 */
303724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE0)	/* dss_data17.dss_data17 */
304724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE0)	/* dss_data18.dss_data18 */
305724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2102, PIN_OUTPUT | MUX_MODE0)	/* dss_data19.dss_data19 */
306724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE0)	/* dss_data20.dss_data20 */
307724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2106, PIN_OUTPUT | MUX_MODE0)	/* dss_data21.dss_data21 */
308724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE0)	/* dss_data22.dss_data22 */
309724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE0)	/* dss_data23.dss_data23 */
310724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4)	/* GPIO_157 = lcd reset */
311724ba675SRob Herring		>;
312724ba675SRob Herring	};
313724ba675SRob Herring
314724ba675SRob Herring	uart3_pins: uart3-pins {
315724ba675SRob Herring		pinctrl-single,pins = <
316724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | PIN_OFF_WAKEUPENABLE | MUX_MODE0)	/* uart3_rx_irrx.uart3_rx_irrx */
317724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx_irtx.uart3_tx_irtx */
318724ba675SRob Herring		>;
319724ba675SRob Herring	};
320724ba675SRob Herring
321724ba675SRob Herring	led_pins: leds-pins {
322724ba675SRob Herring		pinctrl-single,pins = <
323724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2154, PIN_OUTPUT | MUX_MODE4)	/* GPIO_128 */
324724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2156, PIN_OUTPUT | MUX_MODE4)	/* GPIO_129 */
325724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE4)	/* GPIO_158 */
326724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2192, PIN_OUTPUT | MUX_MODE4)	/* GPIO_159 */
327724ba675SRob Herring		>;
328724ba675SRob Herring	};
329724ba675SRob Herring
330724ba675SRob Herring	button_pins: button-pins {
331724ba675SRob Herring		pinctrl-single,pins = <
332724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2110, PIN_INPUT | MUX_MODE4)	/* GPIO_96 */
333724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2112, PIN_INPUT | MUX_MODE4)	/* GPIO_97 */
334724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2114, PIN_INPUT | MUX_MODE4)	/* GPIO_98 */
335724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2116, PIN_INPUT | MUX_MODE4)	/* GPIO_99 */
336724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2118, PIN_INPUT | MUX_MODE4)	/* GPIO_100 */
337724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x211a, PIN_INPUT | MUX_MODE4)	/* GPIO_101 */
338724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x211c, PIN_INPUT | MUX_MODE4)	/* GPIO_102 */
339724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x211e, PIN_INPUT | MUX_MODE4)	/* GPIO_103 */
340724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2120, PIN_INPUT | MUX_MODE4)	/* GPIO_104 */
341724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE4)	/* GPIO_105 */
342724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE4)	/* GPIO_106 */
343724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE4)	/* GPIO_107 */
344724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE4)	/* GPIO_108 */
345724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x212a, PIN_INPUT | MUX_MODE4)	/* GPIO_109 */
346724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x212c, PIN_INPUT | MUX_MODE4)	/* GPIO_110 */
347724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x212e, PIN_INPUT | MUX_MODE4)	/* GPIO_111 */
348724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x21d2, PIN_INPUT | MUX_MODE4)	/* GPIO_176 */
349724ba675SRob Herring		>;
350724ba675SRob Herring	};
351724ba675SRob Herring
352724ba675SRob Herring	penirq_pins: penirq-pins {
353724ba675SRob Herring		pinctrl-single,pins = <
354724ba675SRob Herring			/* here we could enable to wakeup the cpu from suspend by a pen touch */
355724ba675SRob Herring			OMAP3_CORE1_IOPAD(0x210c, PIN_INPUT | MUX_MODE4)	/* GPIO_94 */
356724ba675SRob Herring		>;
357724ba675SRob Herring	};
358724ba675SRob Herring
359724ba675SRob Herring};
360724ba675SRob Herring
361724ba675SRob Herring&omap3_pmx_core2 {
362724ba675SRob Herring	/* define in CPU specific file that includes this one
363724ba675SRob Herring	 * use either OMAP3430_CORE2_IOPAD() or OMAP3630_CORE2_IOPAD()
364724ba675SRob Herring	 */
365724ba675SRob Herring};
366724ba675SRob Herring
367724ba675SRob Herring&i2c1 {
368724ba675SRob Herring	clock-frequency = <2600000>;
369724ba675SRob Herring
370724ba675SRob Herring	twl: twl@48 {
371724ba675SRob Herring		reg = <0x48>;
372724ba675SRob Herring		interrupts = <7>; /* SYS_NIRQ cascaded to intc */
373724ba675SRob Herring		interrupt-parent = <&intc>;
374724ba675SRob Herring
375724ba675SRob Herring		clocks = <&hfclk_26m>;
376724ba675SRob Herring		clock-names = "fck";
377724ba675SRob Herring
378724ba675SRob Herring		twl_power: power {
379724ba675SRob Herring			compatible = "ti,twl4030-power-reset";
380724ba675SRob Herring			ti,use_poweroff;
381724ba675SRob Herring		};
382724ba675SRob Herring
383724ba675SRob Herring		twl_audio: audio {
384724ba675SRob Herring			compatible = "ti,twl4030-audio";
385724ba675SRob Herring
386724ba675SRob Herring			codec {
387724ba675SRob Herring				ti,ramp_delay_value = <3>;
388724ba675SRob Herring			};
389724ba675SRob Herring		};
390724ba675SRob Herring	};
391724ba675SRob Herring};
392724ba675SRob Herring
393724ba675SRob Herring#include "twl4030.dtsi"
394724ba675SRob Herring#include "twl4030_omap3.dtsi"
395724ba675SRob Herring
396724ba675SRob Herring&twl_keypad {
397724ba675SRob Herring	keypad,num-rows = <8>;
398724ba675SRob Herring	keypad,num-columns = <6>;
399724ba675SRob Herring	linux,keymap = <
400724ba675SRob Herring		MATRIX_KEY(0, 0, KEY_9)
401724ba675SRob Herring		MATRIX_KEY(0, 1, KEY_8)
402724ba675SRob Herring		MATRIX_KEY(0, 2, KEY_I)
403724ba675SRob Herring		MATRIX_KEY(0, 3, KEY_J)
404724ba675SRob Herring		MATRIX_KEY(0, 4, KEY_N)
405724ba675SRob Herring		MATRIX_KEY(0, 5, KEY_M)
406724ba675SRob Herring		MATRIX_KEY(1, 0, KEY_0)
407724ba675SRob Herring		MATRIX_KEY(1, 1, KEY_7)
408724ba675SRob Herring		MATRIX_KEY(1, 2, KEY_U)
409724ba675SRob Herring		MATRIX_KEY(1, 3, KEY_H)
410724ba675SRob Herring		MATRIX_KEY(1, 4, KEY_B)
411724ba675SRob Herring		MATRIX_KEY(1, 5, KEY_SPACE)
412724ba675SRob Herring		MATRIX_KEY(2, 0, KEY_BACKSPACE)
413724ba675SRob Herring		MATRIX_KEY(2, 1, KEY_6)
414724ba675SRob Herring		MATRIX_KEY(2, 2, KEY_Y)
415724ba675SRob Herring		MATRIX_KEY(2, 3, KEY_G)
416724ba675SRob Herring		MATRIX_KEY(2, 4, KEY_V)
417724ba675SRob Herring		MATRIX_KEY(2, 5, KEY_FN)
418724ba675SRob Herring		MATRIX_KEY(3, 0, KEY_O)
419724ba675SRob Herring		MATRIX_KEY(3, 1, KEY_5)
420724ba675SRob Herring		MATRIX_KEY(3, 2, KEY_T)
421724ba675SRob Herring		MATRIX_KEY(3, 3, KEY_F)
422724ba675SRob Herring		MATRIX_KEY(3, 4, KEY_C)
423724ba675SRob Herring		MATRIX_KEY(4, 0, KEY_P)
424724ba675SRob Herring		MATRIX_KEY(4, 1, KEY_4)
425724ba675SRob Herring		MATRIX_KEY(4, 2, KEY_R)
426724ba675SRob Herring		MATRIX_KEY(4, 3, KEY_D)
427724ba675SRob Herring		MATRIX_KEY(4, 4, KEY_X)
428724ba675SRob Herring		MATRIX_KEY(5, 0, KEY_K)
429724ba675SRob Herring		MATRIX_KEY(5, 1, KEY_3)
430724ba675SRob Herring		MATRIX_KEY(5, 2, KEY_E)
431724ba675SRob Herring		MATRIX_KEY(5, 3, KEY_S)
432724ba675SRob Herring		MATRIX_KEY(5, 4, KEY_Z)
433724ba675SRob Herring		MATRIX_KEY(6, 0, KEY_L)
434724ba675SRob Herring		MATRIX_KEY(6, 1, KEY_2)
435724ba675SRob Herring		MATRIX_KEY(6, 2, KEY_W)
436724ba675SRob Herring		MATRIX_KEY(6, 3, KEY_A)
437724ba675SRob Herring		MATRIX_KEY(6, 4, KEY_RIGHTBRACE)
438724ba675SRob Herring		MATRIX_KEY(7, 0, KEY_ENTER)
439724ba675SRob Herring		MATRIX_KEY(7, 1, KEY_1)
440724ba675SRob Herring		MATRIX_KEY(7, 2, KEY_Q)
441724ba675SRob Herring		MATRIX_KEY(7, 3, KEY_LEFTSHIFT)
442724ba675SRob Herring		MATRIX_KEY(7, 4, KEY_LEFTBRACE )
443724ba675SRob Herring	 >;
444724ba675SRob Herring};
445724ba675SRob Herring
446724ba675SRob Herring/* backup battery charger */
447724ba675SRob Herring&charger {
448724ba675SRob Herring	ti,bb-uvolt = <3200000>;
449724ba675SRob Herring	ti,bb-uamp = <150>;
450724ba675SRob Herring};
451724ba675SRob Herring
452724ba675SRob Herring/* MMC2 */
453724ba675SRob Herring&vmmc2 {
454724ba675SRob Herring	regulator-min-microvolt = <1850000>;
455724ba675SRob Herring	regulator-max-microvolt = <3150000>;
456724ba675SRob Herring};
457724ba675SRob Herring
458724ba675SRob Herring/* LCD */
459724ba675SRob Herring&vaux1 {
460724ba675SRob Herring	regulator-min-microvolt = <3000000>;
461724ba675SRob Herring	regulator-max-microvolt = <3000000>;
462724ba675SRob Herring};
463724ba675SRob Herring
464724ba675SRob Herring/* USB Host PHY */
465724ba675SRob Herring&vaux2 {
466724ba675SRob Herring	regulator-min-microvolt = <1800000>;
467724ba675SRob Herring	regulator-max-microvolt = <1800000>;
468724ba675SRob Herring};
469724ba675SRob Herring
470724ba675SRob Herring/* available on expansion connector */
471724ba675SRob Herring&vaux3 {
472724ba675SRob Herring	regulator-min-microvolt = <2800000>;
473724ba675SRob Herring	regulator-max-microvolt = <2800000>;
474724ba675SRob Herring};
475724ba675SRob Herring
476724ba675SRob Herring/* ADS7846 and nubs */
477724ba675SRob Herring&vaux4 {
478724ba675SRob Herring	regulator-min-microvolt = <2800000>;
479724ba675SRob Herring	regulator-max-microvolt = <2800000>;
480724ba675SRob Herring};
481724ba675SRob Herring
482724ba675SRob Herring/* power audio DAC and LID sensor */
483724ba675SRob Herring&vsim {
484724ba675SRob Herring	regulator-min-microvolt = <2800000>;
485724ba675SRob Herring	regulator-max-microvolt = <2800000>;
486724ba675SRob Herring	regulator-always-on;
487724ba675SRob Herring};
488724ba675SRob Herring
489724ba675SRob Herring&i2c2 {
490724ba675SRob Herring	clock-frequency = <100000>;
491724ba675SRob Herring	/* no clients so we should disable clock */
492724ba675SRob Herring};
493724ba675SRob Herring
494724ba675SRob Herring&i2c3 {
495724ba675SRob Herring	clock-frequency = <100000>;
496724ba675SRob Herring
497724ba675SRob Herring	bq27500@55 {
498724ba675SRob Herring		compatible = "ti,bq27500";
499724ba675SRob Herring		reg = <0x55>;
500724ba675SRob Herring	};
501724ba675SRob Herring
502724ba675SRob Herring};
503724ba675SRob Herring
504724ba675SRob Herring&usb_otg_hs {
505724ba675SRob Herring	interface-type = <0>;
506724ba675SRob Herring	usb-phy = <&usb2_phy>;
507724ba675SRob Herring	phys = <&usb2_phy>;
508724ba675SRob Herring	phy-names = "usb2-phy";
509724ba675SRob Herring	mode = <3>;
510724ba675SRob Herring	power = <50>;
511724ba675SRob Herring};
512724ba675SRob Herring
513724ba675SRob Herring/*
514724ba675SRob Herring * Many pandora boards have been produced with defective write-protect switches
515724ba675SRob Herring * on either slot, so it was decided not to use this feature. If you know
516724ba675SRob Herring * your board has good switches, feel free to uncomment wp-gpios below.
517724ba675SRob Herring */
518724ba675SRob Herring&mmc1 {
519724ba675SRob Herring	pinctrl-names = "default";
520724ba675SRob Herring	pinctrl-0 = <&mmc1_pins>;
521724ba675SRob Herring	vmmc-supply = <&vmmc1>;
522724ba675SRob Herring	bus-width = <4>;
523724ba675SRob Herring	cd-gpios = <&twl_gpio 0 GPIO_ACTIVE_LOW>;
524724ba675SRob Herring	/*wp-gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>;*/	/* GPIO_126 */
525724ba675SRob Herring};
526724ba675SRob Herring
527724ba675SRob Herring&mmc2 {
528724ba675SRob Herring	pinctrl-names = "default";
529724ba675SRob Herring	pinctrl-0 = <&mmc2_pins>;
530724ba675SRob Herring	vmmc-supply = <&vmmc2>;
531724ba675SRob Herring	bus-width = <4>;
532724ba675SRob Herring	cd-gpios = <&twl_gpio 1 GPIO_ACTIVE_LOW>;
533724ba675SRob Herring	/*wp-gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>;*/	/* GPIO_127 */
534724ba675SRob Herring};
535724ba675SRob Herring
536724ba675SRob Herring&mmc3 {
537724ba675SRob Herring	vmmc-supply = <&wlan_en>;
538724ba675SRob Herring
539724ba675SRob Herring	bus-width = <4>;
540724ba675SRob Herring	non-removable;
541724ba675SRob Herring	ti,non-removable;
542724ba675SRob Herring	cap-power-off-card;
543724ba675SRob Herring
544724ba675SRob Herring	pinctrl-names = "default";
545724ba675SRob Herring	pinctrl-0 = <&mmc3_pins>;
546724ba675SRob Herring
547724ba675SRob Herring	#address-cells = <1>;
548724ba675SRob Herring	#size-cells = <0>;
549724ba675SRob Herring
550724ba675SRob Herring	wlan: wifi@1 {
551724ba675SRob Herring		compatible = "ti,wl1251";
552724ba675SRob Herring
553724ba675SRob Herring		reg = <1>;
554724ba675SRob Herring
555724ba675SRob Herring		interrupt-parent = <&gpio1>;
556724ba675SRob Herring		interrupts = <21 IRQ_TYPE_LEVEL_HIGH>;	/* GPIO_21 */
557724ba675SRob Herring
558724ba675SRob Herring		ti,wl1251-has-eeprom;
559724ba675SRob Herring	};
560724ba675SRob Herring};
561724ba675SRob Herring
562724ba675SRob Herring/* bluetooth*/
563724ba675SRob Herring&uart1 {
564724ba675SRob Herring};
565724ba675SRob Herring
566724ba675SRob Herring/* spare (expansion connector) */
567724ba675SRob Herring&uart2 {
568724ba675SRob Herring};
569724ba675SRob Herring
570724ba675SRob Herring/* console (expansion connector) */
571724ba675SRob Herring&uart3 {
572724ba675SRob Herring	pinctrl-names = "default";
573724ba675SRob Herring	pinctrl-0 = <&uart3_pins>;
574724ba675SRob Herring	interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
575724ba675SRob Herring};
576724ba675SRob Herring
577724ba675SRob Herring&usbhshost {
578724ba675SRob Herring	port2-mode = "ehci-phy";
579724ba675SRob Herring};
580724ba675SRob Herring
581724ba675SRob Herring&usbhsehci {
582724ba675SRob Herring	phys = <0 &hsusb2_phy>;
583724ba675SRob Herring};
584724ba675SRob Herring
585724ba675SRob Herring&gpmc {
586724ba675SRob Herring	ranges = <0 0 0x30000000 0x1000000>; /* CS0: 16MB for NAND */
587724ba675SRob Herring
588724ba675SRob Herring	nand@0,0 {
589724ba675SRob Herring		compatible = "ti,omap2-nand";
590724ba675SRob Herring		reg = <0 0 4>; /* CS0, offset 0, IO size 4 */
591724ba675SRob Herring		interrupt-parent = <&gpmc>;
592724ba675SRob Herring		interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
593724ba675SRob Herring			     <1 IRQ_TYPE_NONE>;	/* termcount */
594724ba675SRob Herring		nand-bus-width = <16>;
595724ba675SRob Herring		ti,nand-ecc-opt = "sw";
596724ba675SRob Herring
597724ba675SRob Herring		gpmc,sync-clk-ps = <0>;
598724ba675SRob Herring		gpmc,cs-on-ns = <0>;
599724ba675SRob Herring		gpmc,cs-rd-off-ns = <44>;
600724ba675SRob Herring		gpmc,cs-wr-off-ns = <44>;
601724ba675SRob Herring		gpmc,adv-on-ns = <6>;
602724ba675SRob Herring		gpmc,adv-rd-off-ns = <34>;
603724ba675SRob Herring		gpmc,adv-wr-off-ns = <44>;
604724ba675SRob Herring		gpmc,we-off-ns = <40>;
605724ba675SRob Herring		gpmc,oe-off-ns = <54>;
606724ba675SRob Herring		gpmc,access-ns = <64>;
607724ba675SRob Herring		gpmc,rd-cycle-ns = <82>;
608724ba675SRob Herring		gpmc,wr-cycle-ns = <82>;
609724ba675SRob Herring		gpmc,wr-access-ns = <40>;
610724ba675SRob Herring		gpmc,wr-data-mux-bus-ns = <0>;
611724ba675SRob Herring		gpmc,device-width = <2>;
612724ba675SRob Herring
613724ba675SRob Herring		#address-cells = <1>;
614724ba675SRob Herring		#size-cells = <1>;
615724ba675SRob Herring
616724ba675SRob Herring		/* u-boot uses mtdparts=nand:512k(xloader),1920k(uboot),128k(uboot-env),10m(boot),-(rootfs) */
617724ba675SRob Herring
618724ba675SRob Herring		x-loader@0 {
619724ba675SRob Herring			label = "xloader";
620724ba675SRob Herring			reg = <0 0x80000>;
621724ba675SRob Herring		};
622724ba675SRob Herring
623724ba675SRob Herring		bootloaders@80000 {
624724ba675SRob Herring			label = "uboot";
625724ba675SRob Herring			reg = <0x80000 0x1e0000>;
626724ba675SRob Herring		};
627724ba675SRob Herring
628724ba675SRob Herring		bootloaders_env@260000 {
629724ba675SRob Herring			label = "uboot-env";
630724ba675SRob Herring			reg = <0x260000 0x20000>;
631724ba675SRob Herring		};
632724ba675SRob Herring
633724ba675SRob Herring		kernel@280000 {
634724ba675SRob Herring			label = "boot";
635724ba675SRob Herring			reg = <0x280000 0xa00000>;
636724ba675SRob Herring		};
637724ba675SRob Herring
638724ba675SRob Herring		filesystem@c80000 {
639724ba675SRob Herring			label = "rootfs";
640724ba675SRob Herring			reg = <0xc80000 0>;	/* 0 = MTDPART_SIZ_FULL */
641724ba675SRob Herring		};
642724ba675SRob Herring	};
643724ba675SRob Herring};
644724ba675SRob Herring
645724ba675SRob Herring&mcspi1 {
646724ba675SRob Herring	tsc2046@0 {
647724ba675SRob Herring		reg = <0>;	/* CS0 */
648724ba675SRob Herring		compatible = "ti,tsc2046";
649724ba675SRob Herring		spi-max-frequency = <1000000>;
650724ba675SRob Herring		pinctrl-names = "default";
651724ba675SRob Herring		pinctrl-0 = <&penirq_pins>;
652724ba675SRob Herring		interrupt-parent = <&gpio3>;
653724ba675SRob Herring		interrupts = <30 IRQ_TYPE_NONE>;	/* GPIO_94 */
654*6c1561fbSLinus Torvalds		pendown-gpio = <&gpio3 30 GPIO_ACTIVE_LOW>;
655724ba675SRob Herring		vcc-supply = <&vaux4>;
656724ba675SRob Herring
657724ba675SRob Herring		ti,x-min = /bits/ 16 <0>;
658724ba675SRob Herring		ti,x-max = /bits/ 16 <8000>;
659724ba675SRob Herring		ti,y-min = /bits/ 16 <0>;
660724ba675SRob Herring		ti,y-max = /bits/ 16 <4800>;
661724ba675SRob Herring		ti,x-plate-ohms = /bits/ 16 <40>;
662724ba675SRob Herring		ti,pressure-max = /bits/ 16 <255>;
663724ba675SRob Herring
664724ba675SRob Herring		wakeup-source;
665724ba675SRob Herring	};
666724ba675SRob Herring
667724ba675SRob Herring	lcd: lcd@1 {
668724ba675SRob Herring		reg = <1>;	/* CS1 */
669724ba675SRob Herring		compatible = "tpo,td043mtea1";
670724ba675SRob Herring		spi-max-frequency = <100000>;
671724ba675SRob Herring		spi-cpol;
672724ba675SRob Herring		spi-cpha;
673724ba675SRob Herring
674724ba675SRob Herring		label = "lcd";
675724ba675SRob Herring		reset-gpios = <&gpio5 29 GPIO_ACTIVE_LOW>;	/* GPIO_157 */
676724ba675SRob Herring		vcc-supply = <&vaux1>;
677724ba675SRob Herring
678724ba675SRob Herring		port {
679724ba675SRob Herring			lcd_in: endpoint {
680724ba675SRob Herring				remote-endpoint = <&dpi_out>;
681724ba675SRob Herring			};
682724ba675SRob Herring		};
683724ba675SRob Herring	};
684724ba675SRob Herring
685724ba675SRob Herring
686724ba675SRob Herring};
687724ba675SRob Herring
688724ba675SRob Herring/* n/a - used as GPIOs */
689724ba675SRob Herring&mcbsp1 {
690724ba675SRob Herring};
691724ba675SRob Herring
692724ba675SRob Herring/* audio DAC */
693724ba675SRob Herring&mcbsp2 {
694724ba675SRob Herring};
695724ba675SRob Herring
696724ba675SRob Herring/* bluetooth */
697724ba675SRob Herring&mcbsp3 {
698724ba675SRob Herring};
699724ba675SRob Herring
700724ba675SRob Herring/* to twl4030*/
701724ba675SRob Herring&mcbsp4 {
702724ba675SRob Herring};
703724ba675SRob Herring
704724ba675SRob Herring&venc {
705724ba675SRob Herring	status = "okay";
706724ba675SRob Herring
707724ba675SRob Herring	vdda-supply = <&vdac>;
708724ba675SRob Herring
709724ba675SRob Herring	port {
710724ba675SRob Herring		venc_out: endpoint {
711724ba675SRob Herring			remote-endpoint = <&tv_connector_in>;
712724ba675SRob Herring			ti,channels = <2>;
713724ba675SRob Herring		};
714724ba675SRob Herring	};
715724ba675SRob Herring};
716724ba675SRob Herring
717724ba675SRob Herring&dss {
718724ba675SRob Herring	pinctrl-names = "default";
719724ba675SRob Herring	pinctrl-0 = < &dss_dpi_pins >;
720724ba675SRob Herring
721724ba675SRob Herring	status = "okay";
722724ba675SRob Herring	vdds_dsi-supply = <&vpll2>;
723724ba675SRob Herring
724724ba675SRob Herring	port {
725724ba675SRob Herring		dpi_out: endpoint {
726724ba675SRob Herring			remote-endpoint = <&lcd_in>;
727724ba675SRob Herring			data-lines = <24>;
728724ba675SRob Herring		};
729724ba675SRob Herring	};
730724ba675SRob Herring};
731