summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2026-03-02 13:44:46 -0600
committerTom Rini <trini@konsulko.com>2026-03-02 13:44:46 -0600
commitc0ca147ac6228949a6d6497531c9f2f4a0dc6c67 (patch)
tree203dffa4165dbe5c98fb0e2a4594185782d53dbb /arch
parentf6963fc232603007c661411fb31c57f1a9678a87 (diff)
parent56e5f5290f2daf886bf6306f426cbb1171deac01 (diff)
Merge tag 'u-boot-imx-next-20260228' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into nextnext
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/29404 - Miscelanous improvements for Siemens Capricorn board. - Convert i.MX6 IPUv3 driver to use clock framework. - Skip voltage switching for fixed 1.8V regulator on fsl_esdhc_imx. - Support printing imx8m pinmux. - Enter fastboot on USB boot by default on phycore-imx93. - Use arch override for env_get_location() on imx95.
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/dts/imx8-capricorn-cxg3.dts44
-rw-r--r--arch/arm/dts/imx8-capricorn.dtsi60
-rw-r--r--arch/arm/mach-imx/cpu.c3
-rw-r--r--arch/arm/mach-imx/imx8/misc.c33
-rw-r--r--arch/arm/mach-imx/imx9/scmi/soc.c2
5 files changed, 81 insertions, 61 deletions
diff --git a/arch/arm/dts/imx8-capricorn-cxg3.dts b/arch/arm/dts/imx8-capricorn-cxg3.dts
index 2f8597579f3..b40410b2b6f 100644
--- a/arch/arm/dts/imx8-capricorn-cxg3.dts
+++ b/arch/arm/dts/imx8-capricorn-cxg3.dts
@@ -102,6 +102,26 @@
pinctrl-0 = <&pinctrl_gpio_keys>;
muxcgrp: imx8qxp-som {
+ pinctrl_fec2: fec2grp {
+ fsl,pins = <
+ SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB0_PAD 0x000014a0
+ SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB1_PAD 0x000014a0
+ SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHB_PAD 0x000514a0
+
+ SC_P_ENET0_MDC_CONN_ENET1_MDC 0x00000060
+ SC_P_ENET0_MDIO_CONN_ENET1_MDIO 0x00000060
+
+ SC_P_ESAI0_FSR_CONN_ENET1_RCLK50M_IN 0x00000060
+ SC_P_SPDIF0_RX_CONN_ENET1_RGMII_RXD0 0x00000060
+ SC_P_ESAI0_TX3_RX2_CONN_ENET1_RGMII_RXD1 0x00000060
+ SC_P_ESAI0_TX2_RX3_CONN_ENET1_RMII_RX_ER 0x00000060
+ SC_P_SPDIF0_TX_CONN_ENET1_RGMII_RX_CTL 0x00000060
+ SC_P_ESAI0_TX4_RX1_CONN_ENET1_RGMII_TXD0 0x00000060
+ SC_P_ESAI0_TX5_RX0_CONN_ENET1_RGMII_TXD1 0x00000060
+ SC_P_ESAI0_SCKR_CONN_ENET1_RGMII_TX_CTL 0x00000060
+ >;
+ };
+
pinctrl_gpio_leds: gpioledsgrp {
fsl,pins = <
SC_P_ESAI0_FST_LSIO_GPIO0_IO01 0x06000021
@@ -127,3 +147,27 @@
>;
};
};
+
+&fec2 {
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_fec2>;
+ phy-mode = "rmii";
+
+ phy-handle = <&ethphy1>;
+ fsl,magic-packet;
+ status = "okay";
+
+ mdio {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ethphy0: ethernet-phy@0 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <0>;
+ };
+ ethphy1: ethernet-phy@1 {
+ compatible = "ethernet-phy-ieee802.3-c22";
+ reg = <1>;
+ };
+ };
+};
diff --git a/arch/arm/dts/imx8-capricorn.dtsi b/arch/arm/dts/imx8-capricorn.dtsi
index 3734a9d21f1..f640daa775f 100644
--- a/arch/arm/dts/imx8-capricorn.dtsi
+++ b/arch/arm/dts/imx8-capricorn.dtsi
@@ -63,41 +63,6 @@
SC_P_EMMC0_DATA7_CONN_EMMC0_DATA7 0x00000021
SC_P_EMMC0_STROBE_CONN_EMMC0_STROBE 0x06000041
SC_P_EMMC0_RESET_B_CONN_EMMC0_RESET_B 0x00000021
- SC_P_ENET0_RGMII_TXC_LSIO_GPIO4_IO29 0x06000021
- >;
- };
-
- pinctrl_usdhc2: usdhc2grp {
- fsl,pins = <
- SC_P_ENET0_RGMII_RXC_CONN_USDHC1_CLK 0x06000041
- SC_P_ENET0_RGMII_RX_CTL_CONN_USDHC1_CMD 0x00000021
- SC_P_ENET0_RGMII_RXD0_CONN_USDHC1_DATA0 0x00000021
- SC_P_ENET0_RGMII_RXD1_CONN_USDHC1_DATA1 0x00000021
- SC_P_ENET0_RGMII_RXD2_CONN_USDHC1_DATA2 0x00000021
- SC_P_ENET0_RGMII_RXD3_CONN_USDHC1_DATA3 0x00000021
- SC_P_ENET0_RGMII_TXD2_CONN_USDHC1_CD_B 0x06000021
- //SC_P_ENET0_RGMII_TXD2_LSIO_GPIO5_IO01 0x06000021
- SC_P_ENET0_RGMII_TX_CTL_LSIO_GPIO4_IO30 0x06000021
- >;
- };
-
- pinctrl_fec2: fec2grp {
- fsl,pins = <
- SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB0_PAD 0x000014a0
- SC_P_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB1_PAD 0x000014a0
- SC_P_COMP_CTL_GPIO_1V8_3V3_GPIORHB_PAD 0x000514a0
-
- SC_P_ENET0_MDC_CONN_ENET1_MDC 0x00000060
- SC_P_ENET0_MDIO_CONN_ENET1_MDIO 0x00000060
-
- SC_P_ESAI0_FSR_CONN_ENET1_RCLK50M_IN 0x00000060
- SC_P_SPDIF0_RX_CONN_ENET1_RGMII_RXD0 0x00000060
- SC_P_ESAI0_TX3_RX2_CONN_ENET1_RGMII_RXD1 0x00000060
- SC_P_ESAI0_TX2_RX3_CONN_ENET1_RMII_RX_ER 0x00000060
- SC_P_SPDIF0_TX_CONN_ENET1_RGMII_RX_CTL 0x00000060
- SC_P_ESAI0_TX4_RX1_CONN_ENET1_RGMII_TXD0 0x00000060
- SC_P_ESAI0_TX5_RX0_CONN_ENET1_RGMII_TXD1 0x00000060
- SC_P_ESAI0_SCKR_CONN_ENET1_RGMII_TX_CTL 0x00000060 /* ERST: Reset pin */
>;
};
};
@@ -126,6 +91,7 @@
&usdhc1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc1>;
+ max-frequency = <52000000>;
clock-frequency=<52000000>;
no-1-8-v;
bus-width = <8>;
@@ -160,27 +126,3 @@
&fec1 {
status ="disabled";
};
-
-&fec2 {
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_fec2>;
- phy-mode = "rmii";
-
- phy-handle = <&ethphy1>;
- fsl,magic-packet;
- status = "okay";
-
- mdio {
- #address-cells = <1>;
- #size-cells = <0>;
-
- ethphy0: ethernet-phy@0 {
- compatible = "ethernet-phy-ieee802.3-c22";
- reg = <0>;
- };
- ethphy1: ethernet-phy@1 {
- compatible = "ethernet-phy-ieee802.3-c22";
- reg = <1>;
- };
- };
-};
diff --git a/arch/arm/mach-imx/cpu.c b/arch/arm/mach-imx/cpu.c
index 20c741283cd..8af45e14707 100644
--- a/arch/arm/mach-imx/cpu.c
+++ b/arch/arm/mach-imx/cpu.c
@@ -310,7 +310,8 @@ void arch_preboot_os(void)
/* disable video before launching O/S */
rc = uclass_find_first_device(UCLASS_VIDEO, &dev);
while (!rc && dev) {
- ipuv3_fb_shutdown(dev);
+ if (device_active(dev))
+ ipuv3_fb_shutdown(dev);
uclass_find_next_device(&dev);
}
#endif
diff --git a/arch/arm/mach-imx/imx8/misc.c b/arch/arm/mach-imx/imx8/misc.c
index c77104d0338..22d6959f74f 100644
--- a/arch/arm/mach-imx/imx8/misc.c
+++ b/arch/arm/mach-imx/imx8/misc.c
@@ -1,4 +1,6 @@
// SPDX-License-Identifier: GPL-2.0+
+#include <command.h>
+#include <env.h>
#include <log.h>
#include <firmware/imx/sci/sci.h>
#include <asm/mach-imx/sys_proto.h>
@@ -62,3 +64,34 @@ void build_info(void)
printf("Build: SCFW %08x, SECO-FW %08x, ATF %s\n",
sc_commit, seco_commit, (char *)&atf_commit);
}
+
+int do_boottype(struct cmd_tbl *cmdtp, int flag, int argc, char * const argv[])
+{
+ sc_misc_bt_t boot_type;
+
+ if (argc > 2)
+ return CMD_RET_USAGE;
+
+ if (sc_misc_get_boot_type(-1, &boot_type) != 0) {
+ puts("boottype cannot be retrieved\n");
+ return CMD_RET_FAILURE;
+ }
+
+ if (argc > 1)
+ printf("Boottype: %d\n", boot_type);
+
+ env_set_ulong("boottype", boot_type);
+
+ return CMD_RET_SUCCESS;
+}
+
+U_BOOT_CMD(boottype, CONFIG_SYS_MAXARGS, 2, do_boottype,
+ "save current boot-container in env variable 'boottype'",
+ "possible values for boottype:\n"
+ "0: SC_MISC_BT_PRIMARY\n"
+ "1: SC_MISC_BT_SECONDARY\n"
+ "2: SC_MISC_BT_RECOVERY\n"
+ "3: SC_MISC_BT_MANUFACTURE\n"
+ "4: SC_MISC_BT_SERIAL\n"
+ "[print] - print current boottype"
+);
diff --git a/arch/arm/mach-imx/imx9/scmi/soc.c b/arch/arm/mach-imx/imx9/scmi/soc.c
index c1458ccca3c..17269ddd2fc 100644
--- a/arch/arm/mach-imx/imx9/scmi/soc.c
+++ b/arch/arm/mach-imx/imx9/scmi/soc.c
@@ -820,7 +820,7 @@ int timer_init(void)
return 0;
}
-enum env_location env_get_location(enum env_operation op, int prio)
+enum env_location arch_env_get_location(enum env_operation op, int prio)
{
enum boot_device dev = get_boot_device();
enum env_location env_loc = ENVL_UNKNOWN;