1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2c66ec88fSEmmanuel Vadot/*
3c66ec88fSEmmanuel Vadot * Copyright (c) 2019 BayLibre, SAS.
4c66ec88fSEmmanuel Vadot * Author: Fabien Parent <fparent@baylibre.com>
5c66ec88fSEmmanuel Vadot */
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadot/ {
10c66ec88fSEmmanuel Vadot	aliases {
11c66ec88fSEmmanuel Vadot		serial0 = &uart0;
12c66ec88fSEmmanuel Vadot		ethernet0 = &ethernet;
13c66ec88fSEmmanuel Vadot	};
14c66ec88fSEmmanuel Vadot
15c66ec88fSEmmanuel Vadot	chosen {
16c66ec88fSEmmanuel Vadot		stdout-path = "serial0:921600n8";
17c66ec88fSEmmanuel Vadot	};
18c66ec88fSEmmanuel Vadot
19c66ec88fSEmmanuel Vadot	firmware {
20*8bab661aSEmmanuel Vadot		optee: optee {
21c66ec88fSEmmanuel Vadot			compatible = "linaro,optee-tz";
22c66ec88fSEmmanuel Vadot			method = "smc";
23c66ec88fSEmmanuel Vadot		};
24c66ec88fSEmmanuel Vadot	};
25c66ec88fSEmmanuel Vadot
26c66ec88fSEmmanuel Vadot	gpio-keys {
27c66ec88fSEmmanuel Vadot		compatible = "gpio-keys";
28c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
29c66ec88fSEmmanuel Vadot		pinctrl-0 = <&gpio_keys_default>;
30c66ec88fSEmmanuel Vadot
31b97ee269SEmmanuel Vadot		key-volume-up {
32c66ec88fSEmmanuel Vadot			gpios = <&pio 42 GPIO_ACTIVE_LOW>;
33c66ec88fSEmmanuel Vadot			label = "volume_up";
34c66ec88fSEmmanuel Vadot			linux,code = <115>;
35c66ec88fSEmmanuel Vadot			wakeup-source;
36c66ec88fSEmmanuel Vadot			debounce-interval = <15>;
37c66ec88fSEmmanuel Vadot		};
38c66ec88fSEmmanuel Vadot
39b97ee269SEmmanuel Vadot		key-volume-down {
40c66ec88fSEmmanuel Vadot			gpios = <&pio 43 GPIO_ACTIVE_LOW>;
41c66ec88fSEmmanuel Vadot			label = "volume_down";
42c66ec88fSEmmanuel Vadot			linux,code = <114>;
43c66ec88fSEmmanuel Vadot			wakeup-source;
44c66ec88fSEmmanuel Vadot			debounce-interval = <15>;
45c66ec88fSEmmanuel Vadot		};
46c66ec88fSEmmanuel Vadot	};
47c66ec88fSEmmanuel Vadot};
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot&i2c0 {
50c66ec88fSEmmanuel Vadot	clock-div = <2>;
51c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
52c66ec88fSEmmanuel Vadot	pinctrl-0 = <&i2c0_pins_a>;
53c66ec88fSEmmanuel Vadot	status = "okay";
54c66ec88fSEmmanuel Vadot
55c66ec88fSEmmanuel Vadot	tca6416: gpio@20 {
56c66ec88fSEmmanuel Vadot		compatible = "ti,tca6416";
57c66ec88fSEmmanuel Vadot		reg = <0x20>;
582eb4d8dcSEmmanuel Vadot		reset-gpios = <&pio 65 GPIO_ACTIVE_LOW>;
59c66ec88fSEmmanuel Vadot		pinctrl-names = "default";
60c66ec88fSEmmanuel Vadot		pinctrl-0 = <&tca6416_pins>;
61c66ec88fSEmmanuel Vadot
62c66ec88fSEmmanuel Vadot		gpio-controller;
63c66ec88fSEmmanuel Vadot		#gpio-cells = <2>;
64c66ec88fSEmmanuel Vadot
655def4c47SEmmanuel Vadot		eint20-mux-sel0-hog {
66c66ec88fSEmmanuel Vadot			gpio-hog;
67c66ec88fSEmmanuel Vadot			gpios = <0 0>;
68c66ec88fSEmmanuel Vadot			input;
69c66ec88fSEmmanuel Vadot			line-name = "eint20_mux_sel0";
70c66ec88fSEmmanuel Vadot		};
71c66ec88fSEmmanuel Vadot
725def4c47SEmmanuel Vadot		expcon-mux-sel1-hog {
73c66ec88fSEmmanuel Vadot			gpio-hog;
74c66ec88fSEmmanuel Vadot			gpios = <1 0>;
75c66ec88fSEmmanuel Vadot			input;
76c66ec88fSEmmanuel Vadot			line-name = "expcon_mux_sel1";
77c66ec88fSEmmanuel Vadot		};
78c66ec88fSEmmanuel Vadot
795def4c47SEmmanuel Vadot		mrg-di-mux-sel2-hog {
80c66ec88fSEmmanuel Vadot			gpio-hog;
81c66ec88fSEmmanuel Vadot			gpios = <2 0>;
82c66ec88fSEmmanuel Vadot			input;
83c66ec88fSEmmanuel Vadot			line-name = "mrg_di_mux_sel2";
84c66ec88fSEmmanuel Vadot		};
85c66ec88fSEmmanuel Vadot
865def4c47SEmmanuel Vadot		sd-sdio-mux-sel3-hog {
87c66ec88fSEmmanuel Vadot			gpio-hog;
88c66ec88fSEmmanuel Vadot			gpios = <3 0>;
89c66ec88fSEmmanuel Vadot			input;
90c66ec88fSEmmanuel Vadot			line-name = "sd_sdio_mux_sel3";
91c66ec88fSEmmanuel Vadot		};
92c66ec88fSEmmanuel Vadot
935def4c47SEmmanuel Vadot		sd-sdio-mux-ctrl7-hog {
94c66ec88fSEmmanuel Vadot			gpio-hog;
95c66ec88fSEmmanuel Vadot			gpios = <7 0>;
96c66ec88fSEmmanuel Vadot			output-low;
97c66ec88fSEmmanuel Vadot			line-name = "sd_sdio_mux_ctrl7";
98c66ec88fSEmmanuel Vadot		};
99c66ec88fSEmmanuel Vadot
1005def4c47SEmmanuel Vadot		hw-id0-hog {
101c66ec88fSEmmanuel Vadot			gpio-hog;
102c66ec88fSEmmanuel Vadot			gpios = <8 0>;
103c66ec88fSEmmanuel Vadot			input;
104c66ec88fSEmmanuel Vadot			line-name = "hw_id0";
105c66ec88fSEmmanuel Vadot		};
106c66ec88fSEmmanuel Vadot
1075def4c47SEmmanuel Vadot		hw-id1-hog {
108c66ec88fSEmmanuel Vadot			gpio-hog;
109c66ec88fSEmmanuel Vadot			gpios = <9 0>;
110c66ec88fSEmmanuel Vadot			input;
111c66ec88fSEmmanuel Vadot			line-name = "hw_id1";
112c66ec88fSEmmanuel Vadot		};
113c66ec88fSEmmanuel Vadot
1145def4c47SEmmanuel Vadot		hw-id2-hog {
115c66ec88fSEmmanuel Vadot			gpio-hog;
116c66ec88fSEmmanuel Vadot			gpios = <10 0>;
117c66ec88fSEmmanuel Vadot			input;
118c66ec88fSEmmanuel Vadot			line-name = "hw_id2";
119c66ec88fSEmmanuel Vadot		};
120c66ec88fSEmmanuel Vadot
1215def4c47SEmmanuel Vadot		fg-int-n-hog {
122c66ec88fSEmmanuel Vadot			gpio-hog;
123c66ec88fSEmmanuel Vadot			gpios = <11 0>;
124c66ec88fSEmmanuel Vadot			input;
125c66ec88fSEmmanuel Vadot			line-name = "fg_int_n";
126c66ec88fSEmmanuel Vadot		};
127c66ec88fSEmmanuel Vadot
1285def4c47SEmmanuel Vadot		usba-pwr-en-hog {
129c66ec88fSEmmanuel Vadot			gpio-hog;
130c66ec88fSEmmanuel Vadot			gpios = <12 0>;
131c66ec88fSEmmanuel Vadot			output-high;
132c66ec88fSEmmanuel Vadot			line-name = "usba_pwr_en";
133c66ec88fSEmmanuel Vadot		};
134c66ec88fSEmmanuel Vadot
1355def4c47SEmmanuel Vadot		wifi-3v3-pg-hog {
136c66ec88fSEmmanuel Vadot			gpio-hog;
137c66ec88fSEmmanuel Vadot			gpios = <13 0>;
138c66ec88fSEmmanuel Vadot			input;
139c66ec88fSEmmanuel Vadot			line-name = "wifi_3v3_pg";
140c66ec88fSEmmanuel Vadot		};
141c66ec88fSEmmanuel Vadot
1425def4c47SEmmanuel Vadot		cam-rst-hog {
143c66ec88fSEmmanuel Vadot			gpio-hog;
144c66ec88fSEmmanuel Vadot			gpios = <14 0>;
145c66ec88fSEmmanuel Vadot			output-low;
146c66ec88fSEmmanuel Vadot			line-name = "cam_rst";
147c66ec88fSEmmanuel Vadot		};
148c66ec88fSEmmanuel Vadot
1495def4c47SEmmanuel Vadot		cam-pwdn-hog {
150c66ec88fSEmmanuel Vadot			gpio-hog;
151c66ec88fSEmmanuel Vadot			gpios = <15 0>;
152c66ec88fSEmmanuel Vadot			output-low;
153c66ec88fSEmmanuel Vadot			line-name = "cam_pwdn";
154c66ec88fSEmmanuel Vadot		};
155c66ec88fSEmmanuel Vadot	};
156c66ec88fSEmmanuel Vadot};
157c66ec88fSEmmanuel Vadot
158c66ec88fSEmmanuel Vadot&i2c2 {
159c66ec88fSEmmanuel Vadot	clock-div = <2>;
160c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
161c66ec88fSEmmanuel Vadot	pinctrl-0 = <&i2c2_pins_a>;
162c66ec88fSEmmanuel Vadot	status = "okay";
163c66ec88fSEmmanuel Vadot};
164c66ec88fSEmmanuel Vadot
165c66ec88fSEmmanuel Vadot&uart0 {
166c66ec88fSEmmanuel Vadot	status = "okay";
167c66ec88fSEmmanuel Vadot};
168c66ec88fSEmmanuel Vadot
169c66ec88fSEmmanuel Vadot&ethernet {
170c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
171c66ec88fSEmmanuel Vadot	pinctrl-0 = <&ethernet_pins_default>;
172c66ec88fSEmmanuel Vadot	phy-handle = <&eth_phy>;
173c66ec88fSEmmanuel Vadot	phy-mode = "rmii";
174c66ec88fSEmmanuel Vadot	mac-address = [00 00 00 00 00 00];
175c66ec88fSEmmanuel Vadot	status = "okay";
176c66ec88fSEmmanuel Vadot
177c66ec88fSEmmanuel Vadot	mdio {
178c66ec88fSEmmanuel Vadot		#address-cells = <1>;
179c66ec88fSEmmanuel Vadot		#size-cells = <0>;
180c66ec88fSEmmanuel Vadot
181c66ec88fSEmmanuel Vadot		eth_phy: ethernet-phy@0 {
182c66ec88fSEmmanuel Vadot			reg = <0>;
183c66ec88fSEmmanuel Vadot		};
184c66ec88fSEmmanuel Vadot	};
185c66ec88fSEmmanuel Vadot};
186c66ec88fSEmmanuel Vadot
187c66ec88fSEmmanuel Vadot&usb0 {
188c66ec88fSEmmanuel Vadot	status = "okay";
189c66ec88fSEmmanuel Vadot	dr_mode = "peripheral";
1902eb4d8dcSEmmanuel Vadot	usb-role-switch;
191c66ec88fSEmmanuel Vadot
192c66ec88fSEmmanuel Vadot	usb_con: connector {
193c66ec88fSEmmanuel Vadot		compatible = "usb-c-connector";
194c66ec88fSEmmanuel Vadot		label = "USB-C";
195c66ec88fSEmmanuel Vadot	};
196c66ec88fSEmmanuel Vadot};
197c66ec88fSEmmanuel Vadot
1985def4c47SEmmanuel Vadot&usb_phy {
199c66ec88fSEmmanuel Vadot	status = "okay";
200c66ec88fSEmmanuel Vadot};
201c66ec88fSEmmanuel Vadot
202c66ec88fSEmmanuel Vadot&pio {
203c66ec88fSEmmanuel Vadot	gpio_keys_default: gpiodefault {
204c66ec88fSEmmanuel Vadot		pins_cmd_dat {
205c66ec88fSEmmanuel Vadot			pinmux = <MT8516_PIN_42_KPCOL0__FUNC_GPIO42>,
206c66ec88fSEmmanuel Vadot				 <MT8516_PIN_43_KPCOL1__FUNC_GPIO43>;
207c66ec88fSEmmanuel Vadot			bias-pull-up;
208c66ec88fSEmmanuel Vadot			input-enable;
209c66ec88fSEmmanuel Vadot		};
210c66ec88fSEmmanuel Vadot	};
211c66ec88fSEmmanuel Vadot
212*8bab661aSEmmanuel Vadot	i2c0_pins_a: i2c0 {
213c66ec88fSEmmanuel Vadot		pins1 {
214c66ec88fSEmmanuel Vadot			pinmux = <MT8516_PIN_58_SDA0__FUNC_SDA0_0>,
215c66ec88fSEmmanuel Vadot				 <MT8516_PIN_59_SCL0__FUNC_SCL0_0>;
216c66ec88fSEmmanuel Vadot			bias-disable;
217c66ec88fSEmmanuel Vadot		};
218c66ec88fSEmmanuel Vadot	};
219c66ec88fSEmmanuel Vadot
220*8bab661aSEmmanuel Vadot	i2c2_pins_a: i2c2 {
221c66ec88fSEmmanuel Vadot		pins1 {
222c66ec88fSEmmanuel Vadot			pinmux = <MT8516_PIN_60_SDA2__FUNC_SDA2_0>,
223c66ec88fSEmmanuel Vadot				 <MT8516_PIN_61_SCL2__FUNC_SCL2_0>;
224c66ec88fSEmmanuel Vadot			bias-disable;
225c66ec88fSEmmanuel Vadot		};
226c66ec88fSEmmanuel Vadot	};
227c66ec88fSEmmanuel Vadot
228c66ec88fSEmmanuel Vadot	tca6416_pins: pinmux_tca6416_pins {
229c66ec88fSEmmanuel Vadot		gpio_mux_rst_n_pin {
230c66ec88fSEmmanuel Vadot			pinmux = <MT8516_PIN_65_UTXD1__FUNC_GPIO65>;
231c66ec88fSEmmanuel Vadot			output-high;
232c66ec88fSEmmanuel Vadot		};
233c66ec88fSEmmanuel Vadot
234c66ec88fSEmmanuel Vadot		gpio_mux_int_n_pin {
235c66ec88fSEmmanuel Vadot			pinmux = <MT8516_PIN_64_URXD1__FUNC_GPIO64>;
236c66ec88fSEmmanuel Vadot			input-enable;
237c66ec88fSEmmanuel Vadot			bias-pull-up;
238c66ec88fSEmmanuel Vadot		};
239c66ec88fSEmmanuel Vadot	};
240c66ec88fSEmmanuel Vadot
241c66ec88fSEmmanuel Vadot	ethernet_pins_default: ethernet {
242c66ec88fSEmmanuel Vadot		pins_ethernet {
243c66ec88fSEmmanuel Vadot			pinmux = <MT8516_PIN_0_EINT0__FUNC_EXT_TXD0>,
244c66ec88fSEmmanuel Vadot				 <MT8516_PIN_1_EINT1__FUNC_EXT_TXD1>,
245c66ec88fSEmmanuel Vadot				 <MT8516_PIN_5_EINT5__FUNC_EXT_RXER>,
246c66ec88fSEmmanuel Vadot				 <MT8516_PIN_6_EINT6__FUNC_EXT_RXC>,
247c66ec88fSEmmanuel Vadot				 <MT8516_PIN_7_EINT7__FUNC_EXT_RXDV>,
248c66ec88fSEmmanuel Vadot				 <MT8516_PIN_8_EINT8__FUNC_EXT_RXD0>,
249c66ec88fSEmmanuel Vadot				 <MT8516_PIN_9_EINT9__FUNC_EXT_RXD1>,
250c66ec88fSEmmanuel Vadot				 <MT8516_PIN_12_EINT12__FUNC_EXT_TXEN>,
251c66ec88fSEmmanuel Vadot				 <MT8516_PIN_38_MRG_DI__FUNC_EXT_MDIO>,
252c66ec88fSEmmanuel Vadot				 <MT8516_PIN_39_MRG_DO__FUNC_EXT_MDC>;
253c66ec88fSEmmanuel Vadot		};
254c66ec88fSEmmanuel Vadot	};
255c66ec88fSEmmanuel Vadot};
256