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<dc { 2018c2ecf20Sopenharmony_ci pinctrl-names = "default", "sleep"; 2028c2ecf20Sopenharmony_ci pinctrl-0 = <<dc_pins_b>; 2038c2ecf20Sopenharmony_ci pinctrl-1 = <<dc_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 = <®11>; 3088c2ecf20Sopenharmony_ci vdda1v8-supply = <®18>; 3098c2ecf20Sopenharmony_ci}; 3108c2ecf20Sopenharmony_ci 3118c2ecf20Sopenharmony_ci&usbphyc_port1 { 3128c2ecf20Sopenharmony_ci phy-supply = <&vdd_usb>; 3138c2ecf20Sopenharmony_ci vdda1v1-supply = <®11>; 3148c2ecf20Sopenharmony_ci vdda1v8-supply = <®18>; 3158c2ecf20Sopenharmony_ci}; 316