[PATCH v5 3/8] imxrt1050: synchronise device tree with linux
Marcel Ziswiler
marcel at ziswiler.com
Mon Nov 7 22:22:36 CET 2022
From: Marcel Ziswiler <marcel.ziswiler at toradex.com>
Synchronise device tree with linux v6.1-rc3.
Note: Nowadays, the intent is for them regular device trees to just be
synchronised from them Linux kernel device trees and any and all U-Boot
specific changes need to go into the -u-boot.dtsi device tree include
files which BTW get included automatically by the U-Boot build system.
Signed-off-by: Marcel Ziswiler <marcel.ziswiler at toradex.com>
---
Changes in v5:
- Add clock-names "per" to lpuart and re-add lcdif and usb* nodes as
pointed out by Giulio.
Changes in v4:
- Use imxrt1050-evk-u-boot.dtsi as provided/tested by Jesse.
- Explain intent in commit message as pointed out by Giulio.
- Re-synched with v6.1-rc3.
Changes in v3:
- Incorporate feedback from Jesse.
Changes in v2:
- imxrt1050: Re-added DDR timings aka semc node as pointed out by Fabio. Thanks!
arch/arm/dts/imxrt1050-evk-u-boot.dtsi | 274 ++++++++++++++++++--
arch/arm/dts/imxrt1050-evk.dts | 257 +++---------------
arch/arm/dts/imxrt1050-pinfunc.h | 2 +-
arch/arm/dts/imxrt1050.dtsi | 168 +++++-------
include/dt-bindings/clock/imxrt1050-clock.h | 9 +-
5 files changed, 366 insertions(+), 344 deletions(-)
diff --git a/arch/arm/dts/imxrt1050-evk-u-boot.dtsi b/arch/arm/dts/imxrt1050-evk-u-boot.dtsi
index 617cece448..e217dfd9eb 100644
--- a/arch/arm/dts/imxrt1050-evk-u-boot.dtsi
+++ b/arch/arm/dts/imxrt1050-evk-u-boot.dtsi
@@ -4,9 +4,18 @@
* Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com>
*/
+#include <dt-bindings/memory/imxrt-sdram.h>
+#include "imxrt1050-pinfunc.h"
+
/ {
+ aliases {
+ display0 = &lcdif;
+ usbphy0 = &usbphy1;
+ };
+
chosen {
u-boot,dm-spl;
+ tick-timer = &gpt;
};
clocks {
@@ -15,6 +24,92 @@
soc {
u-boot,dm-spl;
+
+ usbphy1: usbphy at 400d9000 {
+ compatible = "fsl,imxrt-usbphy";
+ reg = <0x400d9000 0x1000>;
+ interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
+ };
+
+ usbmisc: usbmisc at 402e0800 {
+ #index-cells = <1>;
+ compatible = "fsl,imxrt-usbmisc";
+ reg = <0x402e0800 0x200>;
+ clocks = <&clks IMXRT1050_CLK_USBOH3>;
+ };
+
+ usbotg1: usb at 402e0000 {
+ compatible = "fsl,imxrt-usb", "fsl,imx27-usb";
+ reg = <0x402e0000 0x200>;
+ interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMXRT1050_CLK_USBOH3>;
+ fsl,usbphy = <&usbphy1>;
+ fsl,usbmisc = <&usbmisc 0>;
+ ahb-burst-config = <0x0>;
+ tx-burst-size-dword = <0x10>;
+ rx-burst-size-dword = <0x10>;
+ status = "disabled";
+ };
+
+ lcdif: lcdif at 402b8000 {
+ compatible = "fsl,imxrt-lcdif";
+ reg = <0x402b8000 0x4000>;
+ interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&clks IMXRT1050_CLK_LCDIF_PIX>,
+ <&clks IMXRT1050_CLK_LCDIF_APB>;
+ clock-names = "pix", "axi";
+ assigned-clocks = <&clks IMXRT1050_CLK_LCDIF_SEL>;
+ assigned-clock-parents = <&clks IMXRT1050_CLK_PLL5_VIDEO>;
+ status = "disabled";
+ };
+
+ semc: semc at 402f0000 {
+ compatible = "fsl,imxrt-semc";
+ reg = <0x402f0000 0x4000>;
+ clocks = <&clks IMXRT1050_CLK_SEMC>;
+ pinctrl-0 = <&pinctrl_semc>;
+ pinctrl-names = "default";
+ status = "okay";
+ };
+ };
+};
+
+&semc {
+ u-boot,dm-spl;
+ /*
+ * Memory configuration from sdram datasheet IS42S16160J-6BLI
+ */
+ fsl,sdram-mux = /bits/ 8 <MUX_A8_SDRAM_A8
+ MUX_CSX0_SDRAM_CS1
+ 0
+ 0
+ 0
+ 0>;
+ fsl,sdram-control = /bits/ 8 <MEM_WIDTH_16BITS
+ BL_8
+ COL_9BITS
+ CL_3>;
+ fsl,sdram-timing = /bits/ 8 <0x2
+ 0x2
+ 0x9
+ 0x1
+ 0x5
+ 0x6
+
+ 0x20
+ 0x09
+ 0x01
+ 0x00
+
+ 0x04
+ 0x0A
+ 0x21
+ 0x50>;
+
+ bank1: bank at 0 {
+ fsl,base-address = <0x80000000>;
+ fsl,memory-size = <MEM_SIZE_32M>;
+ u-boot,dm-spl;
};
};
@@ -31,60 +126,205 @@
};
&gpio1 {
+ compatible = "fsl,imxrt-gpio", "fsl,imx35-gpio";
u-boot,dm-spl;
};
&gpio2 {
+ compatible = "fsl,imxrt-gpio", "fsl,imx35-gpio";
u-boot,dm-spl;
};
&gpio3 {
+ compatible = "fsl,imxrt-gpio", "fsl,imx35-gpio";
u-boot,dm-spl;
};
&gpio4 {
+ compatible = "fsl,imxrt-gpio", "fsl,imx35-gpio";
u-boot,dm-spl;
};
&gpio5 {
+ compatible = "fsl,imxrt-gpio", "fsl,imx35-gpio";
u-boot,dm-spl;
};
-&gpt1 {
+&gpt {
+ clocks = <&osc>;
+ compatible = "fsl,imxrt-gpt";
+ status = "okay";
u-boot,dm-spl;
};
&lpuart1 { /* console */
+ compatible = "fsl,imxrt-lpuart";
+ clock-names = "per";
u-boot,dm-spl;
};
-&semc {
+&iomuxc {
u-boot,dm-spl;
+ compatible = "fsl,imxrt-iomuxc";
+ pinctrl-0 = <&pinctrl_lpuart1>;
- bank1: bank at 0 {
+ pinctrl_semc: semcgrp {
+ fsl,pins = <
+ MXRT1050_IOMUXC_GPIO_EMC_00_SEMC_DA00
+ 0xf1 /* SEMC_D0 */
+ MXRT1050_IOMUXC_GPIO_EMC_01_SEMC_DA01
+ 0xf1 /* SEMC_D1 */
+ MXRT1050_IOMUXC_GPIO_EMC_02_SEMC_DA02
+ 0xf1 /* SEMC_D2 */
+ MXRT1050_IOMUXC_GPIO_EMC_03_SEMC_DA03
+ 0xf1 /* SEMC_D3 */
+ MXRT1050_IOMUXC_GPIO_EMC_04_SEMC_DA04
+ 0xf1 /* SEMC_D4 */
+ MXRT1050_IOMUXC_GPIO_EMC_05_SEMC_DA05
+ 0xf1 /* SEMC_D5 */
+ MXRT1050_IOMUXC_GPIO_EMC_06_SEMC_DA06
+ 0xf1 /* SEMC_D6 */
+ MXRT1050_IOMUXC_GPIO_EMC_07_SEMC_DA07
+ 0xf1 /* SEMC_D7 */
+ MXRT1050_IOMUXC_GPIO_EMC_08_SEMC_DM00
+ 0xf1 /* SEMC_DM0 */
+ MXRT1050_IOMUXC_GPIO_EMC_09_SEMC_ADDR00
+ 0xf1 /* SEMC_A0 */
+ MXRT1050_IOMUXC_GPIO_EMC_10_SEMC_ADDR01
+ 0xf1 /* SEMC_A1 */
+ MXRT1050_IOMUXC_GPIO_EMC_11_SEMC_ADDR02
+ 0xf1 /* SEMC_A2 */
+ MXRT1050_IOMUXC_GPIO_EMC_12_SEMC_ADDR03
+ 0xf1 /* SEMC_A3 */
+ MXRT1050_IOMUXC_GPIO_EMC_13_SEMC_ADDR04
+ 0xf1 /* SEMC_A4 */
+ MXRT1050_IOMUXC_GPIO_EMC_14_SEMC_ADDR05
+ 0xf1 /* SEMC_A5 */
+ MXRT1050_IOMUXC_GPIO_EMC_15_SEMC_ADDR06
+ 0xf1 /* SEMC_A6 */
+ MXRT1050_IOMUXC_GPIO_EMC_16_SEMC_ADDR07
+ 0xf1 /* SEMC_A7 */
+ MXRT1050_IOMUXC_GPIO_EMC_17_SEMC_ADDR08
+ 0xf1 /* SEMC_A8 */
+ MXRT1050_IOMUXC_GPIO_EMC_18_SEMC_ADDR09
+ 0xf1 /* SEMC_A9 */
+ MXRT1050_IOMUXC_GPIO_EMC_19_SEMC_ADDR11
+ 0xf1 /* SEMC_A11 */
+ MXRT1050_IOMUXC_GPIO_EMC_20_SEMC_ADDR12
+ 0xf1 /* SEMC_A12 */
+ MXRT1050_IOMUXC_GPIO_EMC_21_SEMC_BA0
+ 0xf1 /* SEMC_BA0 */
+ MXRT1050_IOMUXC_GPIO_EMC_22_SEMC_BA1
+ 0xf1 /* SEMC_BA1 */
+ MXRT1050_IOMUXC_GPIO_EMC_23_SEMC_ADDR10
+ 0xf1 /* SEMC_A10 */
+ MXRT1050_IOMUXC_GPIO_EMC_24_SEMC_CAS
+ 0xf1 /* SEMC_CAS */
+ MXRT1050_IOMUXC_GPIO_EMC_25_SEMC_RAS
+ 0xf1 /* SEMC_RAS */
+ MXRT1050_IOMUXC_GPIO_EMC_26_SEMC_CLK
+ 0xf1 /* SEMC_CLK */
+ MXRT1050_IOMUXC_GPIO_EMC_27_SEMC_CKE
+ 0xf1 /* SEMC_CKE */
+ MXRT1050_IOMUXC_GPIO_EMC_28_SEMC_WE
+ 0xf1 /* SEMC_WE */
+ MXRT1050_IOMUXC_GPIO_EMC_29_SEMC_CS0
+ 0xf1 /* SEMC_CS0 */
+ MXRT1050_IOMUXC_GPIO_EMC_30_SEMC_DA08
+ 0xf1 /* SEMC_D8 */
+ MXRT1050_IOMUXC_GPIO_EMC_31_SEMC_DA09
+ 0xf1 /* SEMC_D9 */
+ MXRT1050_IOMUXC_GPIO_EMC_32_SEMC_DA10
+ 0xf1 /* SEMC_D10 */
+ MXRT1050_IOMUXC_GPIO_EMC_33_SEMC_DA11
+ 0xf1 /* SEMC_D11 */
+ MXRT1050_IOMUXC_GPIO_EMC_34_SEMC_DA12
+ 0xf1 /* SEMC_D12 */
+ MXRT1050_IOMUXC_GPIO_EMC_35_SEMC_DA13
+ 0xf1 /* SEMC_D13 */
+ MXRT1050_IOMUXC_GPIO_EMC_36_SEMC_DA14
+ 0xf1 /* SEMC_D14 */
+ MXRT1050_IOMUXC_GPIO_EMC_37_SEMC_DA15
+ 0xf1 /* SEMC_D15 */
+ MXRT1050_IOMUXC_GPIO_EMC_38_SEMC_DM01
+ 0xf1 /* SEMC_DM1 */
+ MXRT1050_IOMUXC_GPIO_EMC_39_SEMC_DQS
+ (IMX_PAD_SION | 0xf1) /* SEMC_DQS */
+ >;
u-boot,dm-spl;
};
-};
-&iomuxc {
- u-boot,dm-spl;
+ pinctrl_lcdif: lcdifgrp {
+ fsl,pins = <
+ MXRT1050_IOMUXC_GPIO_B0_00_LCD_CLK 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B0_01_LCD_ENABLE 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B0_02_LCD_HSYNC 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B0_03_LCD_VSYNC 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B0_04_LCD_DATA00 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B0_05_LCD_DATA01 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B0_06_LCD_DATA02 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B0_07_LCD_DATA03 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B0_08_LCD_DATA04 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B0_09_LCD_DATA05 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B0_10_LCD_DATA06 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B0_11_LCD_DATA07 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B0_12_LCD_DATA08 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B0_13_LCD_DATA09 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B0_14_LCD_DATA10 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B0_15_LCD_DATA11 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B1_01_LCD_DATA13 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B1_02_LCD_DATA14 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B1_03_LCD_DATA15 0x1b0b1
+ MXRT1050_IOMUXC_GPIO_B1_15_GPIO2_IO31 0x0b069
+ MXRT1050_IOMUXC_GPIO_AD_B0_02_GPIO1_IO02 0x0b069
+ >;
+ };
- imxrt1050-evk {
+ pinctrl_lpuart1: lpuart1grp {
u-boot,dm-spl;
- pinctrl_lpuart1: lpuart1grp {
- u-boot,dm-spl;
- };
+ };
- pinctrl_semc: semcgrp {
- u-boot,dm-spl;
- };
+ pinctrl_usdhc0: usdhc0grp {
+ u-boot,dm-spl;
+ };
+ };
+
+&usdhc1 {
+ compatible = "fsl,imxrt-usdhc";
+ u-boot,dm-spl;
+};
+
+&lcdif {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_lcdif>;
+ display = <&display0>;
+ status = "okay";
+
+ display0: display0 {
+ bits-per-pixel = <16>;
+ bus-width = <16>;
- pinctrl_usdhc0: usdhc0grp {
- u-boot,dm-spl;
+ display-timings {
+ timing0: timing0 {
+ clock-frequency = <9300000>;
+ hactive = <480>;
+ vactive = <272>;
+ hback-porch = <4>;
+ hfront-porch = <8>;
+ vback-porch = <4>;
+ vfront-porch = <8>;
+ hsync-len = <41>;
+ vsync-len = <10>;
+ de-active = <1>;
+ pixelclk-active = <0>;
+ hsync-active = <0>;
+ vsync-active = <0>;
+ };
};
};
};
-&usdhc1 {
- u-boot,dm-spl;
+&usbotg1 {
+ dr_mode = "host";
+ status = "okay";
};
diff --git a/arch/arm/dts/imxrt1050-evk.dts b/arch/arm/dts/imxrt1050-evk.dts
index fb2da3adfc..6a9c10decf 100644
--- a/arch/arm/dts/imxrt1050-evk.dts
+++ b/arch/arm/dts/imxrt1050-evk.dts
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (C) 2019
* Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com>
@@ -6,7 +6,6 @@
/dts-v1/;
#include "imxrt1050.dtsi"
-#include "imxrt1050-evk-u-boot.dtsi"
#include "imxrt1050-pinfunc.h"
/ {
@@ -14,210 +13,52 @@
compatible = "fsl,imxrt1050-evk", "fsl,imxrt1050";
chosen {
- bootargs = "root=/dev/ram";
- stdout-path = "serial0:115200n8";
- tick-timer = &gpt1;
+ stdout-path = &lpuart1;
};
- memory {
+ aliases {
+ gpio0 = &gpio1;
+ gpio1 = &gpio2;
+ gpio2 = &gpio3;
+ gpio3 = &gpio4;
+ gpio4 = &gpio5;
+ mmc0 = &usdhc1;
+ serial0 = &lpuart1;
+ };
+
+ memory at 80000000 {
device_type = "memory";
reg = <0x80000000 0x2000000>;
};
};
-&lpuart1 { /* console */
+&lpuart1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lpuart1>;
status = "okay";
};
-&semc {
- /*
- * Memory configuration from sdram datasheet IS42S16160J-6BLI
- */
- fsl,sdram-mux = /bits/ 8 <MUX_A8_SDRAM_A8
- MUX_CSX0_SDRAM_CS1
- 0
- 0
- 0
- 0>;
- fsl,sdram-control = /bits/ 8 <MEM_WIDTH_16BITS
- BL_8
- COL_9BITS
- CL_3>;
- fsl,sdram-timing = /bits/ 8 <0x2
- 0x2
- 0x9
- 0x1
- 0x5
- 0x6
-
- 0x20
- 0x09
- 0x01
- 0x00
-
- 0x04
- 0x0A
- 0x21
- 0x50>;
-
- bank1: bank at 0 {
- fsl,base-address = <0x80000000>;
- fsl,memory-size = <MEM_SIZE_32M>;
- };
-};
-
&iomuxc {
pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_lpuart1>;
-
- imxrt1050-evk {
- pinctrl_lpuart1: lpuart1grp {
- fsl,pins = <
- MXRT1050_IOMUXC_GPIO_AD_B0_12_LPUART1_TXD
- 0xf1
- MXRT1050_IOMUXC_GPIO_AD_B0_13_LPUART1_RXD
- 0xf1
- >;
- };
-
- pinctrl_semc: semcgrp {
- fsl,pins = <
- MXRT1050_IOMUXC_GPIO_EMC_00_SEMC_DA00
- 0xf1 /* SEMC_D0 */
- MXRT1050_IOMUXC_GPIO_EMC_01_SEMC_DA01
- 0xf1 /* SEMC_D1 */
- MXRT1050_IOMUXC_GPIO_EMC_02_SEMC_DA02
- 0xf1 /* SEMC_D2 */
- MXRT1050_IOMUXC_GPIO_EMC_03_SEMC_DA03
- 0xf1 /* SEMC_D3 */
- MXRT1050_IOMUXC_GPIO_EMC_04_SEMC_DA04
- 0xf1 /* SEMC_D4 */
- MXRT1050_IOMUXC_GPIO_EMC_05_SEMC_DA05
- 0xf1 /* SEMC_D5 */
- MXRT1050_IOMUXC_GPIO_EMC_06_SEMC_DA06
- 0xf1 /* SEMC_D6 */
- MXRT1050_IOMUXC_GPIO_EMC_07_SEMC_DA07
- 0xf1 /* SEMC_D7 */
- MXRT1050_IOMUXC_GPIO_EMC_08_SEMC_DM00
- 0xf1 /* SEMC_DM0 */
- MXRT1050_IOMUXC_GPIO_EMC_09_SEMC_ADDR00
- 0xf1 /* SEMC_A0 */
- MXRT1050_IOMUXC_GPIO_EMC_10_SEMC_ADDR01
- 0xf1 /* SEMC_A1 */
- MXRT1050_IOMUXC_GPIO_EMC_11_SEMC_ADDR02
- 0xf1 /* SEMC_A2 */
- MXRT1050_IOMUXC_GPIO_EMC_12_SEMC_ADDR03
- 0xf1 /* SEMC_A3 */
- MXRT1050_IOMUXC_GPIO_EMC_13_SEMC_ADDR04
- 0xf1 /* SEMC_A4 */
- MXRT1050_IOMUXC_GPIO_EMC_14_SEMC_ADDR05
- 0xf1 /* SEMC_A5 */
- MXRT1050_IOMUXC_GPIO_EMC_15_SEMC_ADDR06
- 0xf1 /* SEMC_A6 */
- MXRT1050_IOMUXC_GPIO_EMC_16_SEMC_ADDR07
- 0xf1 /* SEMC_A7 */
- MXRT1050_IOMUXC_GPIO_EMC_17_SEMC_ADDR08
- 0xf1 /* SEMC_A8 */
- MXRT1050_IOMUXC_GPIO_EMC_18_SEMC_ADDR09
- 0xf1 /* SEMC_A9 */
- MXRT1050_IOMUXC_GPIO_EMC_19_SEMC_ADDR11
- 0xf1 /* SEMC_A11 */
- MXRT1050_IOMUXC_GPIO_EMC_20_SEMC_ADDR12
- 0xf1 /* SEMC_A12 */
- MXRT1050_IOMUXC_GPIO_EMC_21_SEMC_BA0
- 0xf1 /* SEMC_BA0 */
- MXRT1050_IOMUXC_GPIO_EMC_22_SEMC_BA1
- 0xf1 /* SEMC_BA1 */
- MXRT1050_IOMUXC_GPIO_EMC_23_SEMC_ADDR10
- 0xf1 /* SEMC_A10 */
- MXRT1050_IOMUXC_GPIO_EMC_24_SEMC_CAS
- 0xf1 /* SEMC_CAS */
- MXRT1050_IOMUXC_GPIO_EMC_25_SEMC_RAS
- 0xf1 /* SEMC_RAS */
- MXRT1050_IOMUXC_GPIO_EMC_26_SEMC_CLK
- 0xf1 /* SEMC_CLK */
- MXRT1050_IOMUXC_GPIO_EMC_27_SEMC_CKE
- 0xf1 /* SEMC_CKE */
- MXRT1050_IOMUXC_GPIO_EMC_28_SEMC_WE
- 0xf1 /* SEMC_WE */
- MXRT1050_IOMUXC_GPIO_EMC_29_SEMC_CS0
- 0xf1 /* SEMC_CS0 */
- MXRT1050_IOMUXC_GPIO_EMC_30_SEMC_DA08
- 0xf1 /* SEMC_D8 */
- MXRT1050_IOMUXC_GPIO_EMC_31_SEMC_DA09
- 0xf1 /* SEMC_D9 */
- MXRT1050_IOMUXC_GPIO_EMC_32_SEMC_DA10
- 0xf1 /* SEMC_D10 */
- MXRT1050_IOMUXC_GPIO_EMC_33_SEMC_DA11
- 0xf1 /* SEMC_D11 */
- MXRT1050_IOMUXC_GPIO_EMC_34_SEMC_DA12
- 0xf1 /* SEMC_D12 */
- MXRT1050_IOMUXC_GPIO_EMC_35_SEMC_DA13
- 0xf1 /* SEMC_D13 */
- MXRT1050_IOMUXC_GPIO_EMC_36_SEMC_DA14
- 0xf1 /* SEMC_D14 */
- MXRT1050_IOMUXC_GPIO_EMC_37_SEMC_DA15
- 0xf1 /* SEMC_D15 */
- MXRT1050_IOMUXC_GPIO_EMC_38_SEMC_DM01
- 0xf1 /* SEMC_DM1 */
- MXRT1050_IOMUXC_GPIO_EMC_39_SEMC_DQS
- (IMX_PAD_SION | 0xf1) /* SEMC_DQS */
- >;
- };
-
- pinctrl_usdhc0: usdhc0grp {
- fsl,pins = <
- MXRT1050_IOMUXC_GPIO_B1_12_USDHC1_CD_B
- 0x1B000
- MXRT1050_IOMUXC_GPIO_B1_14_USDHC1_VSELECT
- 0xB069
- MXRT1050_IOMUXC_GPIO_SD_B0_00_USDHC1_CMD
- 0x17061
- MXRT1050_IOMUXC_GPIO_SD_B0_01_USDHC1_CLK
- 0x17061
- MXRT1050_IOMUXC_GPIO_SD_B0_05_USDHC1_DATA3
- 0x17061
- MXRT1050_IOMUXC_GPIO_SD_B0_04_USDHC1_DATA2
- 0x17061
- MXRT1050_IOMUXC_GPIO_SD_B0_03_USDHC1_DATA1
- 0x17061
- MXRT1050_IOMUXC_GPIO_SD_B0_02_USDHC1_DATA0
- 0x17061
- >;
- };
-
- pinctrl_lcdif: lcdifgrp {
- fsl,pins = <
- MXRT1050_IOMUXC_GPIO_B0_00_LCD_CLK 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B0_01_LCD_ENABLE 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B0_02_LCD_HSYNC 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B0_03_LCD_VSYNC 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B0_04_LCD_DATA00 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B0_05_LCD_DATA01 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B0_06_LCD_DATA02 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B0_07_LCD_DATA03 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B0_08_LCD_DATA04 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B0_09_LCD_DATA05 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B0_10_LCD_DATA06 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B0_11_LCD_DATA07 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B0_12_LCD_DATA08 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B0_13_LCD_DATA09 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B0_14_LCD_DATA10 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B0_15_LCD_DATA11 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B1_01_LCD_DATA13 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B1_02_LCD_DATA14 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B1_03_LCD_DATA15 0x1b0b1
- MXRT1050_IOMUXC_GPIO_B1_15_GPIO2_IO31 0x0b069
- MXRT1050_IOMUXC_GPIO_AD_B0_02_GPIO1_IO02 0x0b069
- >;
- };
+ pinctrl_lpuart1: lpuart1grp {
+ fsl,pins = <
+ MXRT1050_IOMUXC_GPIO_AD_B0_12_LPUART1_TXD 0xf1
+ MXRT1050_IOMUXC_GPIO_AD_B0_13_LPUART1_RXD 0xf1
+ >;
};
-};
-&gpt1 {
- status = "okay";
+ pinctrl_usdhc0: usdhc0grp {
+ fsl,pins = <
+ MXRT1050_IOMUXC_GPIO_B1_12_USDHC1_CD_B 0x1B000
+ MXRT1050_IOMUXC_GPIO_B1_14_USDHC1_VSELECT 0xB069
+ MXRT1050_IOMUXC_GPIO_SD_B0_00_USDHC1_CMD 0x17061
+ MXRT1050_IOMUXC_GPIO_SD_B0_01_USDHC1_CLK 0x17061
+ MXRT1050_IOMUXC_GPIO_SD_B0_05_USDHC1_DATA3 0x17061
+ MXRT1050_IOMUXC_GPIO_SD_B0_04_USDHC1_DATA2 0x17061
+ MXRT1050_IOMUXC_GPIO_SD_B0_03_USDHC1_DATA1 0x17061
+ MXRT1050_IOMUXC_GPIO_SD_B0_02_USDHC1_DATA0 0x17061
+ >;
+ };
};
&usdhc1 {
@@ -226,42 +67,6 @@
pinctrl-1 = <&pinctrl_usdhc0>;
pinctrl-2 = <&pinctrl_usdhc0>;
pinctrl-3 = <&pinctrl_usdhc0>;
- status = "okay";
-
cd-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>;
-};
-
-&lcdif {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_lcdif>;
- display = <&display0>;
- status = "okay";
-
- display0: display0 {
- bits-per-pixel = <16>;
- bus-width = <16>;
-
- display-timings {
- timing0: timing0 {
- clock-frequency = <9300000>;
- hactive = <480>;
- vactive = <272>;
- hback-porch = <4>;
- hfront-porch = <8>;
- vback-porch = <4>;
- vfront-porch = <8>;
- hsync-len = <41>;
- vsync-len = <10>;
- de-active = <1>;
- pixelclk-active = <0>;
- hsync-active = <0>;
- vsync-active = <0>;
- };
- };
- };
-};
-
-&usbotg1 {
- dr_mode = "host";
status = "okay";
};
diff --git a/arch/arm/dts/imxrt1050-pinfunc.h b/arch/arm/dts/imxrt1050-pinfunc.h
index a29031ab3d..22c14a3262 100644
--- a/arch/arm/dts/imxrt1050-pinfunc.h
+++ b/arch/arm/dts/imxrt1050-pinfunc.h
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright (C) 2019
* Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com>
diff --git a/arch/arm/dts/imxrt1050.dtsi b/arch/arm/dts/imxrt1050.dtsi
index 09f4712af6..03e6a858a7 100644
--- a/arch/arm/dts/imxrt1050.dtsi
+++ b/arch/arm/dts/imxrt1050.dtsi
@@ -1,4 +1,4 @@
-// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause)
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (C) 2019
* Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com>
@@ -8,53 +8,37 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/imxrt1050-clock.h>
#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/memory/imxrt-sdram.h>
/ {
#address-cells = <1>;
#size-cells = <1>;
- aliases {
- display0 = &lcdif;
- gpio0 = &gpio1;
- gpio1 = &gpio2;
- gpio2 = &gpio3;
- gpio3 = &gpio4;
- gpio4 = &gpio5;
- mmc0 = &usdhc1;
- serial0 = &lpuart1;
- usbphy0 = &usbphy1;
- };
-
clocks {
osc: osc {
- compatible = "fsl,imx-osc", "fixed-clock";
+ compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <24000000>;
};
- };
- soc {
- semc: semc at 402f0000 {
- compatible = "fsl,imxrt-semc";
- reg = <0x402f0000 0x4000>;
- clocks = <&clks IMXRT1050_CLK_SEMC>;
- pinctrl-0 = <&pinctrl_semc>;
- pinctrl-names = "default";
- status = "okay";
+ osc3M: osc3M {
+ compatible = "fixed-clock";
+ #clock-cells = <0>;
+ clock-frequency = <3000000>;
};
+ };
+ soc {
lpuart1: serial at 40184000 {
- compatible = "fsl,imxrt-lpuart";
+ compatible = "fsl,imxrt1050-lpuart", "fsl,imx7ulp-lpuart";
reg = <0x40184000 0x4000>;
- interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
+ interrupts = <20>;
clocks = <&clks IMXRT1050_CLK_LPUART1>;
- clock-names = "per";
+ clock-names = "ipg";
status = "disabled";
};
- iomuxc: iomuxc at 401f8000 {
- compatible = "fsl,imxrt-iomuxc";
+ iomuxc: pinctrl at 401f8000 {
+ compatible = "fsl,imxrt1050-iomuxc";
reg = <0x401f8000 0x4000>;
fsl,mux_mask = <0x7>;
};
@@ -64,31 +48,61 @@
reg = <0x400d8000 0x4000>;
};
- clks: ccm at 400fc000 {
+ clks: clock-controller at 400fc000 {
compatible = "fsl,imxrt1050-ccm";
reg = <0x400fc000 0x4000>;
- interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
+ interrupts = <95>, <96>;
+ clocks = <&osc>;
+ clock-names = "osc";
#clock-cells = <1>;
- };
-
- usdhc1: usdhc at 402c0000 {
- compatible = "fsl,imxrt-usdhc";
- reg = <0x402c0000 0x10000>;
- interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clks IMXRT1050_CLK_USDHC1>;
- clock-names = "per";
+ assigned-clocks = <&clks IMXRT1050_CLK_PLL1_BYPASS>,
+ <&clks IMXRT1050_CLK_PLL1_BYPASS>,
+ <&clks IMXRT1050_CLK_PLL2_BYPASS>,
+ <&clks IMXRT1050_CLK_PLL3_BYPASS>,
+ <&clks IMXRT1050_CLK_PLL3_PFD1_664_62M>,
+ <&clks IMXRT1050_CLK_PLL2_PFD2_396M>;
+ assigned-clock-parents = <&clks IMXRT1050_CLK_PLL1_REF_SEL>,
+ <&clks IMXRT1050_CLK_PLL1_ARM>,
+ <&clks IMXRT1050_CLK_PLL2_SYS>,
+ <&clks IMXRT1050_CLK_PLL3_USB_OTG>,
+ <&clks IMXRT1050_CLK_PLL3_USB_OTG>,
+ <&clks IMXRT1050_CLK_PLL2_SYS>;
+ };
+
+ edma1: dma-controller at 400e8000 {
+ #dma-cells = <2>;
+ compatible = "fsl,imx7ulp-edma";
+ reg = <0x400e8000 0x4000>,
+ <0x400ec000 0x4000>;
+ dma-channels = <32>;
+ interrupts = <0>, <1>, <2>, <3>, <4>, <5>, <6>, <7>, <8>,
+ <9>, <10>, <11>, <12>, <13>, <14>, <15>, <16>;
+ clock-names = "dma", "dmamux0";
+ clocks = <&clks IMXRT1050_CLK_DMA>,
+ <&clks IMXRT1050_CLK_DMA_MUX>;
+ };
+
+ usdhc1: mmc at 402c0000 {
+ compatible = "fsl,imxrt1050-usdhc", "fsl,imx6sl-usdhc";
+ reg = <0x402c0000 0x4000>;
+ interrupts = <110>;
+ clocks = <&clks IMXRT1050_CLK_IPG_PDOF>,
+ <&clks IMXRT1050_CLK_OSC>,
+ <&clks IMXRT1050_CLK_USDHC1>;
+ clock-names = "ipg", "ahb", "per";
bus-width = <4>;
+ fsl,wp-controller;
+ no-1-8-v;
+ max-frequency = <4000000>;
fsl,tuning-start-tap = <20>;
- fsl,tuning-step= <2>;
+ fsl,tuning-step = <2>;
status = "disabled";
};
gpio1: gpio at 401b8000 {
- compatible = "fsl,imxrt-gpio", "fsl,imx35-gpio";
+ compatible = "fsl,imxrt1050-gpio", "fsl,imx35-gpio";
reg = <0x401b8000 0x4000>;
- interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
+ interrupts = <80>, <81>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
@@ -96,10 +110,9 @@
};
gpio2: gpio at 401bc000 {
- compatible = "fsl,imxrt-gpio", "fsl,imx35-gpio";
+ compatible = "fsl,imxrt1050-gpio", "fsl,imx35-gpio";
reg = <0x401bc000 0x4000>;
- interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
+ interrupts = <82>, <83>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
@@ -107,10 +120,9 @@
};
gpio3: gpio at 401c0000 {
- compatible = "fsl,imxrt-gpio", "fsl,imx35-gpio";
+ compatible = "fsl,imxrt1050-gpio", "fsl,imx35-gpio";
reg = <0x401c0000 0x4000>;
- interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
+ interrupts = <84>, <85>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
@@ -118,10 +130,9 @@
};
gpio4: gpio at 401c4000 {
- compatible = "fsl,imxrt-gpio", "fsl,imx35-gpio";
+ compatible = "fsl,imxrt1050-gpio", "fsl,imx35-gpio";
reg = <0x401c4000 0x4000>;
- interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
+ interrupts = <86>, <87>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
@@ -129,60 +140,21 @@
};
gpio5: gpio at 400c0000 {
- compatible = "fsl,imxrt-gpio", "fsl,imx35-gpio";
+ compatible = "fsl,imxrt1050-gpio", "fsl,imx35-gpio";
reg = <0x400c0000 0x4000>;
- interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
- <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
+ interrupts = <88>, <89>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
- lcdif: lcdif at 402b8000 {
- compatible = "fsl,imxrt-lcdif";
- reg = <0x402b8000 0x4000>;
- interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clks IMXRT1050_CLK_LCDIF_PIX>,
- <&clks IMXRT1050_CLK_LCDIF_APB>;
- clock-names = "pix", "axi";
- assigned-clocks = <&clks IMXRT1050_CLK_LCDIF_SEL>;
- assigned-clock-parents = <&clks IMXRT1050_CLK_PLL5_VIDEO>;
- status = "disabled";
- };
-
- gpt1: gpt1 at 401ec000 {
- compatible = "fsl,imxrt-gpt";
+ gpt: timer at 401ec000 {
+ compatible = "fsl,imxrt1050-gpt", "fsl,imx6dl-gpt", "fsl,imx6sl-gpt";
reg = <0x401ec000 0x4000>;
interrupts = <100>;
- clocks = <&osc>;
- status = "disabled";
- };
-
- usbphy1: usbphy at 400d9000 {
- compatible = "fsl,imxrt-usbphy";
- reg = <0x400d9000 0x1000>;
- interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
- };
-
- usbmisc: usbmisc at 402e0800 {
- #index-cells = <1>;
- compatible = "fsl,imxrt-usbmisc";
- reg = <0x402e0800 0x200>;
- clocks = <&clks IMXRT1050_CLK_USBOH3>;
- };
-
- usbotg1: usb at 402e0000 {
- compatible = "fsl,imxrt-usb", "fsl,imx27-usb";
- reg = <0x402e0000 0x200>;
- interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&clks IMXRT1050_CLK_USBOH3>;
- fsl,usbphy = <&usbphy1>;
- fsl,usbmisc = <&usbmisc 0>;
- ahb-burst-config = <0x0>;
- tx-burst-size-dword = <0x10>;
- rx-burst-size-dword = <0x10>;
- status = "disabled";
+ clocks = <&osc3M>;
+ clock-names = "per";
};
};
};
diff --git a/include/dt-bindings/clock/imxrt1050-clock.h b/include/dt-bindings/clock/imxrt1050-clock.h
index f74dbbcf93..93bef0832d 100644
--- a/include/dt-bindings/clock/imxrt1050-clock.h
+++ b/include/dt-bindings/clock/imxrt1050-clock.h
@@ -1,4 +1,4 @@
-/* SPDX-License-Identifier: GPL-2.0+ */
+/* SPDX-License-Identifier: (GPL-2.0+ OR MIT) */
/*
* Copyright(C) 2019
* Author(s): Giulio Benetti <giulio.benetti at benettiengineering.com>
@@ -62,6 +62,11 @@
#define IMXRT1050_CLK_PLL7_USB_HOST 53
#define IMXRT1050_CLK_LCDIF_PIX 54
#define IMXRT1050_CLK_USBOH3 55
-#define IMXRT1050_CLK_END 56
+#define IMXRT1050_CLK_IPG_PDOF 56
+#define IMXRT1050_CLK_PER_CLK_SEL 57
+#define IMXRT1050_CLK_PER_PDOF 58
+#define IMXRT1050_CLK_DMA 59
+#define IMXRT1050_CLK_DMA_MUX 60
+#define IMXRT1050_CLK_END 61
#endif /* __DT_BINDINGS_CLOCK_IMXRT1050_H */
--
2.35.1
More information about the U-Boot
mailing list