18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * Copyright (C) 2019-2020 Marek Vasut <marex@denx.de>
48c2ecf20Sopenharmony_ci */
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ci#include <dt-bindings/input/input.h>
78c2ecf20Sopenharmony_ci#include <dt-bindings/pwm/pwm.h>
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci/ {
108c2ecf20Sopenharmony_ci	aliases {
118c2ecf20Sopenharmony_ci		serial0 = &uart4;
128c2ecf20Sopenharmony_ci		serial1 = &usart3;
138c2ecf20Sopenharmony_ci		serial2 = &uart8;
148c2ecf20Sopenharmony_ci	};
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci	chosen {
178c2ecf20Sopenharmony_ci		stdout-path = "serial0:115200n8";
188c2ecf20Sopenharmony_ci	};
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci	clk_ext_audio_codec: clock-codec {
218c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
228c2ecf20Sopenharmony_ci		#clock-cells = <0>;
238c2ecf20Sopenharmony_ci		clock-frequency = <24000000>;
248c2ecf20Sopenharmony_ci	};
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci	display_bl: display-bl {
278c2ecf20Sopenharmony_ci		compatible = "pwm-backlight";
288c2ecf20Sopenharmony_ci		pwms = <&pwm2 3 500000 PWM_POLARITY_INVERTED>;
298c2ecf20Sopenharmony_ci		brightness-levels = <0 16 22 30 40 55 75 102 138 188 255>;
308c2ecf20Sopenharmony_ci		default-brightness-level = <8>;
318c2ecf20Sopenharmony_ci		enable-gpios = <&gpioi 0 GPIO_ACTIVE_HIGH>;
328c2ecf20Sopenharmony_ci		status = "okay";
338c2ecf20Sopenharmony_ci	};
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci	gpio-keys-polled {
368c2ecf20Sopenharmony_ci		compatible = "gpio-keys-polled";
378c2ecf20Sopenharmony_ci		poll-interval = <20>;
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci		/*
408c2ecf20Sopenharmony_ci		 * The EXTi IRQ line 3 is shared with ethernet,
418c2ecf20Sopenharmony_ci		 * so mark this as polled GPIO key.
428c2ecf20Sopenharmony_ci		 */
438c2ecf20Sopenharmony_ci		button-0 {
448c2ecf20Sopenharmony_ci			label = "TA1-GPIO-A";
458c2ecf20Sopenharmony_ci			linux,code = <KEY_A>;
468c2ecf20Sopenharmony_ci			gpios = <&gpiof 3 GPIO_ACTIVE_LOW>;
478c2ecf20Sopenharmony_ci		};
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci		/*
508c2ecf20Sopenharmony_ci		 * The EXTi IRQ line 6 is shared with touchscreen,
518c2ecf20Sopenharmony_ci		 * so mark this as polled GPIO key.
528c2ecf20Sopenharmony_ci		 */
538c2ecf20Sopenharmony_ci		button-1 {
548c2ecf20Sopenharmony_ci			label = "TA2-GPIO-B";
558c2ecf20Sopenharmony_ci			linux,code = <KEY_B>;
568c2ecf20Sopenharmony_ci			gpios = <&gpiod 6 GPIO_ACTIVE_LOW>;
578c2ecf20Sopenharmony_ci		};
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci		/*
608c2ecf20Sopenharmony_ci		 * The EXTi IRQ line 0 is shared with PMIC,
618c2ecf20Sopenharmony_ci		 * so mark this as polled GPIO key.
628c2ecf20Sopenharmony_ci		 */
638c2ecf20Sopenharmony_ci		button-2 {
648c2ecf20Sopenharmony_ci			label = "TA3-GPIO-C";
658c2ecf20Sopenharmony_ci			linux,code = <KEY_C>;
668c2ecf20Sopenharmony_ci			gpios = <&gpiog 0 GPIO_ACTIVE_LOW>;
678c2ecf20Sopenharmony_ci		};
688c2ecf20Sopenharmony_ci	};
698c2ecf20Sopenharmony_ci
708c2ecf20Sopenharmony_ci	gpio-keys {
718c2ecf20Sopenharmony_ci		compatible = "gpio-keys";
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci		button-3 {
748c2ecf20Sopenharmony_ci			label = "TA4-GPIO-D";
758c2ecf20Sopenharmony_ci			linux,code = <KEY_D>;
768c2ecf20Sopenharmony_ci			gpios = <&gpiod 12 GPIO_ACTIVE_LOW>;
778c2ecf20Sopenharmony_ci			wakeup-source;
788c2ecf20Sopenharmony_ci		};
798c2ecf20Sopenharmony_ci	};
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ci	led {
828c2ecf20Sopenharmony_ci		compatible = "gpio-leds";
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci		led-0 {
858c2ecf20Sopenharmony_ci			label = "green:led5";
868c2ecf20Sopenharmony_ci			gpios = <&gpioc 6 GPIO_ACTIVE_HIGH>;
878c2ecf20Sopenharmony_ci			default-state = "off";
888c2ecf20Sopenharmony_ci			status = "disabled";
898c2ecf20Sopenharmony_ci		};
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ci		led-1 {
928c2ecf20Sopenharmony_ci			label = "green:led6";
938c2ecf20Sopenharmony_ci			gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>;
948c2ecf20Sopenharmony_ci			default-state = "off";
958c2ecf20Sopenharmony_ci		};
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci		led-2 {
988c2ecf20Sopenharmony_ci			label = "green:led7";
998c2ecf20Sopenharmony_ci			gpios = <&gpioi 2 GPIO_ACTIVE_HIGH>;
1008c2ecf20Sopenharmony_ci			default-state = "off";
1018c2ecf20Sopenharmony_ci		};
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ci		led-3 {
1048c2ecf20Sopenharmony_ci			label = "green:led8";
1058c2ecf20Sopenharmony_ci			gpios = <&gpioi 3 GPIO_ACTIVE_HIGH>;
1068c2ecf20Sopenharmony_ci			default-state = "off";
1078c2ecf20Sopenharmony_ci		};
1088c2ecf20Sopenharmony_ci	};
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ci	panel {
1118c2ecf20Sopenharmony_ci		compatible = "edt,etm0700g0edh6";
1128c2ecf20Sopenharmony_ci		backlight = <&display_bl>;
1138c2ecf20Sopenharmony_ci
1148c2ecf20Sopenharmony_ci		port {
1158c2ecf20Sopenharmony_ci			lcd_panel_in: endpoint {
1168c2ecf20Sopenharmony_ci				remote-endpoint = <&lcd_display_out>;
1178c2ecf20Sopenharmony_ci			};
1188c2ecf20Sopenharmony_ci		};
1198c2ecf20Sopenharmony_ci	};
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ci	sound {
1228c2ecf20Sopenharmony_ci		compatible = "audio-graph-card";
1238c2ecf20Sopenharmony_ci		widgets = "Headphone", "Headphone Jack",
1248c2ecf20Sopenharmony_ci			  "Line", "Line In Jack",
1258c2ecf20Sopenharmony_ci			  "Microphone", "Microphone Jack";
1268c2ecf20Sopenharmony_ci		routing = "Headphone Jack", "HP_OUT",
1278c2ecf20Sopenharmony_ci			  "LINE_IN", "Line In Jack",
1288c2ecf20Sopenharmony_ci			  "MIC_IN", "Microphone Jack",
1298c2ecf20Sopenharmony_ci			  "Microphone Jack", "Mic Bias";
1308c2ecf20Sopenharmony_ci		dais = <&sai2a_port &sai2b_port>;
1318c2ecf20Sopenharmony_ci		status = "okay";
1328c2ecf20Sopenharmony_ci	};
1338c2ecf20Sopenharmony_ci};
1348c2ecf20Sopenharmony_ci
1358c2ecf20Sopenharmony_ci&cec {
1368c2ecf20Sopenharmony_ci	pinctrl-names = "default";
1378c2ecf20Sopenharmony_ci	pinctrl-0 = <&cec_pins_a>;
1388c2ecf20Sopenharmony_ci	status = "okay";
1398c2ecf20Sopenharmony_ci};
1408c2ecf20Sopenharmony_ci
1418c2ecf20Sopenharmony_ci&i2c2 {	/* Header X22 */
1428c2ecf20Sopenharmony_ci	pinctrl-names = "default";
1438c2ecf20Sopenharmony_ci	pinctrl-0 = <&i2c2_pins_a>;
1448c2ecf20Sopenharmony_ci	i2c-scl-rising-time-ns = <185>;
1458c2ecf20Sopenharmony_ci	i2c-scl-falling-time-ns = <20>;
1468c2ecf20Sopenharmony_ci	status = "okay";
1478c2ecf20Sopenharmony_ci	/* spare dmas for other usage */
1488c2ecf20Sopenharmony_ci	/delete-property/dmas;
1498c2ecf20Sopenharmony_ci	/delete-property/dma-names;
1508c2ecf20Sopenharmony_ci	status = "okay";
1518c2ecf20Sopenharmony_ci};
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ci&i2c5 {	/* Header X21 */
1548c2ecf20Sopenharmony_ci	pinctrl-names = "default";
1558c2ecf20Sopenharmony_ci	pinctrl-0 = <&i2c5_pins_a>;
1568c2ecf20Sopenharmony_ci	i2c-scl-rising-time-ns = <185>;
1578c2ecf20Sopenharmony_ci	i2c-scl-falling-time-ns = <20>;
1588c2ecf20Sopenharmony_ci	status = "okay";
1598c2ecf20Sopenharmony_ci	/* spare dmas for other usage */
1608c2ecf20Sopenharmony_ci	/delete-property/dmas;
1618c2ecf20Sopenharmony_ci	/delete-property/dma-names;
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ci	sgtl5000: codec@a {
1648c2ecf20Sopenharmony_ci		compatible = "fsl,sgtl5000";
1658c2ecf20Sopenharmony_ci		reg = <0x0a>;
1668c2ecf20Sopenharmony_ci		#sound-dai-cells = <0>;
1678c2ecf20Sopenharmony_ci		clocks = <&clk_ext_audio_codec>;
1688c2ecf20Sopenharmony_ci		VDDA-supply = <&v3v3>;
1698c2ecf20Sopenharmony_ci		VDDIO-supply = <&vdd>;
1708c2ecf20Sopenharmony_ci
1718c2ecf20Sopenharmony_ci		sgtl5000_port: port {
1728c2ecf20Sopenharmony_ci			#address-cells = <1>;
1738c2ecf20Sopenharmony_ci			#size-cells = <0>;
1748c2ecf20Sopenharmony_ci
1758c2ecf20Sopenharmony_ci			sgtl5000_tx_endpoint: endpoint@0 {
1768c2ecf20Sopenharmony_ci				reg = <0>;
1778c2ecf20Sopenharmony_ci				remote-endpoint = <&sai2a_endpoint>;
1788c2ecf20Sopenharmony_ci				frame-master = <&sgtl5000_tx_endpoint>;
1798c2ecf20Sopenharmony_ci				bitclock-master = <&sgtl5000_tx_endpoint>;
1808c2ecf20Sopenharmony_ci			};
1818c2ecf20Sopenharmony_ci
1828c2ecf20Sopenharmony_ci			sgtl5000_rx_endpoint: endpoint@1 {
1838c2ecf20Sopenharmony_ci				reg = <1>;
1848c2ecf20Sopenharmony_ci				remote-endpoint = <&sai2b_endpoint>;
1858c2ecf20Sopenharmony_ci				frame-master = <&sgtl5000_rx_endpoint>;
1868c2ecf20Sopenharmony_ci				bitclock-master = <&sgtl5000_rx_endpoint>;
1878c2ecf20Sopenharmony_ci			};
1888c2ecf20Sopenharmony_ci		};
1898c2ecf20Sopenharmony_ci
1908c2ecf20Sopenharmony_ci	};
1918c2ecf20Sopenharmony_ci
1928c2ecf20Sopenharmony_ci	touchscreen@38 {
1938c2ecf20Sopenharmony_ci		compatible = "edt,edt-ft5406";
1948c2ecf20Sopenharmony_ci		reg = <0x38>;
1958c2ecf20Sopenharmony_ci		interrupt-parent = <&gpioc>;
1968c2ecf20Sopenharmony_ci		interrupts = <6 IRQ_TYPE_EDGE_FALLING>; /* GPIO E */
1978c2ecf20Sopenharmony_ci	};
1988c2ecf20Sopenharmony_ci};
1998c2ecf20Sopenharmony_ci
2008c2ecf20Sopenharmony_ci&ltdc {
2018c2ecf20Sopenharmony_ci	pinctrl-names = "default", "sleep";
2028c2ecf20Sopenharmony_ci	pinctrl-0 = <&ltdc_pins_b>;
2038c2ecf20Sopenharmony_ci	pinctrl-1 = <&ltdc_sleep_pins_b>;
2048c2ecf20Sopenharmony_ci	status = "okay";
2058c2ecf20Sopenharmony_ci
2068c2ecf20Sopenharmony_ci	port {
2078c2ecf20Sopenharmony_ci		lcd_display_out: endpoint {
2088c2ecf20Sopenharmony_ci			remote-endpoint = <&lcd_panel_in>;
2098c2ecf20Sopenharmony_ci		};
2108c2ecf20Sopenharmony_ci	};
2118c2ecf20Sopenharmony_ci};
2128c2ecf20Sopenharmony_ci
2138c2ecf20Sopenharmony_ci&sai2 {
2148c2ecf20Sopenharmony_ci	clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>;
2158c2ecf20Sopenharmony_ci	clock-names = "pclk", "x8k", "x11k";
2168c2ecf20Sopenharmony_ci	pinctrl-names = "default", "sleep";
2178c2ecf20Sopenharmony_ci	pinctrl-0 = <&sai2a_pins_b &sai2b_pins_b>;
2188c2ecf20Sopenharmony_ci	pinctrl-1 = <&sai2a_sleep_pins_b &sai2b_sleep_pins_b>;
2198c2ecf20Sopenharmony_ci	status = "okay";
2208c2ecf20Sopenharmony_ci
2218c2ecf20Sopenharmony_ci	sai2a: audio-controller@4400b004 {
2228c2ecf20Sopenharmony_ci		#clock-cells = <0>;
2238c2ecf20Sopenharmony_ci		dma-names = "tx";
2248c2ecf20Sopenharmony_ci		clocks = <&rcc SAI2_K>;
2258c2ecf20Sopenharmony_ci		clock-names = "sai_ck";
2268c2ecf20Sopenharmony_ci		status = "okay";
2278c2ecf20Sopenharmony_ci
2288c2ecf20Sopenharmony_ci		sai2a_port: port {
2298c2ecf20Sopenharmony_ci			sai2a_endpoint: endpoint {
2308c2ecf20Sopenharmony_ci				remote-endpoint = <&sgtl5000_tx_endpoint>;
2318c2ecf20Sopenharmony_ci				format = "i2s";
2328c2ecf20Sopenharmony_ci				mclk-fs = <512>;
2338c2ecf20Sopenharmony_ci				dai-tdm-slot-num = <2>;
2348c2ecf20Sopenharmony_ci				dai-tdm-slot-width = <16>;
2358c2ecf20Sopenharmony_ci			};
2368c2ecf20Sopenharmony_ci		};
2378c2ecf20Sopenharmony_ci	};
2388c2ecf20Sopenharmony_ci
2398c2ecf20Sopenharmony_ci	sai2b: audio-controller@4400b024 {
2408c2ecf20Sopenharmony_ci		dma-names = "rx";
2418c2ecf20Sopenharmony_ci		st,sync = <&sai2a 2>;
2428c2ecf20Sopenharmony_ci		clocks = <&rcc SAI2_K>, <&sai2a>;
2438c2ecf20Sopenharmony_ci		clock-names = "sai_ck", "MCLK";
2448c2ecf20Sopenharmony_ci		status = "okay";
2458c2ecf20Sopenharmony_ci
2468c2ecf20Sopenharmony_ci		sai2b_port: port {
2478c2ecf20Sopenharmony_ci			sai2b_endpoint: endpoint {
2488c2ecf20Sopenharmony_ci				remote-endpoint = <&sgtl5000_rx_endpoint>;
2498c2ecf20Sopenharmony_ci				format = "i2s";
2508c2ecf20Sopenharmony_ci				mclk-fs = <512>;
2518c2ecf20Sopenharmony_ci				dai-tdm-slot-num = <2>;
2528c2ecf20Sopenharmony_ci				dai-tdm-slot-width = <16>;
2538c2ecf20Sopenharmony_ci			};
2548c2ecf20Sopenharmony_ci		};
2558c2ecf20Sopenharmony_ci	};
2568c2ecf20Sopenharmony_ci};
2578c2ecf20Sopenharmony_ci
2588c2ecf20Sopenharmony_ci&timers2 {
2598c2ecf20Sopenharmony_ci	/* spare dmas for other usage (un-delete to enable pwm capture) */
2608c2ecf20Sopenharmony_ci	/delete-property/dmas;
2618c2ecf20Sopenharmony_ci	/delete-property/dma-names;
2628c2ecf20Sopenharmony_ci	status = "okay";
2638c2ecf20Sopenharmony_ci	pwm2: pwm {
2648c2ecf20Sopenharmony_ci		pinctrl-0 = <&pwm2_pins_a>;
2658c2ecf20Sopenharmony_ci		pinctrl-names = "default";
2668c2ecf20Sopenharmony_ci		status = "okay";
2678c2ecf20Sopenharmony_ci	};
2688c2ecf20Sopenharmony_ci	timer@1 {
2698c2ecf20Sopenharmony_ci		status = "okay";
2708c2ecf20Sopenharmony_ci	};
2718c2ecf20Sopenharmony_ci};
2728c2ecf20Sopenharmony_ci
2738c2ecf20Sopenharmony_ci&usart3 {
2748c2ecf20Sopenharmony_ci	pinctrl-names = "default";
2758c2ecf20Sopenharmony_ci	pinctrl-0 = <&usart3_pins_a>;
2768c2ecf20Sopenharmony_ci	status = "okay";
2778c2ecf20Sopenharmony_ci};
2788c2ecf20Sopenharmony_ci
2798c2ecf20Sopenharmony_ci&uart8 {
2808c2ecf20Sopenharmony_ci	pinctrl-names = "default";
2818c2ecf20Sopenharmony_ci	pinctrl-0 = <&uart8_pins_a &uart8_rtscts_pins_a>;
2828c2ecf20Sopenharmony_ci	uart-has-rtscts;
2838c2ecf20Sopenharmony_ci	status = "okay";
2848c2ecf20Sopenharmony_ci};
2858c2ecf20Sopenharmony_ci
2868c2ecf20Sopenharmony_ci&usbh_ehci {
2878c2ecf20Sopenharmony_ci	phys = <&usbphyc_port0>;
2888c2ecf20Sopenharmony_ci	status = "okay";
2898c2ecf20Sopenharmony_ci};
2908c2ecf20Sopenharmony_ci
2918c2ecf20Sopenharmony_ci&usbotg_hs {
2928c2ecf20Sopenharmony_ci	dr_mode = "otg";
2938c2ecf20Sopenharmony_ci	pinctrl-0 = <&usbotg_hs_pins_a>;
2948c2ecf20Sopenharmony_ci	pinctrl-names = "default";
2958c2ecf20Sopenharmony_ci	phy-names = "usb2-phy";
2968c2ecf20Sopenharmony_ci	phys = <&usbphyc_port1 0>;
2978c2ecf20Sopenharmony_ci	vbus-supply = <&vbus_otg>;
2988c2ecf20Sopenharmony_ci	status = "okay";
2998c2ecf20Sopenharmony_ci};
3008c2ecf20Sopenharmony_ci
3018c2ecf20Sopenharmony_ci&usbphyc {
3028c2ecf20Sopenharmony_ci	status = "okay";
3038c2ecf20Sopenharmony_ci};
3048c2ecf20Sopenharmony_ci
3058c2ecf20Sopenharmony_ci&usbphyc_port0 {
3068c2ecf20Sopenharmony_ci	phy-supply = <&vdd_usb>;
3078c2ecf20Sopenharmony_ci	vdda1v1-supply = <&reg11>;
3088c2ecf20Sopenharmony_ci	vdda1v8-supply = <&reg18>;
3098c2ecf20Sopenharmony_ci};
3108c2ecf20Sopenharmony_ci
3118c2ecf20Sopenharmony_ci&usbphyc_port1 {
3128c2ecf20Sopenharmony_ci	phy-supply = <&vdd_usb>;
3138c2ecf20Sopenharmony_ci	vdda1v1-supply = <&reg11>;
3148c2ecf20Sopenharmony_ci	vdda1v8-supply = <&reg18>;
3158c2ecf20Sopenharmony_ci};
316