| // SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause |
| /* |
| * Copyright (C) 2019-2020 Marek Vasut <marex@denx.de> |
| */ |
| |
| #include <dt-bindings/input/input.h> |
| #include <dt-bindings/pwm/pwm.h> |
| |
| / { |
| aliases { |
| serial0 = &uart4; |
| serial1 = &usart3; |
| serial2 = &uart8; |
| ethernet0 = ðernet0; |
| }; |
| |
| chosen { |
| stdout-path = "serial0:115200n8"; |
| }; |
| |
| clk_ext_audio_codec: clock-codec { |
| compatible = "fixed-clock"; |
| #clock-cells = <0>; |
| clock-frequency = <24000000>; |
| }; |
| |
| display_bl: display-bl { |
| compatible = "pwm-backlight"; |
| pwms = <&pwm2 0 500000 PWM_POLARITY_INVERTED>; |
| brightness-levels = <0 16 22 30 40 55 75 102 138 188 255>; |
| default-brightness-level = <8>; |
| enable-gpios = <&gpioi 0 GPIO_ACTIVE_HIGH>; |
| status = "okay"; |
| }; |
| |
| ethernet_vio: vioregulator { |
| compatible = "regulator-fixed"; |
| regulator-name = "vio"; |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| gpio = <&gpiog 3 GPIO_ACTIVE_LOW>; |
| regulator-always-on; |
| regulator-boot-on; |
| }; |
| |
| gpio-keys-polled { |
| compatible = "gpio-keys-polled"; |
| #size-cells = <0>; |
| poll-interval = <20>; |
| |
| /* |
| * The EXTi IRQ line 3 is shared with touchscreen and ethernet, |
| * so mark this as polled GPIO key. |
| */ |
| button-0 { |
| label = "TA1-GPIO-A"; |
| linux,code = <KEY_A>; |
| gpios = <&gpiof 3 GPIO_ACTIVE_LOW>; |
| }; |
| }; |
| |
| gpio-keys { |
| compatible = "gpio-keys"; |
| #size-cells = <0>; |
| |
| button-1 { |
| label = "TA2-GPIO-B"; |
| linux,code = <KEY_B>; |
| gpios = <&gpiod 6 GPIO_ACTIVE_LOW>; |
| wakeup-source; |
| }; |
| |
| button-2 { |
| label = "TA3-GPIO-C"; |
| linux,code = <KEY_C>; |
| gpios = <&gpioi 11 GPIO_ACTIVE_LOW>; |
| wakeup-source; |
| }; |
| |
| button-3 { |
| label = "TA4-GPIO-D"; |
| linux,code = <KEY_D>; |
| gpios = <&gpiod 12 GPIO_ACTIVE_LOW>; |
| wakeup-source; |
| }; |
| }; |
| |
| led { |
| compatible = "gpio-leds"; |
| |
| led-0 { |
| label = "green:led5"; |
| gpios = <&gpiog 2 GPIO_ACTIVE_HIGH>; |
| default-state = "off"; |
| }; |
| |
| led-1 { |
| label = "green:led6"; |
| gpios = <&gpiod 11 GPIO_ACTIVE_HIGH>; |
| default-state = "off"; |
| }; |
| |
| led-2 { |
| label = "green:led7"; |
| gpios = <&gpioi 2 GPIO_ACTIVE_HIGH>; |
| default-state = "off"; |
| }; |
| |
| led-3 { |
| label = "green:led8"; |
| gpios = <&gpioi 3 GPIO_ACTIVE_HIGH>; |
| default-state = "off"; |
| }; |
| }; |
| |
| panel { |
| compatible = "edt,etm0700g0edh6"; |
| backlight = <&display_bl>; |
| |
| port { |
| lcd_panel_in: endpoint { |
| remote-endpoint = <&lcd_display_out>; |
| }; |
| }; |
| }; |
| |
| sound { |
| compatible = "audio-graph-card"; |
| routing = |
| "MIC_IN", "Capture", |
| "Capture", "Mic Bias", |
| "Playback", "HP_OUT"; |
| dais = <&sai2a_port &sai2b_port>; |
| status = "okay"; |
| }; |
| }; |
| |
| &cec { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&cec_pins_a>; |
| status = "okay"; |
| }; |
| |
| ðernet0 { |
| status = "okay"; |
| pinctrl-0 = <ðernet0_rmii_pins_a>; |
| pinctrl-1 = <ðernet0_rmii_sleep_pins_a>; |
| pinctrl-names = "default", "sleep"; |
| phy-mode = "rmii"; |
| max-speed = <100>; |
| phy-handle = <&phy0>; |
| st,eth-ref-clk-sel; |
| phy-reset-gpios = <&gpioh 15 GPIO_ACTIVE_LOW>; |
| |
| mdio0 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| compatible = "snps,dwmac-mdio"; |
| |
| phy0: ethernet-phy@1 { |
| reg = <1>; |
| }; |
| }; |
| }; |
| |
| &i2c2 { /* Header X22 */ |
| pinctrl-names = "default"; |
| pinctrl-0 = <&i2c2_pins_a>; |
| i2c-scl-rising-time-ns = <185>; |
| i2c-scl-falling-time-ns = <20>; |
| status = "okay"; |
| /* spare dmas for other usage */ |
| /delete-property/dmas; |
| /delete-property/dma-names; |
| status = "okay"; |
| }; |
| |
| &i2c5 { /* Header X21 */ |
| pinctrl-names = "default"; |
| pinctrl-0 = <&i2c5_pins_a>; |
| i2c-scl-rising-time-ns = <185>; |
| i2c-scl-falling-time-ns = <20>; |
| status = "okay"; |
| /* spare dmas for other usage */ |
| /delete-property/dmas; |
| /delete-property/dma-names; |
| |
| sgtl5000: codec@a { |
| compatible = "fsl,sgtl5000"; |
| reg = <0x0a>; |
| #sound-dai-cells = <0>; |
| clocks = <&clk_ext_audio_codec>; |
| VDDA-supply = <&v3v3>; |
| VDDIO-supply = <&vdd>; |
| |
| sgtl5000_port: port { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| sgtl5000_tx_endpoint: endpoint@0 { |
| reg = <0>; |
| remote-endpoint = <&sai2a_endpoint>; |
| frame-master; |
| bitclock-master; |
| }; |
| |
| sgtl5000_rx_endpoint: endpoint@1 { |
| reg = <1>; |
| remote-endpoint = <&sai2b_endpoint>; |
| frame-master; |
| bitclock-master; |
| }; |
| }; |
| |
| }; |
| |
| polytouch@38 { |
| compatible = "edt,edt-ft5x06"; |
| reg = <0x38>; |
| interrupt-parent = <&gpiog>; |
| interrupts = <2 IRQ_TYPE_EDGE_FALLING>; /* GPIO E */ |
| linux,wakeup; |
| }; |
| }; |
| |
| <dc { |
| pinctrl-names = "default", "sleep"; |
| pinctrl-0 = <<dc_pins_b>; |
| pinctrl-1 = <<dc_sleep_pins_b>; |
| status = "okay"; |
| |
| port { |
| lcd_display_out: endpoint { |
| remote-endpoint = <&lcd_panel_in>; |
| }; |
| }; |
| }; |
| |
| &sai2 { |
| clocks = <&rcc SAI2>, <&rcc PLL3_Q>, <&rcc PLL3_R>; |
| clock-names = "pclk", "x8k", "x11k"; |
| pinctrl-names = "default", "sleep"; |
| pinctrl-0 = <&sai2a_pins_b &sai2b_pins_b>; |
| pinctrl-1 = <&sai2a_sleep_pins_b &sai2b_sleep_pins_b>; |
| status = "okay"; |
| |
| sai2a: audio-controller@4400b004 { |
| #clock-cells = <0>; |
| dma-names = "tx"; |
| clocks = <&rcc SAI2_K>; |
| clock-names = "sai_ck"; |
| status = "okay"; |
| |
| sai2a_port: port { |
| sai2a_endpoint: endpoint { |
| remote-endpoint = <&sgtl5000_tx_endpoint>; |
| format = "i2s"; |
| mclk-fs = <512>; |
| dai-tdm-slot-num = <2>; |
| dai-tdm-slot-width = <16>; |
| }; |
| }; |
| }; |
| |
| sai2b: audio-controller@4400b024 { |
| dma-names = "rx"; |
| st,sync = <&sai2a 2>; |
| clocks = <&rcc SAI2_K>, <&sai2a>; |
| clock-names = "sai_ck", "MCLK"; |
| status = "okay"; |
| |
| sai2b_port: port { |
| sai2b_endpoint: endpoint { |
| remote-endpoint = <&sgtl5000_rx_endpoint>; |
| format = "i2s"; |
| mclk-fs = <512>; |
| dai-tdm-slot-num = <2>; |
| dai-tdm-slot-width = <16>; |
| }; |
| }; |
| }; |
| }; |
| |
| &timers2 { |
| /* spare dmas for other usage (un-delete to enable pwm capture) */ |
| /delete-property/dmas; |
| /delete-property/dma-names; |
| status = "okay"; |
| pwm2: pwm { |
| pinctrl-0 = <&pwm2_pins_a>; |
| pinctrl-names = "default"; |
| status = "okay"; |
| }; |
| timer@1 { |
| status = "okay"; |
| }; |
| }; |
| |
| &usart3 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&usart3_pins_a>; |
| status = "okay"; |
| }; |
| |
| &uart8 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&uart8_pins_a>; |
| status = "okay"; |
| }; |
| |
| &usbh_ehci { |
| phys = <&usbphyc_port0>; |
| status = "okay"; |
| }; |
| |
| &usbotg_hs { |
| dr_mode = "peripheral"; |
| phys = <&usbphyc_port1 0>; |
| phy-names = "usb2-phy"; |
| status = "okay"; |
| }; |
| |
| &usbphyc { |
| status = "okay"; |
| }; |
| |
| &usbphyc_port0 { |
| phy-supply = <&vdd_usb>; |
| vdda1v1-supply = <®11>; |
| vdda1v8-supply = <®18>; |
| }; |
| |
| &usbphyc_port1 { |
| phy-supply = <&vdd_usb>; |
| vdda1v1-supply = <®11>; |
| vdda1v8-supply = <®18>; |
| }; |