| // SPDX-License-Identifier: GPL-2.0-or-later OR MIT |
| /* |
| * Copyright 2024 |
| * Lukasz Majewski, DENX Software Engineering, lukma@denx.de |
| */ |
| /dts-v1/; |
| #include "imx28-lwe.dtsi" |
| |
| / { |
| model = "BTT3"; |
| |
| compatible = "lwn,imx28-btt3", "fsl,imx28"; |
| |
| chosen { |
| bootargs = "root=/dev/mmcblk0p2 rootfstype=ext4 ro rootwait console=ttyAMA0,115200 panic=1 quiet"; |
| }; |
| |
| memory@40000000 { |
| reg = <0x40000000 0x10000000>; |
| device_type = "memory"; |
| }; |
| |
| panel { |
| compatible = "powertip,hx8238a", "panel-dpi"; |
| power-supply = <®_3v3>; |
| width-mm = <70>; |
| height-mm = <52>; |
| |
| panel-timing { |
| clock-frequency = <6500000>; |
| hactive = <320>; |
| vactive = <240>; |
| hfront-porch = <20>; |
| hback-porch = <38>; |
| hsync-len = <30>; |
| vfront-porch = <4>; |
| vback-porch = <14>; |
| vsync-len = <4>; |
| hsync-active = <0>; |
| vsync-active = <0>; |
| de-active = <0>; |
| pixelclk-active = <1>; |
| }; |
| |
| port { |
| panel_in: endpoint { |
| remote-endpoint = <&display_out>; |
| }; |
| }; |
| }; |
| |
| poweroff { |
| compatible = "gpio-poweroff"; |
| gpios = <&gpio0 24 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| sound { |
| compatible = "simple-audio-card"; |
| simple-audio-card,name = "BTTC Audio"; |
| simple-audio-card,widgets = "Speaker", "BTTC Speaker"; |
| simple-audio-card,routing = "BTTC Speaker", "SPKOUTN", "BTTC Speaker", "SPKOUTP"; |
| |
| simple-audio-card,dai-link@0 { |
| format = "left_j"; |
| bitclock-master = <&dai0_master>; |
| frame-master = <&dai0_master>; |
| mclk-fs = <256>; |
| |
| dai0_master: cpu { |
| sound-dai = <&saif0>; |
| }; |
| |
| codec { |
| sound-dai = <&wm89xx>; |
| clocks = <&saif0>; |
| }; |
| }; |
| }; |
| |
| wifi_pwrseq: sdio-pwrseq { |
| compatible = "mmc-pwrseq-simple"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&wifi_en_pin_bttc>; |
| reset-gpios = <&gpio0 27 GPIO_ACTIVE_LOW>; |
| /* W1-163 needs 60us for WL_EN to be low and */ |
| /* 150ms after high before downloading FW is possible */ |
| post-power-on-delay-ms = <200>; |
| power-off-delay-us = <100>; |
| }; |
| }; |
| |
| &auart0 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&auart0_2pins_a>; |
| status = "okay"; |
| }; |
| |
| &auart3 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&auart3_pins_a>; |
| uart-has-rtscts; |
| status = "okay"; |
| }; |
| |
| &i2c0 { |
| wm89xx: audio-codec@1a { |
| compatible = "wlf,wm8940"; |
| reg = <0x1a>; |
| #sound-dai-cells = <0>; |
| }; |
| }; |
| |
| &lcdif { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&lcdif_24bit_pins_a>, <&lcdif_sync_pins_bttc>, |
| <&lcdif_reset_pins_bttc>; |
| status = "okay"; |
| |
| port { |
| display_out: endpoint { |
| remote-endpoint = <&panel_in>; |
| }; |
| }; |
| }; |
| |
| &mac0 { |
| clocks = <&clks 57>, <&clks 57>, <&clks 64>; |
| clock-names = "ipg", "ahb", "enet_out"; |
| phy-handle = <&mac0_phy>; |
| phy-mode = "rmii"; |
| phy-supply = <®_3v3>; |
| /* |
| * This MAC address is adjusted during production. |
| * Value specified below is used as a fallback during recovery. |
| */ |
| local-mac-address = [ 00 11 B8 00 BF 8A ]; |
| status = "okay"; |
| |
| mdio { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| mac0_phy: ethernet-phy@0 { |
| /* LAN8720Ai - PHY ID */ |
| compatible = "ethernet-phy-id0007.c0f0","ethernet-phy-ieee802.3-c22"; |
| reg = <0>; |
| smsc,disable-energy-detect; |
| max-speed = <100>; |
| reset-gpios = <&gpio4 12 GPIO_ACTIVE_LOW>; |
| reset-assert-us = <1000>; |
| reset-deassert-us = <1000>; |
| }; |
| }; |
| }; |
| |
| &pinctrl { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&hog_pins_a>, <&hog_pins_rev>; |
| |
| hog_pins_a: hog@0 { |
| reg = <0>; |
| fsl,pinmux-ids = < |
| MX28_PAD_GPMI_RDY2__GPIO_0_22 |
| MX28_PAD_GPMI_RDY3__GPIO_0_23 |
| MX28_PAD_GPMI_RDN__GPIO_0_24 |
| MX28_PAD_LCD_VSYNC__GPIO_1_28 |
| MX28_PAD_SSP2_SS1__GPIO_2_20 |
| MX28_PAD_SSP2_SS2__GPIO_2_21 |
| MX28_PAD_AUART2_CTS__GPIO_3_10 |
| MX28_PAD_AUART2_RTS__GPIO_3_11 |
| MX28_PAD_GPMI_WRN__GPIO_0_25 |
| MX28_PAD_ENET0_RXD2__GPIO_4_9 |
| MX28_PAD_ENET0_TXD2__GPIO_4_11 |
| >; |
| fsl,drive-strength = <MXS_DRIVE_4mA>; |
| fsl,voltage = <MXS_VOLTAGE_HIGH>; |
| fsl,pull-up = <MXS_PULL_DISABLE>; |
| }; |
| |
| hog_pins_rev: hog@1 { |
| reg = <1>; |
| fsl,pinmux-ids = < |
| MX28_PAD_ENET0_RXD3__GPIO_4_10 |
| MX28_PAD_ENET0_TX_CLK__GPIO_4_5 |
| MX28_PAD_ENET0_COL__GPIO_4_14 |
| MX28_PAD_ENET0_CRS__GPIO_4_15 |
| >; |
| fsl,drive-strength = <MXS_DRIVE_4mA>; |
| fsl,voltage = <MXS_VOLTAGE_HIGH>; |
| fsl,pull-up = <MXS_PULL_DISABLE>; |
| }; |
| |
| keypad_pins_bttc: keypad-bttc@0 { |
| reg = <0>; |
| fsl,pinmux-ids = < |
| MX28_PAD_GPMI_D00__GPIO_0_0 |
| MX28_PAD_AUART0_CTS__GPIO_3_2 |
| MX28_PAD_AUART0_RTS__GPIO_3_3 |
| MX28_PAD_GPMI_D03__GPIO_0_3 |
| MX28_PAD_GPMI_D04__GPIO_0_4 |
| MX28_PAD_GPMI_D05__GPIO_0_5 |
| MX28_PAD_GPMI_D06__GPIO_0_6 |
| MX28_PAD_GPMI_D07__GPIO_0_7 |
| MX28_PAD_GPMI_CE1N__GPIO_0_17 |
| MX28_PAD_GPMI_CE2N__GPIO_0_18 |
| MX28_PAD_GPMI_CE3N__GPIO_0_19 |
| MX28_PAD_GPMI_RDY0__GPIO_0_20 |
| >; |
| fsl,drive-strength = <MXS_DRIVE_4mA>; |
| fsl,voltage = <MXS_VOLTAGE_HIGH>; |
| fsl,pull-up = <MXS_PULL_DISABLE>; |
| }; |
| |
| lcdif_sync_pins_bttc: lcdif-bttc@0 { |
| reg = <0>; |
| fsl,pinmux-ids = < |
| MX28_PAD_LCD_DOTCLK__LCD_DOTCLK |
| MX28_PAD_LCD_ENABLE__LCD_ENABLE |
| MX28_PAD_LCD_HSYNC__LCD_HSYNC |
| MX28_PAD_LCD_RD_E__LCD_VSYNC |
| >; |
| fsl,drive-strength = <MXS_DRIVE_4mA>; |
| fsl,voltage = <MXS_VOLTAGE_HIGH>; |
| fsl,pull-up = <MXS_PULL_DISABLE>; |
| }; |
| |
| lcdif_reset_pins_bttc: lcdif-bttc@1 { |
| reg = <1>; |
| fsl,pinmux-ids = < |
| MX28_PAD_LCD_RESET__GPIO_3_30 |
| >; |
| fsl,drive-strength = <MXS_DRIVE_4mA>; |
| fsl,voltage = <MXS_VOLTAGE_HIGH>; |
| fsl,pull-up = <MXS_PULL_ENABLE>; |
| }; |
| |
| ssp1_sdio_pins_a: ssp1-sdio@0 { |
| reg = <0>; |
| fsl,pinmux-ids = < |
| MX28_PAD_SSP1_DATA0__SSP1_D0 |
| MX28_PAD_GPMI_D01__SSP1_D1 |
| MX28_PAD_GPMI_D02__SSP1_D2 |
| MX28_PAD_SSP1_DATA3__SSP1_D3 |
| MX28_PAD_SSP1_CMD__SSP1_CMD |
| MX28_PAD_SSP1_SCK__SSP1_SCK |
| >; |
| fsl,drive-strength = <MXS_DRIVE_8mA>; |
| fsl,voltage = <MXS_VOLTAGE_HIGH>; |
| fsl,pull-up = <MXS_PULL_ENABLE>; |
| }; |
| |
| wifi_en_pin_bttc: wifi-en-pin@0 { |
| reg = <0>; |
| fsl,pinmux-ids = < |
| MX28_PAD_GPMI_CLE__GPIO_0_27 |
| >; |
| fsl,drive-strength = <MXS_DRIVE_8mA>; |
| fsl,voltage = <MXS_VOLTAGE_HIGH>; |
| fsl,pull-up = <MXS_PULL_ENABLE>; |
| }; |
| }; |
| |
| &pwm { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&pwm3_pins_a>; |
| status = "okay"; |
| }; |
| |
| ®_usb_5v { |
| gpio = <&gpio1 28 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| &saif0 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&saif0_pins_a>; |
| #sound-dai-cells = <0>; |
| assigned-clocks = <&clks 53>; |
| assigned-clock-rates = <12000000>; |
| status = "okay"; |
| }; |
| |
| &saif1 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&saif1_pins_a>; |
| #sound-dai-cells = <0>; |
| fsl,saif-master = <&saif0>; |
| status = "okay"; |
| }; |
| |
| &ssp1 { |
| compatible = "fsl,imx28-mmc"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&ssp1_sdio_pins_a>; |
| bus-width = <4>; |
| no-1-8-v; /* force 3.3V VIO */ |
| non-removable; |
| vmmc-supply = <®_3v3>; |
| mmc-pwrseq = <&wifi_pwrseq>; |
| keep-power-in-suspend; |
| status = "okay"; |
| |
| wifi@1 { |
| reg = <1>; |
| compatible = "brcm,bcm4329-fmac"; |
| }; |
| }; |
| |
| &ssp2 { |
| compatible = "fsl,imx28-spi"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&spi2_pins_a>; |
| status = "okay"; |
| }; |