summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorTom Rini <[email protected]>2026-04-02 11:13:38 -0600
committerTom Rini <[email protected]>2026-04-02 11:13:38 -0600
commitd1cd6733917fa67c262fbad2520da93d788e17f7 (patch)
treed58559f86f61bee05751f615ac03c60d7defb80f /drivers
parent91c27b21b10f6cadc906af66355197e12409a543 (diff)
parent4d612ec4354b9bdfc42bc5a9e3120d5d490ba34b (diff)
Merge tag 'u-boot-imx-next-20260402' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx into next
CI: https://source.denx.de/u-boot/custodians/u-boot-imx/-/pipelines/29745 - Migrate imx95-toradex-smarc to use upstream devicetree. - Force fsl crypto driver to select ARCH_MISC_INIT to avoid crashes when using CAAM. - Support upstream Linux reset-gpios property for the i.MX PCI driver. - Avoid duplication of DDR tables on i.MX8MP DHCOM SoM. - Several cleanups on tqma6 platform. - Convert i.MX8MP boards to DM_PMIC. - Add phyCORE-i.MX91 support. - Drop unnecessary BOARD_EARLY_INIT_F usage.
Diffstat (limited to 'drivers')
-rw-r--r--drivers/crypto/fsl/Kconfig1
-rw-r--r--drivers/pci/pcie_imx.c22
-rw-r--r--drivers/spi/fsl_espi.c2
3 files changed, 21 insertions, 4 deletions
diff --git a/drivers/crypto/fsl/Kconfig b/drivers/crypto/fsl/Kconfig
index fe694f6022c..eb01c6cf700 100644
--- a/drivers/crypto/fsl/Kconfig
+++ b/drivers/crypto/fsl/Kconfig
@@ -3,6 +3,7 @@ if ARM || PPC
config FSL_CAAM
bool "Freescale Crypto Driver Support"
select SHA_HW_ACCEL
+ select ARCH_MISC_INIT
# hw_sha1() under drivers/crypto, and needed with SHA_HW_ACCEL
select MISC if DM
imply SPL_CRYPTO if (ARM && SPL)
diff --git a/drivers/pci/pcie_imx.c b/drivers/pci/pcie_imx.c
index 11c4ccbfc55..8d853ecf2c2 100644
--- a/drivers/pci/pcie_imx.c
+++ b/drivers/pci/pcie_imx.c
@@ -728,15 +728,31 @@ static int imx_pcie_dm_write_config(struct udevice *dev, pci_dev_t bdf,
static int imx_pcie_dm_probe(struct udevice *dev)
{
struct imx_pcie_priv *priv = dev_get_priv(dev);
+ int ret;
#if CONFIG_IS_ENABLED(DM_REGULATOR)
device_get_supply_regulator(dev, "vpcie-supply", &priv->vpcie);
#endif
/* if PERST# valid from dt then assert it */
- gpio_request_by_name(dev, "reset-gpio", 0, &priv->reset_gpio,
- GPIOD_IS_OUT);
- priv->reset_active_high = dev_read_bool(dev, "reset-gpio-active-high");
+ ret = gpio_request_by_name(dev, "reset-gpio", 0, &priv->reset_gpio,
+ GPIOD_IS_OUT);
+ if (!ret) {
+ /*
+ * Legacy property, invert assert logic based on
+ * reset-gpio-active-high. This won't work if flags are not
+ * matching the reset-gpio-active-high.
+ */
+ priv->reset_active_high = dev_read_bool(dev, "reset-gpio-active-high");
+ } else {
+ /*
+ * Linux kernel upstream property, assert active level based on
+ * GPIO flags, thus leave priv->reset_active_high=0.
+ */
+ gpio_request_by_name(dev, "reset-gpios", 0, &priv->reset_gpio,
+ GPIOD_IS_OUT);
+ }
+
if (dm_gpio_is_valid(&priv->reset_gpio)) {
dm_gpio_set_value(&priv->reset_gpio,
priv->reset_active_high ? 0 : 1);
diff --git a/drivers/spi/fsl_espi.c b/drivers/spi/fsl_espi.c
index 7ed35aa3e66..117e36376b7 100644
--- a/drivers/spi/fsl_espi.c
+++ b/drivers/spi/fsl_espi.c
@@ -275,7 +275,7 @@ int espi_xfer(struct fsl_spi_slave *fsl, uint cs, unsigned int bitlen,
}
}
if (data_in) {
- memcpy(data_in, buffer + 2 * cmd_len, tran_len);
+ memcpy(data_in, buffer + rx_offset, tran_len);
if (*buffer == 0x0b) {
data_in += tran_len;
data_len -= tran_len;