summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2026-05-12mmc: sdhci-cadence: trigger tuning for SD HS mode on SD6HC (v6) PHYTze Yee Ng
The Cadence SD6HC (SDHCI spec v4.20+) controller uses a soft PHY whose DLL delay characteristics vary with PVT (Process, Voltage, Temperature) and board-level trace routing. A static delay value programmed via device tree for SD High Speed mode is insufficient because the optimal sampling point varies per board, SD card, and operating conditions. Runtime calibration is required. While the SD Physical Layer Specification does not mandate tuning for SD HS mode (only for UHS-I SDR50/SDR104), the Cadence SD6HC PHY requires runtime calibration of its receive data delay line to find a valid sampling window under constrained clock conditions. The tuning is triggered from the set_ios_post callback because at that moment hardware has committed the new bus width, clock frequency, and speed mode to the controller registers. This ensuring the tuning sequence runs at the correct SD HS operating conditions. The tuning is gated by a device tree property "cdns,sd-hs-tuning" so that only boards requiring runtime calibration opt in. When enabled, the driver performs a 40-tap DLL sweep using CMD19 to find the largest consecutive passing window, then programs the midpoint into PHY_DLL_SLAVE_CTRL_REG. To enable on a board, add to the MMC node in device tree: &mmc { cdns,sd-hs-tuning; }; Signed-off-by: Tze Yee Ng <[email protected]>
2026-05-12reset: stm32: Fix compilation errorPatrice Chotard
The following compilation error occurs when environment variable KBUILD_OUTPUT is not set : drivers/reset/stm32/stm32-reset-mp21.c:8:10: fatal error: stm32-reset-core.h: No such file or directory 8 | #include <stm32-reset-core.h> | ^~~~~~~~~~~~~~~~~~~~ As stm32-reset-core.h is located in same directory than stm32-reset-mp21.c, we should use #include "stm32-reset-core.h". Signed-off-by: Patrice Chotard <[email protected]> Reviewed-by: Raphaël Gallais-Pou <[email protected]>
2026-05-09Merge branch 'master' of git://source.denx.de/u-boot-usbTom Rini
- DWC3 crash fix, Kconfig logic corrections
2026-05-09usb: dwc3: Fix crash on fastboot exit due to incorrect memory freeBalaji Selvanathan
The dwc3_free_one_event_buffer() function incorrectly called free() on event buffer structures allocated with devm_kzalloc(). This caused heap corruption and a synchronous abort when exiting fastboot mode via "fastboot continue". Device-managed memory is automatically freed when the device is removed, so manual deallocation causes the heap allocator to access corrupted metadata. Fixes: 884b10e86a05 ("usb: dwc3: core: fix memory leaks in event buffer cleanup") Signed-off-by: Balaji Selvanathan <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2026-05-09usb: Correct dependencies around USB_EMULTom Rini
The symbol USB_EMUL is how sandbox has access to USB. It's implementation however enforces a few other requirements. It must have SCSI enabled, and in turn that means it must have BLK enabled. Finally, we should not be using SANDBOX itself as a symbol to decide what to build or not build here, as SANDBOX is selected for COMPILE_TEST builds as well and so may not have enabled the sandbox specific USB support. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2026-05-09reset: Correct dependencies for RESET_RZG2L_USBPHY_CTRLTom Rini
As exposed by "make randconfig", we have an issue with the dependencies for RESET_RZG2L_USBPHY_CTRL. As this functionally depends on REGULATOR_RZG2L_USBPHY, express this dependency directly in Kconfig as well. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2026-05-09usb: gadget: Correct dependencies for USB_RENESAS_USBHSTom Rini
The USB_RENESAS_USBHS functionality can only work with DM_USB_GADGET enabled, so express this dependency in Kconfig. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2026-05-08virtio: fix boot device hunting in qemu with virtioLudwig Nussel
Commit 70101c3217ae ("virtio: mmio: Return error codes on probe failures") returns -ENODEV where it would return 0 before. That path is apparently hit in qemu and breaks boot device discovery (virtio_bootdev_hunt() expects only ENOENT). So return -ENOENT in that path instead. The remaining two error returns in the function are untouched as I don't know where they play a role. Signed-off-by: Ludwig Nussel <[email protected]> Reviewed-by: Simon Glass <[email protected]> Acked-by: Kuan-Wei Chiu <[email protected]>
2026-05-06Merge tag 'mmc-for-2026.07-rc2' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-mmc - Enable FPWM bits for tps65941 - Use max-frequency to get clock rate for msm_sdhci - Fix and update for pfuze100
2026-05-06net: phy: mscc: add support for the VSC8572Charles Perry
This is similar to the VSC8574 according to the Linux commit that adds support for it [1]. This was tested on an HX1000 board with SGMII (PIC64-HX SoC which has a GEM MAC). [1]: https://lore.kernel.org/all/dfabe39a52efcd2cfff9358f271b8673143503b8.1480497966.git.neill.whillans@codethink.co.uk/ Signed-off-by: Charles Perry <[email protected]> Reviewed-by: Manikandan Muralidharan <[email protected]>
2026-05-06net: macb: add gigabit implementation for fixed-linkChristian DREHER
A fixed gigabit link on a non-gigabit controller is only rejected during PHY init (even though there is no PHY to init), because, on device-tree parsing, the controller is not probed, and it is still unknown whether it is gigabit-capable. This code was only tested on emulator with a full-duplex RGMII interface, but is expected to work in GMII or half-duplex as well. Signed-off-by: Christian DREHER <[email protected]>
2026-05-06net: macb: do not set user_io when it does not existChristian DREHER
Cadence Ethernet MAC has a feature named user_io, which provides some input and some output signals for arbitrary purpose in the SoC. From the driver code, I understand that, on Atmel SoC, it is used to drive the PHY mode. At least on Cadence IP7014 r1p12, this feature is optional, and I am working on a SoC that does not instantiate it. The presence of this feature is advertised in DCFG1, this patch merely disables the access to the user_io register based on this information. I did not apply this change to the non-gigabit capable versions of the IP, as I do not have documentation for them, and a new non-gigabit instance is unlikely to appear. I prefer avoiding regressions on old systems. Signed-off-by: Christian DREHER <[email protected]>
2026-05-06net: macb: use SA1 for MAC filtering on GEMChristian DREHER
The MACB uses specific address registers (SA Top and Bottom) to filter source or destination MAC addresses. On the Gigabit Ethernet version, SA1B is @0x88. On the non-GEM version, SA1B is @0x98. Before this commit, the code was always writing 0x98. By chance, on GEM, this is the address of SA3B, allowing the driver to work anyway. The motivation for this change is to be able to use the driver on an instance of the GEM with less than 4 SA registers. Signed-off-by: Christian DREHER <[email protected]>
2026-05-06net: macb: include arch/clk.h only when necessaryChristian DREHER
It does not exist in my setup (an on-going arm64 SoC), and removing it does not cause any missing declaration, but some code called when CONFIG_CLK is missing calls get_macb_pclk_rate, which is only defined in arch/arm/mach-at91/include/mach/clk.h Signed-off-by: Christian DREHER <[email protected]>
2026-05-06net: phy: adin: add support for the ADIN1200 phyRasmus Villemoes
The ADIN1200 chip is register compatible with the ADIN1300, but only supports 10/100 Mbit. Signed-off-by: Rasmus Villemoes <[email protected]>
2026-05-06net: phy: airoha: air_en8811: use standard rx-polarity/tx-polarity propertiesLucien.Jheng
Replace the proprietary airoha,pnswap-rx / airoha,pnswap-tx boolean device tree properties with the standard rx-polarity and tx-polarity properties defined in phy-common-props.yaml. Backward compatibility is maintained by reading the legacy boolean properties first and passing them as the default_pol argument to phy_get_rx/tx_polarity(). If the standard properties are absent the legacy values are used transparently, so existing device trees remain functional without modification. Link: https://git.kernel.org/linus/66d8a334b57e64e43810623b3d88f0ce9745270b Signed-off-by: Lucien.Jheng <[email protected]>
2026-05-06phy: add common PHY properties supportLucien.Jheng
Add a new PHY_COMMON_PROPS library that provides helper functions for PHY drivers to read standardized polarity properties from the device tree node: - phy_get_rx_polarity() / phy_get_tx_polarity() - phy_get_manual_rx_polarity() / phy_get_manual_tx_polarity() The dt-bindings/phy/phy.h header with PHY_POL_NORMAL, PHY_POL_INVERT, and PHY_POL_AUTO constants is provided via dts/upstream/include, which is already in the build include path. Ported from Merge tag 'phy-for-7.0': git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy Link: https://git.kernel.org/linus/e7556b59ba65179612bce3fa56bb53d1b4fb20db Signed-off-by: Lucien.Jheng <[email protected]>
2026-05-06net: cpsw: Support new cpsw-switch DT bindingsMarkus Schneider-Pargmann (TI)
Upstream devicetrees use a newer DT binding using cpsw-switch compatibles. The bindings are a bit different, so two functions are introduced to capture the differences, cpsw_eth_of_to_plat_switch() and cpsw_eth_of_to_plat_legacy(). Signed-off-by: Markus Schneider-Pargmann (TI) <[email protected]>
2026-05-06net: cpsw: Use driver data for phy_selMarkus Schneider-Pargmann (TI)
Use driver data to pass the correct gmii_sel function. This way new compatibles don't need manual compatible matching as is done in cpsw_phy_sel(). Signed-off-by: Markus Schneider-Pargmann (TI) <[email protected]>
2026-05-06net: cpsw: Remove compat string argumentMarkus Schneider-Pargmann (TI)
The string is already in the priv struct, remove it from the argument list. Signed-off-by: Markus Schneider-Pargmann (TI) <[email protected]>
2026-05-06net: cpsw: Fix error messageMarkus Schneider-Pargmann (TI)
It should complain about mac_control here. Signed-off-by: Markus Schneider-Pargmann (TI) <[email protected]>
2026-05-06net: phy: dp83867: default to 2ns delay if unspecified in device-treeSiddharth Vadapalli
Since Linux commit c360eb0c3ccb ("dt-bindings: net: ethernet-controller: Add informative text about RGMII delays"), the interpretation of RGMII delays has changed. Prior to the commit, the RGMII Variant among "rgmii", "rgmii-id", "rgmii-rxid" and "rgmii-txid" clearly specified whether it is the MAC or the PHY that "should" add the delay. However, post that commit, the RGMII Variant only specifies whether or not there is a delay on the PCB traces between the MAC and the PHY, leaving it open as to who adds the delay. Hence, instead of enforcing the existence of the device-tree properties "ti,rx-internal-delay" and "ti,tx-internal-delay", default to a delay of 2ns, while continuing to override this delay with the aforementioned properties, if they exist in the device-tree. This is in line with the Linux driver implementation updated by commit 6bf78849371d ("net: phy: dp83867: use 2ns delay if not specified in DTB"). Signed-off-by: Siddharth Vadapalli <[email protected]> Reviewed-by: Anshul Dalal <[email protected]>
2026-05-06mmc: msm_sdhci: Use max-frequency to get clock rateVaradarajan Narayanan
msm_sdc_clk_init() uses clock-frequency to get the clock rate for SDC clocks. However, the DT files seem to use max-frequency for the same. Since msm_sdc_clk_init() doesn't find clock-frequency in the DT, it sets 201500000 as the clock rate and this results in timeout errors on IPQ platforms. Additionally, clock-frequency is not DT bindings compliant. Hence, get clock rate using DT bindings compliant max-frequency. Signed-off-by: Varadarajan Narayanan <[email protected]> Reviewed-by: Sumit Garg <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-05-06power: regulator: Correct Kconfig for PFUZE100Peng Fan
Use CONFIG_$(PHASE_)DM_REGULATOR_PFUZE100 as the build condition for pfuze100 regulator driver. Add Kconfig option for SPL_DM_REGULATOR_PFUZE100. To avoid break current platforms, set the Kconfig default value same as PMIC_PFUZE100. Signed-off-by: Peng Fan <[email protected]>
2026-05-06power: regulator: pfuze100: support non-independent modePeng Fan
Some BUCKs could work in single/dual phase mode, not in independent mode. In single/dual phase mode, registers of both regulators, must be identically set. So configure mode and value for both BUCKs. CONF registers are not touched, leave them as default OTP settings. PFUZE100/200 SW3A/B, could work in single/dual phase mode, so introduce a new macro by adding a pointer to the SW3B descriptor. Signed-off-by: Peng Fan <[email protected]>
2026-05-06power: regulator: pfuze100: support high output voltage modePeng Fan
Some PFUZE regulators can operate in either low or high output voltage mode, with different minimum voltages and voltage step sizes selected by a hardware control bit. However, the current PFUZE100 regulator driver assumes low output voltage mode only, resulting in incorrect voltage calculation and programming when high voltage mode is enabled. Extend the regulator descriptor to describe high output voltage mode by adding a mask to detect the mode and a dedicated voltage description (min_uV and step size). Update voltage get/set handling to dynamically select the correct voltage parameters based on the high voltage mode bit. Signed-off-by: Peng Fan <[email protected]>
2026-05-06power: regulator: pfuze100: Fix min_uV usagePeng Fan
regulator-min-microvolt in device tree is not always match the minimal voltage in the pmic datasheet, direclty using the min value from device tree as base may cause wrong voltage settings being written. Directly use the min_uV from datasheet to avoid wrong settings. Signed-off-by: Peng Fan <[email protected]>
2026-05-06power: regulator: tps65941: Enable FPWM bitsNeha Malcom Francis
Depending on the phase selection (single or multi), the FPWM bits configured forces the regulator to operate in PWM mode. In case of multi-phase selection, the FPWM_MP bits enforce the regulator to also operate in multi-phase. This fixes correct multi-phase operation. While at this, correct incorrect macro alignment as well. Fixes: 065a452ae6a1 ("power: regulator: tps65941: add regulator support") Link: https://www.ti.com/lit/ds/symlink/tps6594-q1.pdf Signed-off-by: Keerthy <[email protected]> Signed-off-by: Takuma Fujiwara <[email protected]> Signed-off-by: Neha Malcom Francis <[email protected]> Reviewed-by: Udit Kumar <[email protected]> Signed-off-by: Peng Fan <[email protected]>
2026-05-05watchdog: Add Renesas R-Car Gen5 window watchdog driverMarek Vasut
Add support of Renesas R-Car Gen5 window watchdog timer. Timeout configuration is derived from CONFIG_WATCHDOG_TIMEOUT_MSECS, which is more accurate than the 1-second granularity 'timeout' passed to .start callback. Reviewed-by: Stefan Roese <[email protected]> Signed-off-by: Marek Vasut <[email protected]>
2026-05-05remoteproc: renesas: Add Renesas R-Car Gen5 remote processor driverMarek Vasut
Add R-Car Gen5 RSIP controller remoteproc driver capable of starting the SCP, Cortex-R52 and Cortex-A720 cores in Renesas R-Car R8A78000 X5H SoC. The SCP core is started by releasing the core from reset, the Cortex-R52 and Cortex-A720 are started using the SCP SCMI call. The entry point for SCP core is fixed to its STCM, entry points for Cortex-R52 and Cortex-A720 are set during rproc load. Signed-off-by: Marek Vasut <[email protected]>
2026-05-04mmc: Kconfig: allows m68k to use esdhc imx driverAngelo Dureghello
Allow cpu families as mcf5441x (m68k) to use the fsl_esdhc_imx driver since the hardware ip module is the same. Signed-off-by: Angelo Dureghello <[email protected]> --- Changes in v2: - moved before menuconfig changes
2026-05-01Merge branch 'master' of https://source.denx.de/u-boot/custodians/u-boot-sunxiTom Rini
Apologies for the delay, but please pull those sunxi changes into v2026.07. Nothing earth shattering, mostly minor improvements like better SPL power LED support, and fixes to some H616 DRAM setup. Also some more forward looking enhancement for the SPI code. I also pulled in Richard's raw NAND flash improvements for the H6/H616 SoC, though this lacks proper peer testing due to the lack of mainline support for any board actually employing those chips.
2026-05-01mtd: nand: raw: sunxi_spl: remove user data length resetRichard Genoud
No need to reset user data length registers in SPL. In SPL, only the first user data length register is used, so we don't need to reset all of them. Signed-off-by: Richard Genoud <[email protected]> Acked-by: Andre Przywara <[email protected]>
2026-05-01mtd: rawnand: sunxi: introduce variable user data lengthRichard Genoud
In Allwinner SoCs, user data can be added in OOB before each ECC data. For older SoCs like A10, the user data size was the size of a register (4 bytes) and was mandatory before each ECC step. So, the A10 OOB Layout is: [4Bytes USER_DATA_STEP0] [ECC_STEP0 bytes] [4bytes USER_DATA_STEP1] [ECC_STEP1 bytes] ... NB: the BBM is stored at the beginning of the USER_DATA_STEP0. Now, for H6/H616 NAND flash controller, this user data can have a different size for each step. So, we are maximizing the user data length to use as many OOB bytes as possible. Fixes: 7d1de9801151 ("mtd: rawnand: sunxi_spl: add support for H6/H616 nand controller") Fixes: f163da5e6d26 ("mtd: rawnand: sunxi: add support for H6/H616 nand controller") Signed-off-by: Richard Genoud <[email protected]>
2026-05-01mtd: rawnand: sunxi: clean sunxi_nand_chip_init()Richard Genoud
In sunxi_nand_chip_init there's quite a lot of kfree/return, it's easy to forget a kfree(), so use a goto/kfree instead. Signed-off-by: Richard Genoud <[email protected]> [Andre: rename goto label, keep return 0;] Reviewed-by: Andre Przywara <[email protected]> Signed-off-by: Andre Przywara <[email protected]>
2026-05-01mtd: rawnand: sunxi: make the code mode self-explanatoryRichard Genoud
In sunxi_nfc_hw_ecc_{read,write}_chunk(), the ECC step was force to 0, the reason is not trivial to get when reading the code. The explanation is that, from the NAND flash controller perspective, we are indeed at step 0 for user data length and ECC errors. Just add a const value with an explanation to clarify things. Signed-off-by: Richard Genoud <[email protected]> Reviewed-By: Michael Trimarchi <[email protected]> Acked-by: Andre Przywara <[email protected]>
2026-05-01mtd: rawnand: sunxi: Replace hard coded value by a defineRichard Genoud
The user data length (4) used all over the code hard coded. And sometimes, it's not that trivial to know that it's the user data length and not something else. Moreover, for the H6/H616 this value is no more fixed by hardware, but could be modified. Using a define here makes the code more readable. Suggested-by: Miquel Raynal <[email protected]> Reviewed-by: Michael Trimarchi <[email protected]> Signed-off-by: Richard Genoud <[email protected]> Acked-by: Andre Przywara <[email protected]>
2026-04-30spi: sunxi: wait for TX/RX fifo reset doneYixun Lan
Once reset SPI TX or RX fifo, the underlying hardware need to take some time to actually settle down, the two bits will automatically clear to 0, so use a poll mechanism to check status bits to make sure it's done correctly. On Cubie A7A board which using A733 SoC, we encoutered a SPI nor flash timeout issue, it turns out that the SPI fifo reset take a few time to settle down, Add a loop to poll the status. This was the error message shows on A7A board once this issue happened. => sf probe ERROR: sun4i_spi: Timeout transferring data Failed to initialize SPI flash at 0:0 (error -2) Signed-off-by: Yixun Lan <[email protected]> Reviewed-by: Jernej Skrabec <[email protected]> Acked-by: Andre Przywara <[email protected]>
2026-04-30pinctrl: sunxi: add I2C3 mux for D1/T113-s3 (PG10/PG11)Lukas Schmid
Boards based on the Allwinner D1/T113-s3, such as the NetCube Systems Nagami, can expose a third I2C controller on PG10/PG11. However, the sun20i_d1 pinctrl function table lacked an entry for this mux. Add the "i2c3" function with mux value 3 on PG10/PG11, allowing device trees to enable the I2C3 controller. Signed-off-by: Lukas Schmid <[email protected]> Reviewed-by: Andre Przywara <[email protected]>
2026-04-30gpio: 74x164: use dev_read_* APIs for live-tree compatibilityChanhong Jung
With CONFIG_OF_LIVE=y, dev_of_offset(dev) does not return a valid flat-FDT offset, so fdtdec_get_int(gd->fdt_blob, offset, ...) inside gen_74x164_probe() fails to locate the "registers-number" property and always falls back to the default value of 1. This results in a 4-chip 74HC595 daisy chain being exposed as only 8 GPIOs instead of 32, and any consumer referencing offsets >= 8 fails to bind with -ENOENT ("GPIO ... not found" / Error -22). The "registers-default" property is ignored for the same reason, so any configured power-on output pattern is silently discarded. Replace the flat-FDT helpers with dev_read_u32_default() and dev_read_u8_array_ptr(), which correctly walk both live and flat trees. This matches how other DM GPIO drivers (e.g. pca953x_gpio.c) read their per-device properties. With gd->fdt_blob no longer referenced, also drop the now-unused DECLARE_GLOBAL_DATA_PTR and <asm/global_data.h> include. Tested on stm32mp153d-ssonic (CONFIG_OF_LIVE=y) with a 4-chip 74HC595 chain: all 32 GPIOs are now exposed, and 16 consumer LED nodes at offsets 0..31 bind successfully. Fixes: 9300f711baac ("dm: gpio: introduce 74x164 driver") Signed-off-by: Chanhong Jung <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-04-30rtc: ds1307: Remove legacy non-DM codeFrancesco Dolcini
The DS1307 driver depends on DM_RTC since commit d425d6056e01 ("rtc: Add DM support to ds1307"), remove the related obsolete code. Signed-off-by: Francesco Dolcini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-04-30Merge tag 'u-boot-stm32-20260430' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-stm - arm; stm32mp2: Factorize TAMP_FWU_BOOT_IDX_MASK/OFFSET definition - arm: stm32mp: Drop unnecessary BOARD_EARLY_INIT_F usage - board: stm32mp25: support dynamic A/B bank bootup - board: stm32pm1: Fix board_check_usb_power() - clk: stm32: Add STM32MP23 support - video: stm32: dsi: fix unchecked return values - video: support Rocktech RK050HR345-CT106A panel - Remove non-existent STM32_RESET flag
2026-04-30video: support Rocktech RK050HR345-CT106A panelDario Binacchi
Add support for the Rocktech RK050HR345-CT106A RGB panel. This model uses an Ilitek ILI9806E controller over the SPI bus for initialization and register configuration only. The driver is designed to be easily extensible to support other panels with different sequences and timings by providing a specific descriptor structure for each model. Signed-off-by: Dario Binacchi <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2026-04-30spi: stm32: extend support to STM32MP25Dario Binacchi
The SPI IP in this platform is fully compatible with the current driver implementation, requiring only a new compatible string. Signed-off-by: Dario Binacchi <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2026-04-30spi: stm32: add support for bits-per-word settingDario Binacchi
Implement the set_wordlen operation to allow dynamic bus width configuration. This is required for peripherals with non-standard requirements, such as display panels that need 9-bit word transfers during the initialization and setup phase. Signed-off-by: Dario Binacchi <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2026-04-30spi: stm32: add stm32_spi_is_enabled() helperDario Binacchi
Add a helper to check the SPE (SPI Enable) bit and replace the open-coded bitwise check in stm32_spi_stopxfer() with this helper to improve readability and consistency. This is also a preparatory step for future driver updates that require checking the SPI enable state across different code paths. Signed-off-by: Dario Binacchi <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2026-04-30spi: stm32: clean up buffer length assignmentDario Binacchi
Remove redundant divisions by using the already available xferlen variable for setting the rx/tx buffer lengths. Signed-off-by: Dario Binacchi <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2026-04-30test: spi: add sandbox_spi_get_wordlen interfaceDario Binacchi
Add the sandbox_spi_get_wordlen() public interface to retrieve the internal word length state of the sandbox SPI device. This is intended for use in sandbox SPI test cases to verify that the word length is correctly propagated from the SPI uclass to the driver. Signed-off-by: Dario Binacchi <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-04-30spi: sandbox_spi: support wordlen setupDario Binacchi
The driver currently ignores the word length configuration. Implement the set_wordlen operation to store and track the current word length. Signed-off-by: Dario Binacchi <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2026-04-30spi: add support for bits-per-word settingDario Binacchi
Allow dynamic configuration of the SPI word length. This is required for controllers and slaves that need to operate with non-standard word lengths, such as 9-bit wide transfers. Signed-off-by: Dario Binacchi <[email protected]> Reviewed-by: Simon Glass <[email protected]>