mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-27 16:01:27 +00:00

The phyCORE-i.MX 93 is available in various variants (e.g. different ram sizes, eMMC HS400 yes/no). Enable hardware introspection for the imx93-phyboard-segin_defconfig, so that during startup the SOM module variant can be detected, and the hardware can be configured accordingly. The resulting SPL and u-boot binary shall able to boot each phyCORE-i.MX 93 module variant on each carrier board. Finally rename imx93-phyboard-segin_defconfig to imx93-phycore_defconfig, to highlight its SOM scope. Signed-off-by: Christoph Stoidner <c.stoidner@phytec.de> Reviewed-by: Wadim Egorov <w.egorov@phytec.de> Reviewed-by: Yannic Moog <y.moog@phytec.de>
373 lines
6.8 KiB
Text
373 lines
6.8 KiB
Text
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
|
/*
|
|
* Copyright (C) 2023 PHYTEC Messtechnik GmbH
|
|
* Christoph Stoidner <c.stoidner@phytec.de>
|
|
* Copyright (C) 2024 PHYTEC Messtechnik GmbH
|
|
*
|
|
* Product homepage:
|
|
https://www.phytec.de/produkte/system-on-modules/phycore-imx-91-93/
|
|
*/
|
|
|
|
#include "imx93-u-boot.dtsi"
|
|
|
|
/ {
|
|
/*
|
|
* The phyCORE-i.MX93 u-boot uses the imx93-phyboard-segin.dts as
|
|
* reference, but does only make use of its SoM (phyCORE) contained
|
|
* periphery.
|
|
*/
|
|
model = "PHYTEC phyCORE-i.MX93";
|
|
|
|
wdt-reboot {
|
|
compatible = "wdt-reboot";
|
|
wdt = <&wdog3>;
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
aliases {
|
|
ethernet0 = &fec;
|
|
ethernet1 = &eqos;
|
|
};
|
|
|
|
firmware {
|
|
optee {
|
|
compatible = "linaro,optee-tz";
|
|
method = "smc";
|
|
};
|
|
};
|
|
};
|
|
|
|
&{/soc@0} {
|
|
bootph-all;
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
&aips1 {
|
|
bootph-pre-ram;
|
|
bootph-all;
|
|
};
|
|
|
|
&aips2 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
&aips3 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
&iomuxc {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
®_usdhc2_vmmc {
|
|
u-boot,off-on-delay-us = <20000>;
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
&pinctrl_reg_usdhc2_vmmc {
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
&pinctrl_uart1 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
&pinctrl_usdhc1 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
&pinctrl_usdhc2_cd {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
&pinctrl_usdhc2_default {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
&pinctrl_usdhc2_100mhz {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
&pinctrl_usdhc2_200mhz {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
&gpio1 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
&gpio2 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
&gpio3 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
&gpio4 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
&lpuart1 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
/*
|
|
* Remove once USB support is added to imx93-phyboard-segin.dts upstream.
|
|
*/
|
|
&usbotg1 {
|
|
disable-over-current;
|
|
dr_mode = "otg";
|
|
status = "okay";
|
|
};
|
|
|
|
&usbotg2 {
|
|
disable-over-current;
|
|
dr_mode = "host";
|
|
status = "okay";
|
|
};
|
|
|
|
&usdhc1 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
/*
|
|
* Remove pinctrl assignments once they are added to imx93-phycore-som.dtsi
|
|
*/
|
|
pinctrl-names = "default", "state_100mhz", "state_200mhz";
|
|
pinctrl-0 = <&pinctrl_usdhc1>;
|
|
pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
|
|
pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
|
|
};
|
|
|
|
&usdhc2 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
fsl,signal-voltage-switch-extra-delay-ms = <8>;
|
|
};
|
|
|
|
&lpi2c1 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
&lpi2c2 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
&lpi2c3 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
};
|
|
|
|
&s4muap {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
status = "okay";
|
|
};
|
|
|
|
&clk {
|
|
bootph-all;
|
|
bootph-pre-ram;
|
|
/delete-property/ assigned-clocks;
|
|
/delete-property/ assigned-clock-rates;
|
|
/delete-property/ assigned-clock-parents;
|
|
};
|
|
|
|
&osc_32k {
|
|
bootph-all;
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
&osc_24m {
|
|
bootph-all;
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
&clk_ext1 {
|
|
bootph-all;
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
&wdog3 {
|
|
bootph-all;
|
|
bootph-pre-ram;
|
|
};
|
|
|
|
/*
|
|
* The two nodes below won't be needed once nxp,pca9451a
|
|
* support is added to the Linux kernel.
|
|
*/
|
|
&iomuxc {
|
|
pinctrl_lpi2c3: lpi2c3grp {
|
|
bootph-pre-ram;
|
|
fsl,pins = <
|
|
MX93_PAD_GPIO_IO28__LPI2C3_SDA 0x40000b9e
|
|
MX93_PAD_GPIO_IO29__LPI2C3_SCL 0x40000b9e
|
|
>;
|
|
};
|
|
|
|
pinctrl_pmic: pmicgrp {
|
|
bootph-pre-ram;
|
|
fsl,pins = <
|
|
MX93_PAD_ENET2_RD3__GPIO4_IO27 0x31e
|
|
>;
|
|
};
|
|
|
|
/*
|
|
* Remove pinctrl_usdhc1_100mhz and pinctrl_usdhc1_200mhz once they
|
|
* are added to imx93-phycore-som.dtsi
|
|
*/
|
|
/* need to config the SION for data and cmd pad, refer to ERR052021 */
|
|
pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
fsl,pins = <
|
|
MX93_PAD_SD1_CLK__USDHC1_CLK 0x17be
|
|
MX93_PAD_SD1_CMD__USDHC1_CMD 0x4000139e
|
|
MX93_PAD_SD1_DATA0__USDHC1_DATA0 0x4000138e
|
|
MX93_PAD_SD1_DATA1__USDHC1_DATA1 0x4000139e
|
|
MX93_PAD_SD1_DATA2__USDHC1_DATA2 0x400013be
|
|
MX93_PAD_SD1_DATA3__USDHC1_DATA3 0x4000139e
|
|
MX93_PAD_SD1_DATA4__USDHC1_DATA4 0x4000139e
|
|
MX93_PAD_SD1_DATA5__USDHC1_DATA5 0x4000139e
|
|
MX93_PAD_SD1_DATA6__USDHC1_DATA6 0x4000139e
|
|
MX93_PAD_SD1_DATA7__USDHC1_DATA7 0x4000139e
|
|
MX93_PAD_SD1_STROBE__USDHC1_STROBE 0x179e
|
|
>;
|
|
};
|
|
|
|
/* need to config the SION for data and cmd pad, refer to ERR052021 */
|
|
pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
fsl,pins = <
|
|
MX93_PAD_SD1_CLK__USDHC1_CLK 0x17be
|
|
MX93_PAD_SD1_CMD__USDHC1_CMD 0x4000139e
|
|
MX93_PAD_SD1_DATA0__USDHC1_DATA0 0x4000139e
|
|
MX93_PAD_SD1_DATA1__USDHC1_DATA1 0x400013be
|
|
MX93_PAD_SD1_DATA2__USDHC1_DATA2 0x400013be
|
|
MX93_PAD_SD1_DATA3__USDHC1_DATA3 0x400013be
|
|
MX93_PAD_SD1_DATA4__USDHC1_DATA4 0x400013be
|
|
MX93_PAD_SD1_DATA5__USDHC1_DATA5 0x400013be
|
|
MX93_PAD_SD1_DATA6__USDHC1_DATA6 0x400013be
|
|
MX93_PAD_SD1_DATA7__USDHC1_DATA7 0x400013be
|
|
MX93_PAD_SD1_STROBE__USDHC1_STROBE 0x179e
|
|
>;
|
|
};
|
|
};
|
|
|
|
&lpi2c3 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
clock-frequency = <400000>;
|
|
pinctrl-names = "default", "sleep";
|
|
pinctrl-0 = <&pinctrl_lpi2c3>;
|
|
pinctrl-1 = <&pinctrl_lpi2c3>;
|
|
status = "okay";
|
|
|
|
pmic@25 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
compatible = "nxp,pca9451a";
|
|
reg = <0x25>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pinctrl_pmic>;
|
|
interrupt-parent = <&gpio4>;
|
|
interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
|
|
|
|
regulators {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
buck1: BUCK1 {
|
|
regulator-name = "VDD_SOC";
|
|
regulator-min-microvolt = <610000>;
|
|
regulator-max-microvolt = <950000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
regulator-ramp-delay = <3125>;
|
|
};
|
|
|
|
buck2: BUCK2 {
|
|
regulator-name = "VDDQ_0V6";
|
|
regulator-min-microvolt = <600000>;
|
|
regulator-max-microvolt = <600000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
|
|
buck4: BUCK4 {
|
|
regulator-name = "VDD_3V3_BUCK";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
|
|
buck5: BUCK5 {
|
|
regulator-name = "VDD_1V8";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
|
|
buck6: BUCK6 {
|
|
regulator-name = "VDD_1V1";
|
|
regulator-min-microvolt = <1100000>;
|
|
regulator-max-microvolt = <1100000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
|
|
ldo1: LDO1 {
|
|
regulator-name = "PMIC_SNVS_1V8";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
|
|
ldo4: LDO4 {
|
|
regulator-name = "VDD_0V8";
|
|
regulator-min-microvolt = <800000>;
|
|
regulator-max-microvolt = <800000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
|
|
ldo5: LDO5 {
|
|
regulator-name = "NVCC_SD2";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-boot-on;
|
|
regulator-always-on;
|
|
};
|
|
};
|
|
};
|
|
|
|
eeprom@50 {
|
|
bootph-pre-ram;
|
|
bootph-some-ram;
|
|
compatible = "atmel,24c32";
|
|
reg = <0x50>;
|
|
pagesize = <32>;
|
|
vcc-supply = <&buck4>;
|
|
};
|
|
};
|