On Sat, 5 Oct 2024 at 06:43, Marek Vasut <ma...@denx.de> wrote: > > Enable OF_UPSTREAM to use upstream DT and add freescale/ prefix to the > DEFAULT_DEVICE_TREE. And thereby directly build DTB from dts/upstream/src/ > including *-u-boot.dtsi and DTBOs from arch/$(ARCH)/dts/ directory. > > Signed-off-by: Marek Vasut <ma...@denx.de> > --- > Cc: "NXP i.MX U-Boot Team" <uboot-...@nxp.com> > Cc: Caleb Connolly <caleb.conno...@linaro.org> > Cc: Christoph Niedermaier <cniederma...@dh-electronics.com> > Cc: Fabio Estevam <feste...@gmail.com> > Cc: Heinrich Schuchardt <xypron.g...@gmx.de> > Cc: Jonas Karlman <jo...@kwiboo.se> > Cc: Lothar Rubusch <l.rubu...@gmail.com> > Cc: Michal Simek <michal.si...@amd.com> > Cc: Nobuhiro Iwamatsu <iwama...@nigauri.org> > Cc: Rasmus Villemoes <rasmus.villem...@prevas.dk> > Cc: Simon Glass <s...@chromium.org> > Cc: Stefano Babic <sba...@denx.de> > Cc: Sumit Garg <sumit.g...@linaro.org> > Cc: Tom Rini <tr...@konsulko.com> > Cc: u-b...@dh-electronics.com > Cc: u-boot@lists.denx.de > --- > V2: Enable CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS > --- > arch/arm/dts/Makefile | 2 - > arch/arm/dts/imx8mp-dhcom-pdk2.dts | 158 -------------- > arch/arm/dts/imx8mp-dhcom-pdk3.dts | 317 ---------------------------- > configs/imx8mp_dhcom_pdk2_defconfig | 6 +- > configs/imx8mp_dhcom_pdk3_defconfig | 6 +- > 5 files changed, 8 insertions(+), 481 deletions(-) > delete mode 100644 arch/arm/dts/imx8mp-dhcom-pdk2.dts > delete mode 100644 arch/arm/dts/imx8mp-dhcom-pdk3.dts >
Reviewed-by: Sumit Garg <sumit.g...@linaro.org> -Sumit > diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile > index 83e38f0352a..ed97e1c26de 100644 > --- a/arch/arm/dts/Makefile > +++ b/arch/arm/dts/Makefile > @@ -969,8 +969,6 @@ dtb-$(CONFIG_ARCH_IMX8M) += \ > imx8mp-dhcom-pdk-overlay-eth2xfast.dtbo \ > imx8mp-debix-model-a.dtb \ > imx8mp-dhcom-drc02.dtb \ > - imx8mp-dhcom-pdk2.dtb \ > - imx8mp-dhcom-pdk3.dtb \ > imx8mp-dhcom-pdk3-overlay-rev100.dtbo \ > imx8mp-dhcom-picoitx.dtb \ > imx8mp-icore-mx8mp-edimm2.2.dtb \ > diff --git a/arch/arm/dts/imx8mp-dhcom-pdk2.dts > b/arch/arm/dts/imx8mp-dhcom-pdk2.dts > deleted file mode 100644 > index 8f4eff37c40..00000000000 > --- a/arch/arm/dts/imx8mp-dhcom-pdk2.dts > +++ /dev/null > @@ -1,158 +0,0 @@ > -// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > -/* > - * Copyright (C) 2022 Marek Vasut <ma...@denx.de> > - * > - * DHCOM iMX8MP variant: > - * > DHCM-iMX8ML8-C160-R409-F1638-SPI16-GE-CAN2-SD-RTC-WBTA-ADC-T-RGB-CSI2-HS-I-01D2 > - * DHCOM PCB number: 660-100 or newer > - * PDK2 PCB number: 516-400 or newer > - */ > - > -/dts-v1/; > - > -#include <dt-bindings/leds/common.h> > -#include <dt-bindings/phy/phy-imx8-pcie.h> > -#include "imx8mp-dhcom-som.dtsi" > - > -/ { > - model = "DH electronics i.MX8M Plus DHCOM Premium Developer Kit (2)"; > - compatible = "dh,imx8mp-dhcom-pdk2", "dh,imx8mp-dhcom-som", > - "fsl,imx8mp"; > - > - chosen { > - stdout-path = &uart1; > - }; > - > - gpio-keys { > - compatible = "gpio-keys"; > - > - button-0 { > - gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; /* GPIO A */ > - label = "TA1-GPIO-A"; > - linux,code = <KEY_A>; > - pinctrl-0 = <&pinctrl_dhcom_a>; > - pinctrl-names = "default"; > - wakeup-source; > - }; > - > - button-1 { > - gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; /* GPIO B */ > - label = "TA2-GPIO-B"; > - linux,code = <KEY_B>; > - pinctrl-0 = <&pinctrl_dhcom_b>; > - pinctrl-names = "default"; > - wakeup-source; > - }; > - > - button-2 { > - gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; /* GPIO C */ > - label = "TA3-GPIO-C"; > - linux,code = <KEY_C>; > - pinctrl-0 = <&pinctrl_dhcom_c>; > - pinctrl-names = "default"; > - wakeup-source; > - }; > - > - button-3 { > - gpios = <&gpio4 27 GPIO_ACTIVE_LOW>; /* GPIO D */ > - label = "TA4-GPIO-D"; > - linux,code = <KEY_D>; > - pinctrl-0 = <&pinctrl_dhcom_d>; > - pinctrl-names = "default"; > - wakeup-source; > - }; > - }; > - > - led { > - compatible = "gpio-leds"; > - > - led-0 { > - color = <LED_COLOR_ID_GREEN>; > - default-state = "off"; > - function = LED_FUNCTION_INDICATOR; > - gpios = <&gpio5 22 GPIO_ACTIVE_HIGH>; /* GPIO E */ > - pinctrl-0 = <&pinctrl_dhcom_e>; > - pinctrl-names = "default"; > - }; > - > - led-1 { > - color = <LED_COLOR_ID_GREEN>; > - default-state = "off"; > - function = LED_FUNCTION_INDICATOR; > - gpios = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* GPIO F */ > - pinctrl-0 = <&pinctrl_dhcom_f>; > - pinctrl-names = "default"; > - }; > - > - led-2 { > - color = <LED_COLOR_ID_GREEN>; > - default-state = "off"; > - function = LED_FUNCTION_INDICATOR; > - gpios = <&gpio1 11 GPIO_ACTIVE_HIGH>; /* GPIO H */ > - pinctrl-0 = <&pinctrl_dhcom_h>; > - pinctrl-names = "default"; > - }; > - > - led-3 { > - color = <LED_COLOR_ID_GREEN>; > - default-state = "off"; > - function = LED_FUNCTION_INDICATOR; > - gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; /* GPIO I */ > - pinctrl-0 = <&pinctrl_dhcom_i>; > - pinctrl-names = "default"; > - }; > - }; > -}; > - > -&fec { /* Second ethernet */ > - pinctrl-0 = <&pinctrl_fec_rgmii>; > - phy-handle = <ðphypdk>; > - phy-mode = "rgmii"; > - > - mdio { > - ethphypdk: ethernet-phy@7 { /* KSZ 9021 */ > - compatible = "ethernet-phy-ieee802.3-c22"; > - pinctrl-0 = <&pinctrl_ethphy1>; > - pinctrl-names = "default"; > - interrupt-parent = <&gpio4>; > - interrupts = <3 IRQ_TYPE_LEVEL_LOW>; > - max-speed = <100>; > - reg = <7>; > - reset-assert-us = <1000>; > - reset-deassert-us = <1000>; > - reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>; > - rxc-skew-ps = <3000>; > - rxd0-skew-ps = <0>; > - rxd1-skew-ps = <0>; > - rxd2-skew-ps = <0>; > - rxd3-skew-ps = <0>; > - rxdv-skew-ps = <0>; > - txc-skew-ps = <3000>; > - txd0-skew-ps = <0>; > - txd1-skew-ps = <0>; > - txd2-skew-ps = <0>; > - txd3-skew-ps = <0>; > - txen-skew-ps = <0>; > - }; > - }; > -}; > - > -&flexcan1 { > - status = "okay"; > -}; > - > -&usb3_1 { > - fsl,over-current-active-low; > -}; > - > -&iomuxc { > - /* > - * GPIO_A,B,C,D are connected to buttons. > - * GPIO_E,F,H,I are connected to LEDs. > - * GPIO_M is connected to CLKOUT2. > - */ > - pinctrl-0 = <&pinctrl_hog_base > - &pinctrl_dhcom_g &pinctrl_dhcom_j > - &pinctrl_dhcom_k &pinctrl_dhcom_l > - &pinctrl_dhcom_int>; > -}; > diff --git a/arch/arm/dts/imx8mp-dhcom-pdk3.dts > b/arch/arm/dts/imx8mp-dhcom-pdk3.dts > deleted file mode 100644 > index 867d238f2b5..00000000000 > --- a/arch/arm/dts/imx8mp-dhcom-pdk3.dts > +++ /dev/null > @@ -1,317 +0,0 @@ > -// SPDX-License-Identifier: (GPL-2.0+ OR MIT) > -/* > - * Copyright (C) 2023 Marek Vasut <ma...@denx.de> > - * > - * DHCOM iMX8MP variant: > - * > DHCM-iMX8ML8-C160-R409-F1638-SPI16-GE-CAN2-SD-RTC-WBTA-ADC-T-RGB-CSI2-HS-I-01D2 > - * DHCOM PCB number: 660-100 or newer > - * PDK3 PCB number: 669-100 or newer > - */ > - > -/dts-v1/; > - > -#include <dt-bindings/leds/common.h> > -#include <dt-bindings/phy/phy-imx8-pcie.h> > -#include "imx8mp-dhcom-som.dtsi" > - > -/ { > - model = "DH electronics i.MX8M Plus DHCOM Premium Developer Kit (3)"; > - compatible = "dh,imx8mp-dhcom-pdk3", "dh,imx8mp-dhcom-som", > - "fsl,imx8mp"; > - > - chosen { > - stdout-path = &uart1; > - }; > - > - clk_ext_audio_codec: clock-codec { > - #clock-cells = <0>; > - clock-frequency = <24000000>; > - compatible = "fixed-clock"; > - }; > - > - clk_xtal25: clk-xtal25 { > - compatible = "fixed-clock"; > - #clock-cells = <0>; > - clock-frequency = <25000000>; > - }; > - > - connector { > - compatible = "usb-c-connector"; > - label = "USB-C"; > - data-role = "dual"; > - > - ports { > - #address-cells = <1>; > - #size-cells = <0>; > - > - port@0 { > - reg = <0>; > - > - usb_c_0_hs_ep: endpoint { > - remote-endpoint = <&dwc3_0_hs_ep>; > - }; > - }; > - > - port@1 { > - reg = <1>; > - > - usb_c_0_ss_ep: endpoint { > - remote-endpoint = <&ptn5150_in_ep>; > - }; > - }; > - }; > - }; > - > - gpio-keys { > - compatible = "gpio-keys"; > - > - button-0 { > - gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; /* GPIO A */ > - label = "TA1-GPIO-A"; > - linux,code = <KEY_A>; > - pinctrl-0 = <&pinctrl_dhcom_a>; > - pinctrl-names = "default"; > - wakeup-source; > - }; > - > - button-1 { > - gpios = <&gpio1 8 GPIO_ACTIVE_LOW>; /* GPIO B */ > - label = "TA2-GPIO-B"; > - linux,code = <KEY_B>; > - pinctrl-0 = <&pinctrl_dhcom_b>; > - pinctrl-names = "default"; > - wakeup-source; > - }; > - > - button-2 { > - gpios = <&gpio5 2 GPIO_ACTIVE_LOW>; /* GPIO C */ > - label = "TA3-GPIO-C"; > - linux,code = <KEY_C>; > - pinctrl-0 = <&pinctrl_dhcom_c>; > - pinctrl-names = "default"; > - wakeup-source; > - }; > - > - button-3 { > - gpios = <&gpio5 22 GPIO_ACTIVE_LOW>; /* GPIO E */ > - label = "TA4-GPIO-E"; > - linux,code = <KEY_E>; > - pinctrl-0 = <&pinctrl_dhcom_e>; > - pinctrl-names = "default"; > - wakeup-source; > - }; > - }; > - > - led { > - compatible = "gpio-leds"; > - > - led-0 { > - color = <LED_COLOR_ID_GREEN>; > - default-state = "off"; > - function = LED_FUNCTION_INDICATOR; > - function-enumerator = <0>; > - gpios = <&gpio4 27 GPIO_ACTIVE_HIGH>; /* GPIO D */ > - pinctrl-0 = <&pinctrl_dhcom_d>; > - pinctrl-names = "default"; > - }; > - > - led-1 { > - color = <LED_COLOR_ID_GREEN>; > - default-state = "off"; > - function = LED_FUNCTION_INDICATOR; > - function-enumerator = <1>; > - gpios = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* GPIO F */ > - pinctrl-0 = <&pinctrl_dhcom_f>; > - pinctrl-names = "default"; > - }; > - > - led-2 { > - color = <LED_COLOR_ID_GREEN>; > - default-state = "off"; > - function = LED_FUNCTION_INDICATOR; > - function-enumerator = <2>; > - gpios = <&gpio1 0 GPIO_ACTIVE_HIGH>; /* GPIO G */ > - pinctrl-0 = <&pinctrl_dhcom_g>; > - pinctrl-names = "default"; > - }; > - > - led-3 { > - color = <LED_COLOR_ID_GREEN>; > - default-state = "off"; > - function = LED_FUNCTION_INDICATOR; > - function-enumerator = <3>; > - gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>; /* GPIO I */ > - pinctrl-0 = <&pinctrl_dhcom_i>; > - pinctrl-names = "default"; > - }; > - }; > - > - reg_avdd: regulator-avdd { /* AUDIO_VDD */ > - compatible = "regulator-fixed"; > - regulator-always-on; > - regulator-min-microvolt = <3300000>; > - regulator-max-microvolt = <3300000>; > - regulator-name = "AUDIO_VDD"; > - }; > -}; > - > -&i2c5 { > - i2cmux@70 { > - compatible = "nxp,pca9540"; > - reg = <0x70>; > - #address-cells = <1>; > - #size-cells = <0>; > - > - i2cmuxed0: i2c@0 { > - #address-cells = <1>; > - #size-cells = <0>; > - reg = <0>; > - > - typec@3d { > - compatible = "nxp,ptn5150"; > - reg = <0x3d>; > - interrupt-parent = <&gpio4>; > - interrupts = <25 IRQ_TYPE_EDGE_FALLING>; > - pinctrl-names = "default"; > - pinctrl-0 = <&pinctrl_ptn5150>; > - status = "okay"; > - > - ports { > - #address-cells = <1>; > - #size-cells = <0>; > - > - port@0 { > - reg = <0>; > - > - ptn5150_in_ep: endpoint { > - remote-endpoint = > <&usb_c_0_ss_ep>; > - }; > - }; > - > - port@1 { > - reg = <1>; > - > - ptn5150_out_ep: endpoint { > - remote-endpoint = > <&dwc3_0_ss_ep>; > - }; > - }; > - }; > - }; > - > - power-sensor@40 { > - compatible = "ti,ina238"; > - reg = <0x40>; > - shunt-resistor = <20000>; /* 0.02 R */ > - ti,shunt-gain = <1>; /* Drop cca. 40mV */ > - }; > - > - eeprom_board: eeprom@54 { > - compatible = "atmel,24c04"; > - pagesize = <16>; > - reg = <0x54>; > - }; > - > - pcieclk: clk@6b { > - compatible = "skyworks,si52144"; > - reg = <0x6b>; > - clocks = <&clk_xtal25>; > - #clock-cells = <1>; > - }; > - }; > - > - i2cmuxed1: i2c@1 { /* HDMI DDC I2C */ > - #address-cells = <1>; > - #size-cells = <0>; > - reg = <1>; > - }; > - }; > -}; > - > -&fec { /* Second ethernet */ > - pinctrl-0 = <&pinctrl_fec_rgmii>; > - phy-handle = <ðphypdk>; > - phy-mode = "rgmii-id"; > - > - mdio { > - ethphypdk: ethernet-phy@7 { /* Micrel KSZ9131RNXI */ > - compatible = "ethernet-phy-id0022.1642", > - "ethernet-phy-ieee802.3-c22"; > - interrupt-parent = <&gpio4>; > - interrupts = <3 IRQ_TYPE_LEVEL_LOW>; > - pinctrl-0 = <&pinctrl_ethphy1>; > - pinctrl-names = "default"; > - reg = <7>; > - reset-assert-us = <1000>; > - /* RESET_N signal rise time ~100ms */ > - reset-deassert-us = <120000>; > - reset-gpios = <&gpio4 2 GPIO_ACTIVE_LOW>; > - status = "okay"; > - }; > - }; > -}; > - > -&flexcan1 { > - status = "okay"; > -}; > - > -&pcie_phy { > - clocks = <&pcieclk 1>; > - clock-names = "ref"; > - fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_INPUT>; > - status = "okay"; > -}; > - > -&pcie { > - fsl,max-link-speed = <3>; > - reset-gpio = <&gpio1 6 GPIO_ACTIVE_LOW>; > - status = "okay"; > -}; > - > -&usb_dwc3_0 { > - usb-role-switch; > - > - port { > - #address-cells = <1>; > - #size-cells = <0>; > - > - dwc3_0_hs_ep: endpoint@0 { > - reg = <0>; > - remote-endpoint = <&usb_c_0_hs_ep>; > - }; > - > - dwc3_0_ss_ep: endpoint@1 { > - reg = <1>; > - remote-endpoint = <&ptn5150_out_ep>; > - }; > - }; > -}; > - > -&usb3_1 { > - fsl,disable-port-power-control; > - fsl,permanently-attached; > -}; > - > -&usb_dwc3_1 { > - /* This port has USB5734 Hub connected to it, PWR/OC pins are unused > */ > - /delete-property/ pinctrl-names; > - /delete-property/ pinctrl-0; > -}; > - > -&iomuxc { > - /* > - * GPIO_A,B,C,E are connected to buttons. > - * GPIO_D,F,G,I are connected to LEDs. > - * GPIO_H is connected to USB Hub RESET_N. > - * GPIO_M is connected to CLKOUT2. > - */ > - pinctrl-0 = <&pinctrl_hog_base > - &pinctrl_dhcom_h &pinctrl_dhcom_j &pinctrl_dhcom_k > - &pinctrl_dhcom_l > - &pinctrl_dhcom_int>; > - > - pinctrl_ptn5150: ptn5150grp { > - fsl,pins = < > - MX8MP_IOMUXC_SAI2_TXC__GPIO4_IO25 > 0x40000000 > - >; > - }; > -}; > diff --git a/configs/imx8mp_dhcom_pdk2_defconfig > b/configs/imx8mp_dhcom_pdk2_defconfig > index f807b0cfc37..d527ca92c83 100644 > --- a/configs/imx8mp_dhcom_pdk2_defconfig > +++ b/configs/imx8mp_dhcom_pdk2_defconfig > @@ -12,7 +12,7 @@ CONFIG_ENV_SIZE=0x10000 > CONFIG_ENV_OFFSET=0xFE0000 > CONFIG_ENV_SECT_SIZE=0x1000 > CONFIG_DM_GPIO=y > -CONFIG_DEFAULT_DEVICE_TREE="imx8mp-dhcom-pdk2" > +CONFIG_DEFAULT_DEVICE_TREE="freescale/imx8mp-dhcom-pdk2" > CONFIG_SPL_TEXT_BASE=0x920000 > CONFIG_TARGET_IMX8MP_DH_DHCOM_PDK2=y > CONFIG_DM_RESET=y > @@ -48,7 +48,7 @@ CONFIG_USE_BOOTARGS=y > CONFIG_USE_BOOTCOMMAND=y > CONFIG_BOOTCOMMAND="run dh_update_env distro_bootcmd ; reset" > CONFIG_USE_PREBOOT=y > -CONFIG_DEFAULT_FDT_FILE="imx8mp-dhcom-pdk2.dtb" > +CONFIG_DEFAULT_FDT_FILE="freescale/imx8mp-dhcom-pdk2.dtb" > CONFIG_SYS_CBSIZE=2048 > CONFIG_SYS_PBSIZE=2081 > CONFIG_CONSOLE_MUX=y > @@ -144,6 +144,8 @@ CONFIG_MMC_SPEED_MODE_SET=y > CONFIG_PARTITION_TYPE_GUID=y > CONFIG_OF_CONTROL=y > CONFIG_SPL_OF_CONTROL=y > +CONFIG_OF_UPSTREAM=y > +CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS=y > CONFIG_ENV_OVERWRITE=y > CONFIG_ENV_IS_NOWHERE=y > CONFIG_ENV_IS_IN_SPI_FLASH=y > diff --git a/configs/imx8mp_dhcom_pdk3_defconfig > b/configs/imx8mp_dhcom_pdk3_defconfig > index 05895d6dd6f..5a41f140bb5 100644 > --- a/configs/imx8mp_dhcom_pdk3_defconfig > +++ b/configs/imx8mp_dhcom_pdk3_defconfig > @@ -12,7 +12,7 @@ CONFIG_ENV_SIZE=0x10000 > CONFIG_ENV_OFFSET=0xFE0000 > CONFIG_ENV_SECT_SIZE=0x1000 > CONFIG_DM_GPIO=y > -CONFIG_DEFAULT_DEVICE_TREE="imx8mp-dhcom-pdk3" > +CONFIG_DEFAULT_DEVICE_TREE="freescale/imx8mp-dhcom-pdk3" > CONFIG_SPL_TEXT_BASE=0x920000 > CONFIG_TARGET_IMX8MP_DH_DHCOM_PDK2=y > CONFIG_DM_RESET=y > @@ -50,7 +50,7 @@ CONFIG_USE_BOOTCOMMAND=y > CONFIG_BOOTCOMMAND="run dh_update_env distro_bootcmd ; reset" > CONFIG_USE_PREBOOT=y > CONFIG_PREBOOT="gpio clear GPIO1_11 ; sleep 0.1 ; gpio set GPIO1_11 ; sleep > 0.1 ; i2c dev 4 && i2c mw 0x70 0 4 && i2c probe 0x2d && i2c mw 0x2d 0xaa55.2 > 0" > -CONFIG_DEFAULT_FDT_FILE="imx8mp-dhcom-pdk3.dtb" > +CONFIG_DEFAULT_FDT_FILE="freescale/imx8mp-dhcom-pdk3.dtb" > CONFIG_SYS_CBSIZE=2048 > CONFIG_SYS_PBSIZE=2081 > CONFIG_CONSOLE_MUX=y > @@ -147,6 +147,8 @@ CONFIG_MMC_SPEED_MODE_SET=y > CONFIG_PARTITION_TYPE_GUID=y > CONFIG_OF_CONTROL=y > CONFIG_SPL_OF_CONTROL=y > +CONFIG_OF_UPSTREAM=y > +CONFIG_OF_UPSTREAM_INCLUDE_LOCAL_FALLBACK_DTBOS=y > CONFIG_ENV_OVERWRITE=y > CONFIG_ENV_IS_NOWHERE=y > CONFIG_ENV_IS_IN_SPI_FLASH=y > -- > 2.45.2 >