18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (c) 2019 BayLibre, SAS.
48c2ecf20Sopenharmony_ci * Author: Fabien Parent <fparent@baylibre.com>
58c2ecf20Sopenharmony_ci */
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci/ {
108c2ecf20Sopenharmony_ci	aliases {
118c2ecf20Sopenharmony_ci		serial0 = &uart0;
128c2ecf20Sopenharmony_ci		ethernet0 = &ethernet;
138c2ecf20Sopenharmony_ci	};
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci	chosen {
168c2ecf20Sopenharmony_ci		stdout-path = "serial0:921600n8";
178c2ecf20Sopenharmony_ci	};
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci	firmware {
208c2ecf20Sopenharmony_ci		optee: optee {
218c2ecf20Sopenharmony_ci			compatible = "linaro,optee-tz";
228c2ecf20Sopenharmony_ci			method = "smc";
238c2ecf20Sopenharmony_ci		};
248c2ecf20Sopenharmony_ci	};
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci	gpio-keys {
278c2ecf20Sopenharmony_ci		compatible = "gpio-keys";
288c2ecf20Sopenharmony_ci		input-name = "gpio-keys";
298c2ecf20Sopenharmony_ci		pinctrl-names = "default";
308c2ecf20Sopenharmony_ci		pinctrl-0 = <&gpio_keys_default>;
318c2ecf20Sopenharmony_ci
328c2ecf20Sopenharmony_ci		volume-up {
338c2ecf20Sopenharmony_ci			gpios = <&pio 42 GPIO_ACTIVE_LOW>;
348c2ecf20Sopenharmony_ci			label = "volume_up";
358c2ecf20Sopenharmony_ci			linux,code = <115>;
368c2ecf20Sopenharmony_ci			wakeup-source;
378c2ecf20Sopenharmony_ci			debounce-interval = <15>;
388c2ecf20Sopenharmony_ci		};
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci		volume-down {
418c2ecf20Sopenharmony_ci			gpios = <&pio 43 GPIO_ACTIVE_LOW>;
428c2ecf20Sopenharmony_ci			label = "volume_down";
438c2ecf20Sopenharmony_ci			linux,code = <114>;
448c2ecf20Sopenharmony_ci			wakeup-source;
458c2ecf20Sopenharmony_ci			debounce-interval = <15>;
468c2ecf20Sopenharmony_ci		};
478c2ecf20Sopenharmony_ci	};
488c2ecf20Sopenharmony_ci};
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci&i2c0 {
518c2ecf20Sopenharmony_ci	clock-div = <2>;
528c2ecf20Sopenharmony_ci	pinctrl-names = "default";
538c2ecf20Sopenharmony_ci	pinctrl-0 = <&i2c0_pins_a>;
548c2ecf20Sopenharmony_ci	status = "okay";
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci	tca6416: gpio@20 {
578c2ecf20Sopenharmony_ci		compatible = "ti,tca6416";
588c2ecf20Sopenharmony_ci		reg = <0x20>;
598c2ecf20Sopenharmony_ci		reset-gpios = <&pio 65 GPIO_ACTIVE_LOW>;
608c2ecf20Sopenharmony_ci		pinctrl-names = "default";
618c2ecf20Sopenharmony_ci		pinctrl-0 = <&tca6416_pins>;
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci		gpio-controller;
648c2ecf20Sopenharmony_ci		#gpio-cells = <2>;
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci		eint20_mux_sel0 {
678c2ecf20Sopenharmony_ci			gpio-hog;
688c2ecf20Sopenharmony_ci			gpios = <0 0>;
698c2ecf20Sopenharmony_ci			input;
708c2ecf20Sopenharmony_ci			line-name = "eint20_mux_sel0";
718c2ecf20Sopenharmony_ci		};
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci		expcon_mux_sel1 {
748c2ecf20Sopenharmony_ci			gpio-hog;
758c2ecf20Sopenharmony_ci			gpios = <1 0>;
768c2ecf20Sopenharmony_ci			input;
778c2ecf20Sopenharmony_ci			line-name = "expcon_mux_sel1";
788c2ecf20Sopenharmony_ci		};
798c2ecf20Sopenharmony_ci
808c2ecf20Sopenharmony_ci		mrg_di_mux_sel2 {
818c2ecf20Sopenharmony_ci			gpio-hog;
828c2ecf20Sopenharmony_ci			gpios = <2 0>;
838c2ecf20Sopenharmony_ci			input;
848c2ecf20Sopenharmony_ci			line-name = "mrg_di_mux_sel2";
858c2ecf20Sopenharmony_ci		};
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci		sd_sdio_mux_sel3 {
888c2ecf20Sopenharmony_ci			gpio-hog;
898c2ecf20Sopenharmony_ci			gpios = <3 0>;
908c2ecf20Sopenharmony_ci			input;
918c2ecf20Sopenharmony_ci			line-name = "sd_sdio_mux_sel3";
928c2ecf20Sopenharmony_ci		};
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci		sd_sdio_mux_ctrl7 {
958c2ecf20Sopenharmony_ci			gpio-hog;
968c2ecf20Sopenharmony_ci			gpios = <7 0>;
978c2ecf20Sopenharmony_ci			output-low;
988c2ecf20Sopenharmony_ci			line-name = "sd_sdio_mux_ctrl7";
998c2ecf20Sopenharmony_ci		};
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ci		hw_id0 {
1028c2ecf20Sopenharmony_ci			gpio-hog;
1038c2ecf20Sopenharmony_ci			gpios = <8 0>;
1048c2ecf20Sopenharmony_ci			input;
1058c2ecf20Sopenharmony_ci			line-name = "hw_id0";
1068c2ecf20Sopenharmony_ci		};
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ci		hw_id1 {
1098c2ecf20Sopenharmony_ci			gpio-hog;
1108c2ecf20Sopenharmony_ci			gpios = <9 0>;
1118c2ecf20Sopenharmony_ci			input;
1128c2ecf20Sopenharmony_ci			line-name = "hw_id1";
1138c2ecf20Sopenharmony_ci		};
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci		hw_id2 {
1168c2ecf20Sopenharmony_ci			gpio-hog;
1178c2ecf20Sopenharmony_ci			gpios = <10 0>;
1188c2ecf20Sopenharmony_ci			input;
1198c2ecf20Sopenharmony_ci			line-name = "hw_id2";
1208c2ecf20Sopenharmony_ci		};
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ci		fg_int_n {
1238c2ecf20Sopenharmony_ci			gpio-hog;
1248c2ecf20Sopenharmony_ci			gpios = <11 0>;
1258c2ecf20Sopenharmony_ci			input;
1268c2ecf20Sopenharmony_ci			line-name = "fg_int_n";
1278c2ecf20Sopenharmony_ci		};
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ci		usba_pwr_en {
1308c2ecf20Sopenharmony_ci			gpio-hog;
1318c2ecf20Sopenharmony_ci			gpios = <12 0>;
1328c2ecf20Sopenharmony_ci			output-high;
1338c2ecf20Sopenharmony_ci			line-name = "usba_pwr_en";
1348c2ecf20Sopenharmony_ci		};
1358c2ecf20Sopenharmony_ci
1368c2ecf20Sopenharmony_ci		wifi_3v3_pg {
1378c2ecf20Sopenharmony_ci			gpio-hog;
1388c2ecf20Sopenharmony_ci			gpios = <13 0>;
1398c2ecf20Sopenharmony_ci			input;
1408c2ecf20Sopenharmony_ci			line-name = "wifi_3v3_pg";
1418c2ecf20Sopenharmony_ci		};
1428c2ecf20Sopenharmony_ci
1438c2ecf20Sopenharmony_ci		cam_rst {
1448c2ecf20Sopenharmony_ci			gpio-hog;
1458c2ecf20Sopenharmony_ci			gpios = <14 0>;
1468c2ecf20Sopenharmony_ci			output-low;
1478c2ecf20Sopenharmony_ci			line-name = "cam_rst";
1488c2ecf20Sopenharmony_ci		};
1498c2ecf20Sopenharmony_ci
1508c2ecf20Sopenharmony_ci		cam_pwdn {
1518c2ecf20Sopenharmony_ci			gpio-hog;
1528c2ecf20Sopenharmony_ci			gpios = <15 0>;
1538c2ecf20Sopenharmony_ci			output-low;
1548c2ecf20Sopenharmony_ci			line-name = "cam_pwdn";
1558c2ecf20Sopenharmony_ci		};
1568c2ecf20Sopenharmony_ci	};
1578c2ecf20Sopenharmony_ci};
1588c2ecf20Sopenharmony_ci
1598c2ecf20Sopenharmony_ci&i2c2 {
1608c2ecf20Sopenharmony_ci	clock-div = <2>;
1618c2ecf20Sopenharmony_ci	pinctrl-names = "default";
1628c2ecf20Sopenharmony_ci	pinctrl-0 = <&i2c2_pins_a>;
1638c2ecf20Sopenharmony_ci	status = "okay";
1648c2ecf20Sopenharmony_ci};
1658c2ecf20Sopenharmony_ci
1668c2ecf20Sopenharmony_ci&uart0 {
1678c2ecf20Sopenharmony_ci	status = "okay";
1688c2ecf20Sopenharmony_ci};
1698c2ecf20Sopenharmony_ci
1708c2ecf20Sopenharmony_ci&ethernet {
1718c2ecf20Sopenharmony_ci	pinctrl-names = "default";
1728c2ecf20Sopenharmony_ci	pinctrl-0 = <&ethernet_pins_default>;
1738c2ecf20Sopenharmony_ci	phy-handle = <&eth_phy>;
1748c2ecf20Sopenharmony_ci	phy-mode = "rmii";
1758c2ecf20Sopenharmony_ci	mac-address = [00 00 00 00 00 00];
1768c2ecf20Sopenharmony_ci	status = "okay";
1778c2ecf20Sopenharmony_ci
1788c2ecf20Sopenharmony_ci	mdio {
1798c2ecf20Sopenharmony_ci		#address-cells = <1>;
1808c2ecf20Sopenharmony_ci		#size-cells = <0>;
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_ci		eth_phy: ethernet-phy@0 {
1838c2ecf20Sopenharmony_ci			reg = <0>;
1848c2ecf20Sopenharmony_ci		};
1858c2ecf20Sopenharmony_ci	};
1868c2ecf20Sopenharmony_ci};
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_ci&usb0 {
1898c2ecf20Sopenharmony_ci	status = "okay";
1908c2ecf20Sopenharmony_ci	dr_mode = "peripheral";
1918c2ecf20Sopenharmony_ci
1928c2ecf20Sopenharmony_ci	usb_con: connector {
1938c2ecf20Sopenharmony_ci		compatible = "usb-c-connector";
1948c2ecf20Sopenharmony_ci		label = "USB-C";
1958c2ecf20Sopenharmony_ci	};
1968c2ecf20Sopenharmony_ci};
1978c2ecf20Sopenharmony_ci
1988c2ecf20Sopenharmony_ci&usb0_phy {
1998c2ecf20Sopenharmony_ci	status = "okay";
2008c2ecf20Sopenharmony_ci};
2018c2ecf20Sopenharmony_ci
2028c2ecf20Sopenharmony_ci&pio {
2038c2ecf20Sopenharmony_ci	gpio_keys_default: gpiodefault {
2048c2ecf20Sopenharmony_ci		pins_cmd_dat {
2058c2ecf20Sopenharmony_ci			pinmux = <MT8516_PIN_42_KPCOL0__FUNC_GPIO42>,
2068c2ecf20Sopenharmony_ci				 <MT8516_PIN_43_KPCOL1__FUNC_GPIO43>;
2078c2ecf20Sopenharmony_ci			bias-pull-up;
2088c2ecf20Sopenharmony_ci			input-enable;
2098c2ecf20Sopenharmony_ci		};
2108c2ecf20Sopenharmony_ci	};
2118c2ecf20Sopenharmony_ci
2128c2ecf20Sopenharmony_ci	i2c0_pins_a: i2c0 {
2138c2ecf20Sopenharmony_ci		pins1 {
2148c2ecf20Sopenharmony_ci			pinmux = <MT8516_PIN_58_SDA0__FUNC_SDA0_0>,
2158c2ecf20Sopenharmony_ci				 <MT8516_PIN_59_SCL0__FUNC_SCL0_0>;
2168c2ecf20Sopenharmony_ci			bias-disable;
2178c2ecf20Sopenharmony_ci		};
2188c2ecf20Sopenharmony_ci	};
2198c2ecf20Sopenharmony_ci
2208c2ecf20Sopenharmony_ci	i2c2_pins_a: i2c2 {
2218c2ecf20Sopenharmony_ci		pins1 {
2228c2ecf20Sopenharmony_ci			pinmux = <MT8516_PIN_60_SDA2__FUNC_SDA2_0>,
2238c2ecf20Sopenharmony_ci				 <MT8516_PIN_61_SCL2__FUNC_SCL2_0>;
2248c2ecf20Sopenharmony_ci			bias-disable;
2258c2ecf20Sopenharmony_ci		};
2268c2ecf20Sopenharmony_ci	};
2278c2ecf20Sopenharmony_ci
2288c2ecf20Sopenharmony_ci	tca6416_pins: pinmux_tca6416_pins {
2298c2ecf20Sopenharmony_ci		gpio_mux_rst_n_pin {
2308c2ecf20Sopenharmony_ci			pinmux = <MT8516_PIN_65_UTXD1__FUNC_GPIO65>;
2318c2ecf20Sopenharmony_ci			output-high;
2328c2ecf20Sopenharmony_ci		};
2338c2ecf20Sopenharmony_ci
2348c2ecf20Sopenharmony_ci		gpio_mux_int_n_pin {
2358c2ecf20Sopenharmony_ci			pinmux = <MT8516_PIN_64_URXD1__FUNC_GPIO64>;
2368c2ecf20Sopenharmony_ci			input-enable;
2378c2ecf20Sopenharmony_ci			bias-pull-up;
2388c2ecf20Sopenharmony_ci		};
2398c2ecf20Sopenharmony_ci	};
2408c2ecf20Sopenharmony_ci
2418c2ecf20Sopenharmony_ci	ethernet_pins_default: ethernet {
2428c2ecf20Sopenharmony_ci		pins_ethernet {
2438c2ecf20Sopenharmony_ci			pinmux = <MT8516_PIN_0_EINT0__FUNC_EXT_TXD0>,
2448c2ecf20Sopenharmony_ci				 <MT8516_PIN_1_EINT1__FUNC_EXT_TXD1>,
2458c2ecf20Sopenharmony_ci				 <MT8516_PIN_5_EINT5__FUNC_EXT_RXER>,
2468c2ecf20Sopenharmony_ci				 <MT8516_PIN_6_EINT6__FUNC_EXT_RXC>,
2478c2ecf20Sopenharmony_ci				 <MT8516_PIN_7_EINT7__FUNC_EXT_RXDV>,
2488c2ecf20Sopenharmony_ci				 <MT8516_PIN_8_EINT8__FUNC_EXT_RXD0>,
2498c2ecf20Sopenharmony_ci				 <MT8516_PIN_9_EINT9__FUNC_EXT_RXD1>,
2508c2ecf20Sopenharmony_ci				 <MT8516_PIN_12_EINT12__FUNC_EXT_TXEN>,
2518c2ecf20Sopenharmony_ci				 <MT8516_PIN_38_MRG_DI__FUNC_EXT_MDIO>,
2528c2ecf20Sopenharmony_ci				 <MT8516_PIN_39_MRG_DO__FUNC_EXT_MDC>;
2538c2ecf20Sopenharmony_ci		};
2548c2ecf20Sopenharmony_ci	};
2558c2ecf20Sopenharmony_ci};
256