]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ARM: dts: mxs: Add descriptions for imx287 based btt3-[012] devices
authorLukasz Majewski <lukma@denx.de>
Thu, 7 Nov 2024 08:57:05 +0000 (09:57 +0100)
committerShawn Guo <shawnguo@kernel.org>
Mon, 17 Feb 2025 10:04:52 +0000 (18:04 +0800)
The btt3 device' HW revisions from 0 to 2 use imx287 SoC and are to
some extend similar to already upstreamed XEA devices, hence are
using common imx28-lwe.dtsi file.

New, imx28-btt3.dtsi has been added to embrace common DTS
properties for different HW revisions for this device.

As a result - changes introduced in imx28-btt3-[012].dts are
minimal.

Signed-off-by: Lukasz Majewski <lukma@denx.de>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
arch/arm/boot/dts/nxp/mxs/Makefile
arch/arm/boot/dts/nxp/mxs/imx28-btt3-0.dts [new file with mode: 0644]
arch/arm/boot/dts/nxp/mxs/imx28-btt3-1.dts [new file with mode: 0644]
arch/arm/boot/dts/nxp/mxs/imx28-btt3-2.dts [new file with mode: 0644]
arch/arm/boot/dts/nxp/mxs/imx28-btt3.dtsi [new file with mode: 0644]

index a430d04f9c6935c7fb47c76c46bf3d2fd741bda4..96dd31ea19ba25d9eec759140b754d8a2c93d17d 100644 (file)
@@ -8,6 +8,9 @@ dtb-$(CONFIG_ARCH_MXS) += \
        imx28-apf28.dtb \
        imx28-apf28dev.dtb \
        imx28-apx4devkit.dtb \
+       imx28-btt3-0.dtb \
+       imx28-btt3-1.dtb \
+       imx28-btt3-2.dtb \
        imx28-cfa10036.dtb \
        imx28-cfa10037.dtb \
        imx28-cfa10049.dtb \
diff --git a/arch/arm/boot/dts/nxp/mxs/imx28-btt3-0.dts b/arch/arm/boot/dts/nxp/mxs/imx28-btt3-0.dts
new file mode 100644 (file)
index 0000000..6ac46e4
--- /dev/null
@@ -0,0 +1,12 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2024
+ * Lukasz Majewski, DENX Software Engineering, lukma@denx.de
+ */
+
+/dts-v1/;
+#include "imx28-btt3.dtsi"
+
+&hog_pins_rev {
+       fsl,pull-up = <MXS_PULL_ENABLE>;
+};
diff --git a/arch/arm/boot/dts/nxp/mxs/imx28-btt3-1.dts b/arch/arm/boot/dts/nxp/mxs/imx28-btt3-1.dts
new file mode 100644 (file)
index 0000000..213fe93
--- /dev/null
@@ -0,0 +1,8 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2024
+ * Lukasz Majewski, DENX Software Engineering, lukma@denx.de
+ */
+
+/dts-v1/;
+#include "imx28-btt3.dtsi"
diff --git a/arch/arm/boot/dts/nxp/mxs/imx28-btt3-2.dts b/arch/arm/boot/dts/nxp/mxs/imx28-btt3-2.dts
new file mode 100644 (file)
index 0000000..4bccd78
--- /dev/null
@@ -0,0 +1,39 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/*
+ * Copyright 2024
+ * Lukasz Majewski, DENX Software Engineering, lukma@denx.de
+ */
+
+/dts-v1/;
+#include "imx28-btt3.dtsi"
+
+/ {
+       panel {
+               compatible = "powertip,st7272", "panel-dpi";
+               power-supply = <&reg_3v3>;
+               width-mm = <70>;
+               height-mm = <52>;
+
+               panel-timing {
+                       clock-frequency = <6500000>;
+                       hactive = <320>;
+                       vactive = <240>;
+                       hfront-porch = <20>;
+                       hback-porch = <68>;
+                       hsync-len = <30>;
+                       vfront-porch = <4>;
+                       vback-porch = <14>;
+                       vsync-len = <4>;
+                       hsync-active = <0>;
+                       vsync-active = <0>;
+                       de-active = <1>;
+                       pixelclk-active = <1>;
+               };
+
+               port {
+                       panel_in: endpoint {
+                               remote-endpoint = <&display_out>;
+                       };
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/nxp/mxs/imx28-btt3.dtsi b/arch/arm/boot/dts/nxp/mxs/imx28-btt3.dtsi
new file mode 100644 (file)
index 0000000..2c52e67
--- /dev/null
@@ -0,0 +1,313 @@
+// 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 = <&reg_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 = <&reg_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";
+};
+
+&reg_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 = <&reg_3v3>;
+       mmc-pwrseq = <&wifi_pwrseq>;
+       keep-power-in-suspend;
+       status = "okay";
+
+       wlan@1 {
+               reg = <1>;
+               compatible = "brcm,bcm4329-fmac";
+       };
+};
+
+&ssp2 {
+       compatible = "fsl,imx28-spi";
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi2_pins_a>;
+       status = "okay";
+};