summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
6 dayspinctrl: bcm283x: Fix GPIO pull state register values for BCM2711Cibil Pankiras
BCM2711 has different pull-up/down register values compared to BCM2835 - BCM2835: NONE=0, DOWN=1, UP=2 - BCM2711: NONE=0, UP=1, DOWN=2 This patch fixes the pull state register values for BCM2711. Fixes: 2c39d975f87c ("pinctrl: bcm283x: Add GPIO pull-up/down control for BCM2835 and BCM2711") Signed-off-by: Cibil Pankiras <cibil.pankiras@egym.com> Reviewed-by: Matthias Brugger <mbrugger@suse.com> Reviewed-by: Peter Robinson <pbrobinson@gmail.com> Tested-by: Peter Robinson <pbrobinson@gmail.com>
9 daysMerge patch series "64-bit PCIe for AM64, AM69, J7200, J722S and J784S4"Tom Rini
Siddharth Vadapalli <s-vadapalli@ti.com> says: Since Linux device-tree has switched to 64-bit Address space for the PCIe Controllers on TI SoCs, currently, U-Boot needs to support the same. This series adds support for 64-bit addressing for PCIe along with enabling Root-Complex mode of operation for AM69 and J784S4 SoCs. Series has been tested on all platforms being affected by this series. Test Logs: 1. AM642-EVM https://gist.github.com/Siddharth-Vadapalli-at-TI/82512389f8396a51e4f167c7ebe4c2a3 2. AM69-SK https://gist.github.com/Siddharth-Vadapalli-at-TI/b20b2811804ffc6e6c063564330c0a35 3. J7200-EVM https://gist.github.com/Siddharth-Vadapalli-at-TI/c545da68bd28a5e036803bb60f32d8e9 4. J722S-EVM https://gist.github.com/Siddharth-Vadapalli-at-TI/3dde05c4c7076076aa20ac47a6e2d176 5. J784S4-EVM https://gist.github.com/Siddharth-Vadapalli-at-TI/a93c1b2cd5d90f494e885d1831d3d23e Link: https://lore.kernel.org/r/20260227115841.333073-1-s-vadapalli@ti.com
9 dayspci: pcie_cdns_ti: enable PCIe root-complex mode for J784S4 SoCSiddharth Vadapalli
The PCIe Controllers on the J784S4 SoC support Root-Complex mode of operation. Hence, enable it. Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com> Fixes: 79f3e77133bd ("Subtree merge tag 'v6.16-dts' of dts repo [1] into dts/upstream")
9 daysvideo: stm32: dsi: add .of_to_plat callbackRaphael Gallais-Pou
Drivers should extract device-tree data before probing via the .of_to_plat hook. Implement it for stm32_dsi driver. By doing so, it also solve a variable shadowing in stm32_dsi_probe() where &clk was used as peripheral clock and ref clock. For readability some struct have been renamed such as: * struct stm32_dsi_priv *dsi -> struct stm32_dsi_priv *priv * struct clk clk -> struct clk pclk Signed-off-by: Raphael Gallais-Pou <rgallaispou@gmail.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
14 daysMerge patch series "MAINTAINERS: Update ADI ADSP platform maintainers"Tom Rini
Philip Molloy <philip@philipmolloy.com> says: This series updates the maintainers for the ADI ADSP platform. It follows Greg's series adding support for ADI ADSP SoCs. Timesys spent years developing and maintaining Linux support for ADI ADSP SoCs. The maintenance contract has ended and ADI has brought that effort in-house. Additionally, Timesys was acquired by another company. Thanks to everyone at Timesys for all of their hard work over the years! Link: https://lore.kernel.org/r/20260226111136.354009-1-philip@philipmolloy.com
14 daystreewide: Remove Timesys from ADI ADSP maintenancePhilip Molloy
After years of developing the ADI ADSP platform, Timesys was purchased by another company and is no longer contracted to maintain the platform. Signed-off-by: Philip Molloy <philip.molloy@analog.com> Reviewed-by: Greg Malysa <malysagreg@gmail.com>
14 daysMerge tag 'u-boot-ufs-20260304' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-ufs A few fixes/missing changes for UFS: - remove unused ufs_post_bind() declaration - Disable UTP command timeout in slow mode - Missing MediaTek UFS PHY Driver to be used with the UFS driver
2026-03-03drivers: cpu: fix syntax error in Kconfig documentationHugo Villeneuve
Replace then -> they so that the sentence makes sense. Signed-off-by: Hugo Villeneuve <hvilleneuve@dimonoff.com> Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
2026-03-03dm: core: Don't allow ofnode_to_fdt() to return NULLRomain Gantois
The ofnode_to_fdt() function may return a NULL pointer in multiple cases. Or, this function's return value is often passed directly to functions such as fdt_getprop() which end up dereferencing it, thus causing a NULL pointer exception. Don't allow ofnode_to_fdt() to return NULL, to avoid a NULL pointer dereference. Reviewed-by: Raphaël Gallais-Pou <raphael.gallais-pou@foss.st.com> Signed-off-by: Romain Gantois <romain.gantois@bootlin.com> Reviewed-by: Simon Glass <simon.glass@canonical.com>
2026-03-02drivers: ufs: remove unused ufs_post_bind() declarationJulien Stephan
Commit 067c1b033282 ("ufs: Call ufs_scsi_bind() from uclass .post_bind") inlined ufs_scsi_bind() into ufs_post_bind() as trivial device_bind_driver() call. ufs_scsi_bind() is no longer referenced anywhere in the codebase, so drop its declaration from include/ufs.h. Drivers used to include <ufs.h> to include prototype of ufs_scsi_bind() function, so we can now safely remove such includes. Fixes: 067c1b033282 ("ufs: Call ufs_scsi_bind() from uclass .post_bind") Signed-off-by: Julien Stephan <jstephan@baylibre.com> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://patch.msgid.link/20260203-cleanup-ufs-header-v1-1-4c10424485f0@baylibre.com Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2026-03-02phy: Add MediaTek UFS PHY DriverIgor Belwon
This UFS M-PHY driver can be used on recent MediaTek SoCs as the primary PHY for the UFS controller. Signed-off-by: Igor Belwon <igor.belwon@mentallysanemainliners.org> Link: https://patch.msgid.link/20251011-mtk-ufs-uboot-v1-1-a05f991ee150@mentallysanemainliners.org Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2026-03-02ufs: Disable UTP command timeout in slow modePadmarao Begari
When the UFS controller is operating in slow (PWM) mode, the driver is disabled the timeout for UTP send commands. In high-speed mode, the timeout remains enabled to detect stalled or failed transfers. This change ensures reliable operation in slow mode, where command completion may take longer and timeouts are not required. Signed-off-by: Padmarao Begari <padmarao.begari@amd.com> Signed-off-by: Michal Simek <michal.simek@amd.com> Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://patch.msgid.link/e6deb9086afab9d2bdd53db8ecbc7db93af5204d.1764169598.git.michal.simek@amd.com Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org>
2026-02-26iommu: Validate device tree node in dev_iommu_enablePeng Fan
Similar to pinctrl_select_state(), add dev_has_ofnode() check before doing the real work. Device(scmi_base.0) does not have a real device node, ofnode_null() is assigned as the device tree node for scmi base protocol device: 'commit 7eb4eb541c14 ("firmware: scmi: install base protocol to SCMI agent")' However with recent update in 'commit 0535e46d55d7 ("scripts/dtc: Update to upstream version v1.7.2-35-g52f07dcca47c")', SPL panic in fdt_check_node_offset_()->fdt_next_tag(), because offset is -1 and SPL_OF_LIBFDT_ASSUME_MASK is 0xFF. So need to validate device tree node. Reported-by: Ye Li <ye.li@nxp.com> Closes: https://lore.kernel.org/u-boot/939a9696-27fa-45a1-b428-feffe21ac6d5@oss.nxp.com/ Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-02-26power: domain: Validate device tree node in dev_power_domain_ctrlPeng Fan
Similar to pinctrl_select_state(), add dev_has_ofnode() check before doing the real work. Device(scmi_base.0) does not have a real device node, ofnode_null() is assigned as the device tree node for scmi base protocol device: 'commit 7eb4eb541c14 ("firmware: scmi: install base protocol to SCMI agent")' However with recent update in 'commit 0535e46d55d7 ("scripts/dtc: Update to upstream version v1.7.2-35-g52f07dcca47c")', SPL panic in fdt_check_node_offset_()->fdt_next_tag(), because offset is -1 and SPL_OF_LIBFDT_ASSUME_MASK is 0xFF. So need to validate device tree node. Reported-by: Ye Li <ye.li@nxp.com> Closes: https://lore.kernel.org/u-boot/939a9696-27fa-45a1-b428-feffe21ac6d5@oss.nxp.com/ Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-02-26firmware: scmi: Validate device tree node before setup channelPeng Fan
SCMI base protocol device does not have a device tree, it should use and need to use the agent base channel. For scmi_base.[x], there is no real device tree node for it. ofnode_null() is assigned as the device tree node for scmi base protocol device: commit 7eb4eb541c14 ("firmware: scmi: install base protocol to SCMI agent") However with recent update in commit 0535e46d55d7 ("scripts/dtc: Update to upstream version v1.7.2-35-g52f07dcca47c"), SPL panic in fdt_check_node_offset_()->fdt_next_tag(), because offset is -1 and SPL_OF_LIBFDT_ASSUME_MASK is 0xFF. So add a check in x_get_channel() to validate the protocol devices' ofnode. Reported-by: Ye Li <ye.li@nxp.com> Closes: https://lore.kernel.org/u-boot/939a9696-27fa-45a1-b428-feffe21ac6d5@oss.nxp.com/ Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-02-25Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-samsungTom Rini
- Assorted platform and video driver updates
2026-02-25phy: samsung: add support for exynos7870 USB PHYKaustabh Chakraborty
The USB PHY used by the Exynos7870 SoC has a single USB 2.0 interface. Add its dedicated variant enum, compatible, and init/exit functions. The PHY enable bit of Exynos7870's PHY is different in contrast to that of Exynos850 and most Exynos PHYs. To allow this change, a simple if condition is added in exynos_usbdrd_phy_isol() which changes the bitmask. Since the variant enum is required, the function argument is changed to accept the driver data itself. Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2026-02-25phy: samsung: add enum for variants based on SoCsKaustabh Chakraborty
The variant enum is used to uniquely identify which SoC the PHY block belongs to. It is initially set in the match table, along with the compatible string, it gets copied to driver data struct during probe. SoC specific functions must only be called if the respective variant enum is set. Add switch-case blocks wherever required. Reviewed-by: Mattijs Korpershoek <mkorpershoek@kernel.org> Signed-off-by: Kaustabh Chakraborty <kauschluss@disroot.org> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
2026-02-24reset: stm32mp21: add stm32mp21 reset driverPatrice Chotard
Implement STM32MP21 reset drivers using stm32-core-reset API. Signed-off-by: Gabriel Fernandez <gabriel.fernandez@foss.st.com> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2026-02-24clk: stm32mp21: Add clock driver supportPatrice Chotard
Add clock driver support for STM32MP21 SoCs. Signed-off-by: Nicolas Le Bayon <nicolas.le.bayon@st.com> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2026-02-24pinctrl: pinctrl_stm32: prevent the use of the secure protected pinsFabien Dessenne
The hardware denies any access from the U-Boot non-secure world to the secure-protected pins. Hence, prevent any driver to configure such a pin. Identify the secure pins with "NO ACCESS" through the 'pinmux status -a' command. Use a driver data structure to identify which hardware versions support this feature. Signed-off-by: Fabien Dessenne <fabien.dessenne@foss.st.com> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2026-02-24gpio: stm32-gpio: prevent the use of the secure protected pinsFabien Dessenne
The hardware denies any access from the U-Boot non-secure world to the secure-protected pins. Hence, prevent any driver to request such a pin. Signed-off-by: Fabien Dessenne <fabien.dessenne@foss.st.com> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
2026-02-16usb: cdns3: use VBUS Valid to determine role for dr_mode OTGSiddharth Vadapalli
The cdns3_bind() function is responsible for identifying the appropriate driver to bind to the USB Controller's device-tree node. If the device-tree node has the 'dr_mode' property set to 'otg', the existing approach fails to bind a driver, leading to loss of functionality. To address this, use the VBUS Valid field of the OTG Status register to determine the role as follows: - If VBUS Valid field is set, it indicates that a USB Host is supplying power and the Controller should assume the Peripheral role. - If VBUS Valid field is clear, it indicates the absence of a USB Host and the Controller should assume the Host role. Additionally, when 'dr_mode' happens to be 'otg' and the STRAP settings are not specified, use VBUS Valid to determine the role in cdns3_drd_init() and assign it to cdns->dr_mode. Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com> Reviewed-by: Marek Vasut <marek.vasut@mailbox.org>
2026-02-12Merge tag 'xilinx-for-v2026.04-rc3' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-microblaze AMD/Xilinx/FPGA changes for v2026.04-rc3 clk: - zynqmp clk fixes phy: - sync vsc8541 config versal2: - fix GIC configuration
2026-02-11Merge tag 'u-boot-dfu-20260211' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-dfu u-boot-dfu-20260211 USB Gadget: * dwc3: Support ip and version type * dwc3: Increase controller halt timeout * dwc3: Don't send unintended link state change * dwc3: Improve reset sequence * dwc2: Move dr_mode check to bind to support RK3288/RK3506 with 2 DWC2 controllers
2026-02-11net: phy: mscc: Enable RMII clock output for VSC8541 PHYPranav Tilak
Set RMII reference clock output to enabled (1) by default for VSC8541 PHY in RMII mode. The RMII specification requires a 50MHz reference clock, and many board designs expect the PHY to provide this clock to the MAC controller. Previously, the driver defaulted rmii_clk_out to 0 (disabled) for all interface modes, which caused the PHY to not output the required 50MHz clock. This resulted in MAC-PHY communication failures and prevented network operations like DHCP from working on RMII-configured boards. This change alligns with the hardware power-up default behavior and aligns with both the generic PHY driver and Linux MSCC PHY driver implementations. Signed-off-by: Pranav Tilak <pranav.vinaytilak@amd.com> Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/20260129081054.1703479-1-pranav.vinaytilak@amd.com
2026-02-10drivers/clk/clk_zynqmp.c: get rid of compiler warning for !CONFIG_CMD_CLK buildsPeter Korsgaard
When built without CONFIG_CMD_CLK, we get a warning about the unused clk_names variable: ../drivers/clk/clk_zynqmp.c:153:27: warning: ‘clk_names’ defined but not used [-Wunused-const-variable=] 153 | static const char * const clk_names[clk_max] = { So also guard it with CONFIG_CMD_CLK to get rid of that. Signed-off-by: Peter Korsgaard <peter@korsgaard.com> Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de> Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/20260119095437.2775081-2-peter@korsgaard.com
2026-02-10drivers/clk/Kconfig: fix "related" typo in help textPeter Korsgaard
It looks like the original zynqmp typo was copied to versal as well. Fix both. Signed-off-by: Peter Korsgaard <peter@korsgaard.com> Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de> Signed-off-by: Michal Simek <michal.simek@amd.com> Link: https://lore.kernel.org/r/20260119095437.2775081-1-peter@korsgaard.com
2026-02-09Merge tag 'net-20260209' of https://source.denx.de/u-boot/custodians/u-boot-netTom Rini
Pull request net-20260209. net: - airoha: mdio support for the switch - phy: mscc: allow RGMII with internal delay for the VSC8541 - dwc_eth_qos: Update tail pointer handling net-legacy: - Stop conflating return value with file size in net_loop() net-lwip: - wget: rework the '#' printing - tftp: add support of tsize option to client
2026-02-08Merge tag 'u-boot-at91-2026.04-a' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-at91 First set of u-boot-at91 features for the 2026.04 cycle: This small fixes set includes fixing 64 bit builds and some warnings for the at91 serial driver, and some cleanup on the nand driver.
2026-02-06remoteproc: imx: Add i.MX95 supportPeng Fan
i.MX95 uses System Manager(sm) API to start/stop logical machine or cpu. There are two modes: M7 in a dedicated logical machine, use LMM API M7 and A55 in same logical machine, use CPU API Extend the driver to using LMM and CPU protocol to manage the M7 core: - Detect using LMM or CPU API in probe using API scmi_imx_lmm_info(). - Compare linux LM ID(got using scmi_imx_lmm_info) and M7 LM ID(the ID is fixed as 1 in SM firmware if M7 is in a separate LM), if Linux LM ID is not same as M7 LM ID(linux and M7 in same LM), use LMM protocol to start/stop. Whether using CPU or LMM protocol to start/stop, the M7 status detection could use CPU protocol to detect started or not. So in imx_rproc_is_running, use scmi_imx_cpu_started to check the status of M7. - For above case (2), Use scmi_imx_lmm_power_boot to detect whether the M7 LM is under control of A55 LM. - For above case , after using SCMI_IMX_LMM_POWER_ON to check permission, scmi_imx_lmm_shutdown API should be called to shutdown the M7 LM. - Add a new ops imx_rproc_ops_sm. Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-02-06remoteproc: imx: Support ECC initializationPeng Fan
Add a new flag ATT_ECC which indicates the memory region needs ECC initialization. If the flag is set, clearing the whole memory region to initialize ECC. If ECC is not initialized, remote core will crash if directly access the area. Signed-off-by: Peng Fan <peng.fan@nxp.com>
2026-02-06net: fec_mxc: Add support for i.MX91Primoz Fiser
The i.MX91 SoC reuses the ENET FEC from i.MX93. Add all required driver checks to make it work also on the i.MX91 based platforms. Signed-off-by: Primoz Fiser <primoz.fiser@norik.com>
2026-02-06net: phy: mscc: allow RGMII with internal delay for the VSC8541Charles Perry
Add the missing RGMII modes with internal delay for the VSC8541. Fixes: a5fd13ad1913 ("net: phy: MSCC Add Support for VSC8530-VSC8531-VSC8540-VSC8541") Signed-off-by: Charles Perry <charles.perry@microchip.com>
2026-02-06net: mdio-mt7531-mmio: fix switch regs initializationMikhail Kshevetskiy
mdio is a child node of the switch, so to get switch base address we need to lookup for a parent node Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
2026-02-06net: airoha_eth: use proper switch node for en7523 caseMikhail Kshevetskiy
Commit d2145a89bcf6 ("net: airoha: bind MDIO controller on Ethernet load") uses "airoha,en7581-switch" dts node for finding MDIO childs. This is wrong for EN7523 SoC. The correct node name should be used instead. Fixes: d2145a89bcf6 ("net: airoha: bind MDIO controller on Ethernet load") Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
2026-02-06net: airoha_eth: fix mdio binding to switch deviceMikhail Kshevetskiy
Commit d2145a89bcf6 ("net: airoha: bind MDIO controller on Ethernet load") refers to non-present CONFIG_MDIO_MT7531 and non-present "mt7531-mdio" driver. It should use CONFIG_MDIO_MT7531_MMIO and "mt7531-mdio-mmio" instead. Fixes: d2145a89bcf6 ("net: airoha: bind MDIO controller on Ethernet load") Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
2026-02-06net: dwc_eth_qos: Define more of the unused MAC regsJonas Karlman
Multicast and Broadcast Queue Enable and Promiscuous Mode Enable bits are currently written to "unused" registers using magic values. Define more of the "unused" MAC regs based on information in the DesignWare Cores Ethernet Quality-of-Service databook. Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
2026-02-06net: dwc_eth_qos: Start DMA and MAC after tail pointers are initializedJonas Karlman
The DesignWare Cores Ethernet Quality-of-Service databook state that receive and transmit descriptor list address and also transmit and receive tail pointer registers should be initialized before the receive and transmit DMAs are started. It also state to enable the MAC receiver only after the DMA is active. Otherwise, received frames can fill the Rx FIFO and overflow. Move the activation of receive and transmit DMA and MAC receiver until after tail pointer registers have been initialized. Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
2026-02-06net: dwc_eth_qos: Initialize the transmit tail pointer in eqos_start()Jonas Karlman
The DesignWare Cores Ethernet Quality-of-Service databook state that descriptors up to one location less than the one indicated by the descriptor tail pointer are owned by the DMA. The DMA continues to process the descriptors until the following condition occurs: Current Descriptor Pointer == Descriptor Tail Pointer The DMA goes into suspend mode when this condition occurs, and updating the tail pointer resume the DMA processing. Configure the transmit tail pointer to the first (current) descriptor pointer so that the tail pointer is a valid address instead of being initialized to NULL when transmit DMA is started. Also update the receive tail pointer comment to state that by pointing to the last descriptor we are actually implying that all receive descriptors are owned by and can be processed by the DMA. Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
2026-02-06net: dwc_eth_qos: Use lower_32_bits() for tail pointersJonas Karlman
The DesignWare Cores Ethernet Quality-of-Service databook state that the descriptor address from the start to the end of the ring must not cross the 4GB boundary. Use lower_32_bits() to write the lower 32 bits of descriptor addresses, including the 32-bit tail pointers, consistently. No functional change is intended. Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
2026-02-04video: menu "TrueType Fonts" depends on TrueType enabledHeinrich Schuchardt
The Kconfig menu "TrueType Fonts" should only be shown if TrueType is enabled. Put all TrueType dependent customization within one if statement. Remove `depends TRUETYPE` clauses. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Tom Rini <trini@konsulko.com> Reviewed-by: Simon Glass <simon.glass@canonical.com>
2026-02-04Merge patch series "arm: k3: j722s: add PCIe support"Tom Rini
George McCollister <george.mccollister@konsulko.com> says: This patch series brings over several changes from Linux that are required to get PCIe working on the j722s and also enables PCIe in j722s_evm_a53_defconfig. This allows Linux to be booted from an NVMe drive. The J722S SoC provides pcie0 (using pcie_cdns_ti) thru serdes1 (using phy-cadence-torrent) thru serdes_wiz1 (using phy-j721e-wiz). Changes to the three drivers needed to be ported from Linux to enable the REFCLK output which is used with this SoC. These changes should be tested on other platforms using these drivers by those with the hardware available to make sure no problems were introduced. The PCIe controller in this SoC relies on the code performing the PCI scan not scanning devices which cannot exist. In Linux this is implemented as only_one_child() in probe.c. If this mechanism is not used, PCI config reads for subsequent functions will return information for device 0 resulting in U-Boot detecting 32 devices when only 1 is present. This change should be tested on other platforms with PCI to ensure the same PCI devices are enumerated before and after the patch is applied. I would like to thank Opto 22 for sponsoring the initial development and anyone that is able to contribute to testing of patches. Link: https://lore.kernel.org/r/20260130153856.2049575-1-george.mccollister@konsulko.com
2026-02-04pci: pcie_cdns_ti: Add PCIe support for J722S SoCGeorge McCollister
TI's J722S SoC has one instance of PCIe namely PCIe0 which is a Gen3 single lane PCIe controller. Add support for the "ti,j722s-pcie-host" compatible specific to J722S SoC. Based on: https://lore.kernel.org/all/20240524092349.158443-1-s-vadapalli@ti.com/ Signed-off-by: George McCollister <george.mccollister@konsulko.com> Tested-by: Bryan Brattlof <bb@ti.com>
2026-02-04pci: pcie_cdns_ti: Add support to provide refclk to PCIe connectorGeorge McCollister
Add support to provide refclk to PCIe connector. Based on: https://lore.kernel.org/r/20210308063550.6227-5-kishon@ti.com Signed-off-by: George McCollister <george.mccollister@konsulko.com> Tested-by: Bryan Brattlof <bb@ti.com>
2026-02-04phy: cadence-torrent: Add support to drive refclk outGeorge McCollister
cmn_refclk_<p/m> lines in Torrent SERDES are used for connecting an external reference clock. cmn_refclk_<p/m> can also be configured to output the reference clock. Model this derived reference clock as a "clock" so that platforms like AM642 EVM can enable it. This is used by PCIe to use the same refclk both in local SERDES and remote device. Add support here to drive refclk out. Based on: https://lore.kernel.org/all/20210310120840.16447-7-kishon@ti.com/ Signed-off-by: George McCollister <george.mccollister@konsulko.com> Tested-by: Bryan Brattlof <bb@ti.com>
2026-02-04phy: ti: j721e-wiz: Enable reference clock output in cmn_refclk_<p/m>George McCollister
cmn_refclk_<p/m> lines in Torrent SERDES are used for an connecting external reference clock. cmn_refclk_<p/m> can also be configured to output the reference clock. In order to drive the refclk out from the SERDES (Cadence Torrent), PHY_EN_REFCLK should be set in SERDES_RST of WIZ. Model PHY_EN_REFCLK as a clock, so that platforms like AM642 EVM can enable it. Based on: https://lore.kernel.org/r/20210310120840.16447-6-kishon@ti.com Signed-off-by: George McCollister <george.mccollister@konsulko.com> Tested-by: Bryan Brattlof <bb@ti.com>
2026-02-04pci: skip unnecessary PCIe scanningGeorge McCollister
Use the same mechanism as the Linux kernel to skip unnecessary (and in the case of the J722S, errant) scanning of direct children of root ports, downstream ports or bridges. Based on Linux PCI code in the following files as of b927546677c8: drivers/pci/probe.c drivers/pci/pci.h include/linux/pci.h Signed-off-by: George McCollister <george.mccollister@konsulko.com> Tested-by: Bryan Brattlof <bb@ti.com>
2026-02-04Merge patch series "part: fix partition searching"Tom Rini
Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu> says: It was noted that a GPT partition with the maximum available partition number (ex: /dev/mmcblk128) can't be read/write from U-Boot using read/write commands. Futher investigation shows that the problem is deeper. This set of patches fixes uncovered issues. Link: https://lore.kernel.org/r/20260119223305.3022690-1-mikhail.kshevetskiy@iopsys.eu
2026-02-04mtd: mtdpart: fix partitions searchingMikhail Kshevetskiy
mtdpart internally enumerate partitions starting from zero, but partition driver API enumerate partitions starting from 1, so wrong partition will be queried. This is wrong. Unnecessary debug message also was removed. Fixes: c29a6daec184 ("disk: support MTD partitions") Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>