314 lines
6.6 KiB
Plaintext
314 lines
6.6 KiB
Plaintext
// 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";
|
|
};
|