summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2022-07-18spi: sunxi: refactor SPI speed/mode programmingAndre Przywara
As George rightfully pointed out [1], the spi-sunxi driver programs the speed and mode settings only when the respective functions are called, but this gets lost over a call to release_bus(). That asserts the reset line, thus forces each SPI register back to its default value. Adding to that, trying to program SPI_CCR and SPI_TCR might be pointless in the first place, when the reset line is still asserted (before claim_bus()), so those setting won't apply most of the time. In reality I see two nested claim_bus() calls for the first use, so settings between the two would work (for instance for the initial "sf probe"). However later on the speed setting is not programmed into the hardware anymore. So far we get away with that default frequency, because that is a rather tame 24 MHz, which most SPI flash chips can handle just fine. Move the actual register programming into a separate function, and use .set_speed and .set_mode just to set the variables in our priv structure. Then we only call this new function in claim_bus(), when we are sure that register accesses actually work and are preserved. [1] https://lore.kernel.org/u-boot/[email protected]/ Signed-off-by: Andre Przywara <[email protected]> Reported-by: George Hilliard <[email protected]>
2022-07-18spi: sunxi: use XCH status to detect in-progress transferIcenowy Zheng
The current detection of RX FIFO depth seems to be not reliable, and XCH will self-clear when a transfer is done. Check XCH bit when polling for transfer finish. Signed-off-by: Icenowy Zheng <[email protected]> Reviewed-by: Andre Przywara <[email protected]> Signed-off-by: Andre Przywara <[email protected]>
2022-07-18net: sun8i-emac: Drop use of arch-specific headerSamuel Holland
This header is not used since commit abdbefba2a4e ("net: sun8i_emac: Use consistent clock bitfield definitions"). Dropping it allows the driver to be architecture-independent. Signed-off-by: Samuel Holland <[email protected]> Reviewed-by: Andre Przywara <[email protected]> Signed-off-by: Andre Przywara <[email protected]>
2022-07-18net: sun8i-emac: Downgrade printf during probe to debugSamuel Holland
This just prints the PHY mode taken from the devicetree. It does not need to be printed during every boot, and also avoids an unwanted line break for the "net: " reporting line. Signed-off-by: Samuel Holland <[email protected]> Reviewed-by: Andre Przywara <[email protected]> Signed-off-by: Andre Przywara <[email protected]>
2022-07-18reset: sunxi: Reuse the platform data from the clock driverSamuel Holland
The clock and reset drivers use the exact same platform data. Simplify them by sharing the object. This is safe because the parent device (the clock device) always gets its driver model callbacks run first. Signed-off-by: Samuel Holland <[email protected]> Acked-by: Andre Przywara <[email protected]> Signed-off-by: Andre Przywara <[email protected]>
2022-07-18reset: sunxi: Convert driver private data to platform dataSamuel Holland
The reason here is the same as the reason for changing the clock driver: platform data can be provided when binding the driver. Signed-off-by: Samuel Holland <[email protected]> Reviewed-by: Andre Przywara <[email protected]> Signed-off-by: Andre Przywara <[email protected]>
2022-07-18clk: sunxi: Convert driver private data to platform dataSamuel Holland
All of the driver private data should really be platform data since it is determined statically (selected by the compatible string or extracted from the devicetree). Move everything to platform data, so it can be provided when binding the driver. This is useful for SPL, or for instantiating the driver as part of an MFD. Signed-off-by: Samuel Holland <[email protected]> Reviewed-by: Andre Przywara <[email protected]> Signed-off-by: Andre Przywara <[email protected]>
2022-07-18clk: sunxi: Use a single driver for all variantsSamuel Holland
Now that all of the variants use the same bind/probe functions and ops, there is no need to have a separate driver for each variant. Since most SoCs contain two variants (the main CCU and PRCM CCU), this saves a bit of firmware size and RAM. Signed-off-by: Samuel Holland <[email protected]> Reviewed-by: Andre Przywara <[email protected]> [Andre: add F1C100s support] Signed-off-by: Andre Przywara <[email protected]>
2022-07-18reset: sunxi: Get the reset count from the CCU descriptorSamuel Holland
This allows all of the clock drivers to use a common bind function. Signed-off-by: Samuel Holland <[email protected]> Reviewed-by: Andre Przywara <[email protected]> [Andre: add F1C100s support] Signed-off-by: Andre Przywara <[email protected]>
2022-07-18clk: sunxi: Prevent out-of-bounds gate array accessSamuel Holland
Because the gate arrays are not given explicit sizes, the arrays are only as large as the highest-numbered gate described in the driver. However, only a subset of the CCU clocks are needed by U-Boot. So there are valid clock specifiers with indexes greater than the size of the arrays. Referencing any of these clocks causes out-of-bounds access. Fix this by checking the identifier against the size of the array. Fixes: 0d47bc705651 ("clk: Add Allwinner A64 CLK driver") Signed-off-by: Samuel Holland <[email protected]> Reviewed-by: Andre Przywara <[email protected]> Signed-off-by: Andre Przywara <[email protected]>
2022-07-18clk: sunxi: Store the array sizes in the CCU descriptorSamuel Holland
The reset array size is currently used for bounds checking in the reset driver. The same bounds check should really be done in the clock driver. Currently, the array size is provided to the reset driver separately from the CCU descriptor, which is a bit strange. Let's do this the usual way, with the array sizes next to the arrays themselves. Signed-off-by: Samuel Holland <[email protected]> Reviewed-by: Andre Przywara <[email protected]> [Andre: add F1C100s support] Signed-off-by: Andre Przywara <[email protected]>
2022-07-15musb: sunxi: Allow host-side USB with external VBUSSamuel Holland
Now that the PHY driver will not try to drive VBUS if it is already driven by an external supply, there is no need to check the VBUS voltage before powering on the PHY. Signed-off-by: Samuel Holland <[email protected]>
2022-07-15usb: dwc3: add a SPL_USB_DWC3_GENERIC option for the dwc3 driverAngus Ainslie
Suppress warnings when building the SPL without USB_DWC3_GENERIC Signed-off-by: Angus Ainslie <[email protected]>
2022-07-14Merge https://source.denx.de/u-boot/custodians/u-boot-usbTom Rini
2022-07-13nand: raw: add support for MediaTek MT7621 SoCWeijie Gao
This patch adds NAND flash controller driver for MediaTek MT7621 SoC. The NAND flash controller of MT7621 supports only SLC NAND flashes. It supports 4~12 bits correction with maximum 4KB page size. Signed-off-by: Weijie Gao <[email protected]>
2022-07-13net: mediatek: add support for MediaTek MT7621 SoCWeijie Gao
This patch adds GMAC support for MediaTek MT7621 SoC. MT7621 has the same GMAC/Switch configuration as MT7623. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Weijie Gao <[email protected]>
2022-07-13net: mediatek: use regmap api to modify ethsys registersWeijie Gao
The address returned by regmap_get_range() is not remapped. Directly r/w to this address is ok for ARM platforms since it's idential to the virtual address. But for MIPS platform only virtual address should be used for access. To solve this issue, the regmap api regmap_read/regmap_write should be used since they will remap address before accessing. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Weijie Gao <[email protected]>
2022-07-13net: mediatek: remap iobase addressWeijie Gao
The iobase address from dts node is actually physical address. It's identical to the virtual address in ARM platform. This is ok because this driver was used only by ARM platforms (mt7622/mt7623 ...). But now this driver will be used by mt7621 which is a MIPS SoC. For MIPS platform the physical address space is mapped to KSEG0 and KSEG1 and this makes the virtual address apparently not idential to its physical address. To solve this issue, this patch replaces dev_read_addr with dev_remap_addr to get the remapped iobase address. Reviewed-by: Ramon Fried <[email protected]> Signed-off-by: Weijie Gao <[email protected]>
2022-07-13mmc: mediatek: add support for MediaTek MT7621 SoCWeijie Gao
This patch adds SDXC support for MediaTek MT7621 SoC Reviewed-by: Jaehoon Chung <[email protected]> Signed-off-by: Weijie Gao <[email protected]>
2022-07-13watchdog: add support for MediaTek MT7621 SoCWeijie Gao
This patch makes mt7621_wdt driver available for MediaTek MT7621 SoC Reviewed-by: Stefan Roese <[email protected]> Signed-off-by: Weijie Gao <[email protected]>
2022-07-13gpio: add support for MediaTek MT7621 SoCWeijie Gao
This patch makes mt7621_gpio driver available for MediaTek MT7621 SoC Reviewed-by: Stefan Roese <[email protected]> Signed-off-by: Weijie Gao <[email protected]>
2022-07-13spi: add support for MediaTek MT7621 SoCWeijie Gao
This patch makes mt7621_spi driver available for MediaTek MT7621 SoC Signed-off-by: Weijie Gao <[email protected]>
2022-07-13phy: mtk-tphy: add support for MediaTek MT7621 SoCWeijie Gao
This patch makes mtk-tphy driver available for MediaTek MT7621 SoC Signed-off-by: Weijie Gao <[email protected]>
2022-07-13usb: xhci-mtk: add support for MediaTek MT7621 SoCWeijie Gao
This patch makes xhci-mtk driver available for MediaTek MT7621 SoC Signed-off-by: Weijie Gao <[email protected]>
2022-07-13pinctrl: mtmips: add support for MediaTek MT7621 SoCWeijie Gao
This patch adds pinctrl support for MediaTek MT7621 SoC. The MT7621 SoC supports pinconf, but it is not the same as mt7628. Reviewed-by: Daniel Schwierzeck <[email protected]> Signed-off-by: Weijie Gao <[email protected]>
2022-07-13clk: mtmips: add clock driver for MediaTek MT7621 SoCWeijie Gao
This patch adds a clock driver for MediaTek MT7621 SoC. This driver provides clock gate control as well as getting clock frequency for CPU/SYS/XTAL and some peripherals. Reviewed-by: Sean Anderson <[email protected]> Signed-off-by: Weijie Gao <[email protected]>
2022-07-13Merge tag 'u-boot-stm32-20220712' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-stm - Alignment with Linux kernel device tree v5.19 for stm32mp15 and stm32mp13 - Add OP-TEE nodes for stm32mp13x, alligned with upstreamed OP-TEE - Introduce of_to_plat ops in stm32_sdmmc2 driver - Activate more features in stm32mp13 defconfig and support of STM32MP13x Rev.Y - Drop fastboot and stm32prog trigger gpios on STM32MP15x DHCOM board
2022-07-12usb: add isp1760 family driverRui Miguel Silva
ISP1760/61/63 are a family of usb controllers, here the main goal is to support the ISP1763 hcd part found in the MPS3 FPGA board form Arm. This is based on the kernel driver and ported to u-boot. Signed-off-by: Rui Miguel Silva <[email protected]>
2022-07-12usb: common: move urb code to commonRui Miguel Silva
Move urb code from musb only use to a more common scope, so other drivers in the future can use the handling of urb in usb. Signed-off-by: Rui Miguel Silva <[email protected]>
2022-07-12usb: dwc3: Add support to reset usb ULPI phyT Karthik Reddy
When usb PHY initialization is done, the PHY need to be reset. Signed-off-by: T Karthik Reddy <[email protected]> Signed-off-by: Michal Simek <[email protected]>
2022-07-12rng: stm32mp1_rng: add conditional reset feature for STM32MP13xLionel Debieve
New IP adds a conditional reset that impact the clock error management. It is now linked to a new compatible. Signed-off-by: Lionel Debieve <[email protected]> Signed-off-by: Patrick Delaunay <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2022-07-12i2c: stm32: add support for the st,stm32mp13 SOCPatrick Delaunay
The stm32mp13 soc differs from the stm32mp15 in terms of clear register offset for controlling the FMP (Fast Mode Plus). Signed-off-by: Patrick Delaunay <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2022-07-12clk: stm32: add support compatible st, stm32mp1-rcc-securePatrick Delaunay
Add support for new compatible st,stm32mp1-rcc-secure used when the RCC resource is managed by secured world (RCC_TZCR.TZEN=1) iand when SCMI is used. Signed-off-by: Patrick Delaunay <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2022-07-12mmc: stm32_sdmmc2: introduce of_to_plat opsPatrick Delaunay
Add the uclass ops of_to_plat to parse the device tree properties to respect the expected sequence by the driver model. Signed-off-by: Patrick Delaunay <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2022-07-12mmc: stm32_sdmmc2: remove privdataPatrick Delaunay
All the elements of privdata are static and build from device tree, they are moved in platdata to prepare the support of ops of_to_plat. Signed-off-by: Patrick Delaunay <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2022-07-12mmc: stm32_sdmmc2: cosmetic: rename stm32_sdmmc_bindPatrick Delaunay
Rename stm32_sdmmc_bind to stm32_sdmmc2_bind as all other functions in SDMMCv2 driver Signed-off-by: Patrick Delaunay <[email protected]> Reviewed-by: Patrice Chotard <[email protected]> Change-Id: Ic51acdfbbba6e971809c1029dd2227038bfe879d
2022-07-11Merge branch 'next'Tom Rini
2022-07-08i2c: Remove non-DM_I2C support from davinci_i2c.cTom Rini
As the migration deadline has passed, and all platforms have been migrated, remove the non-DM code here. Signed-off-by: Tom Rini <[email protected]>
2022-07-08arm: Remove strongarm supportTom Rini
There are no platforms using this architecture anymore, remove it. Signed-off-by: Tom Rini <[email protected]>
2022-07-08Merge tag 'dm-pull-28jun22' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-dm into next nman external-symbol improvements Driver model memory-usage reporting patman test-reporting improvements Add bloblist design goals
2022-07-08serial: ns16550: Wait in debug_uart_init until tx buffer is emptyPali Rohár
Commit d293759d55cc ("serial: ns16550: Add support for SPL_DEBUG_UART_BASE") fixed support for setting correct early debug UART base address in SPL. But after this commit, output from Marvell A385 BootROM is truncated or lost and not fully present on serial console. Debugging this issue showed that BootROM just put bytes into UART HW output buffer and does not wait until UART HW transmit all characters. U-Boot ns16550 early debug is initialized very early and during its initialization is resetting UART HW and flushing remaining transmit buffer (which still contains BootROM output). Fix this issue by waiting in init function prior resetting UART HW until TxEmpty bit in UART Line Status Register is set. TxEmpty is set when all remaining bytes from HW buffer are transmitted. Signed-off-by: Pali Rohár <[email protected]> Reviewed-by: Stefan Roese <[email protected]> [trini: Add comment, move ';' to new line per checkpatch.pl] Signed-off-by: Tom Rini <[email protected]>
2022-07-08led: pwm: Use NOP uclass driver for top-level nodeStefan Herbrechtsmeier
The top level DT node of pwm-leds is not a LED itself, bind NOP uclass driver to it, and bind different LED uclass driver to its subnodes which represent the actual LEDs. This change removes the top-level node from the 'led list' command output and is based on the commit 01074697801b ("led: gpio: Use NOP uclass driver for top-level node"). Signed-off-by: Stefan Herbrechtsmeier <[email protected]>
2022-07-08mtd: rawnand: Add support to dedicated function to set timingsKory Maincent
With the current code if the board has an ONFI compliant NAND without support to the get and set features, U-boot returns an ENOTSUP error when trying to tune the timings which prevents the probe of the device. Indeed onfi_set_features() return ENOTSUP error if set/get features is not supported. In the case of timings we should not return ENOTSUP because we can use the default timings. The NAND is already capable of listening at its highest supported rate, so we assume in this case that it is fine to skip the operation. Fix it by adding an intermediate nand_onfi_set_timings() function which does not error out if set/get feature is not supported. Signed-off-by: Kory Maincent <[email protected]> Reviewed-by: Miquel Raynal <[email protected]>
2022-07-08sound: enable building DA7219 driver with ACPIGEN=nHeinrich Schuchardt
sandbox_defconfig builds the DA7219 driver. It should be possible to build the sandbox without ACPI support. ACPI support in the DA7219 driver is only needed when creating an ACPI table. Fix building with ACPIGEN=n. Fixes: 0324b7123e22 ("sound: Add an ACPI driver for Dialog Semicondutor da7219") Signed-off-by: Heinrich Schuchardt <[email protected]>
2022-07-08snd: enable building max98357a driver with ACPIGEN=nHeinrich Schuchardt
sandbox_defconfig builds the max98357a driver. It should be possible to build the sandbox without ACPI support. ACPI support in the max98357a driver is only needed when creating an ACPI table. Fix building with ACPIGEN=n. Fixes: 54bcca29737f ("sound: Add an ACPI driver for Maxim MAX98357ac") Signed-off-by: Heinrich Schuchardt <[email protected]>
2022-07-07Convert CONFIG_SYS_BOOTCOUNT_LE et al to KconfigTom Rini
This converts the following to Kconfig: CONFIG_SYS_BOOTCOUNT_LE CONFIG_SYS_BOOTCOUNT_BE Signed-off-by: Tom Rini <[email protected]>
2022-07-07arm: Remove PXA architecture supportTom Rini
With the last platform for this architecture removed, remove the rest of the architecture support as well. Cc: Marek Vasut <[email protected]> Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-07-07Convert CONFIG_PALMAS_POWER to KconfigTom Rini
This converts the following to Kconfig: CONFIG_PALMAS_POWER Signed-off-by: Tom Rini <[email protected]>
2022-07-07Convert CONFIG_SYS_DISCOVER_PHY to KconfigTom Rini
This converts the following to Kconfig: CONFIG_SYS_DISCOVER_PHY Signed-off-by: Tom Rini <[email protected]>
2022-07-07Convert CONFIG_SYS_UNIFY_CACHE to KconfigTom Rini
This converts the following to Kconfig: CONFIG_SYS_UNIFY_CACHE Signed-off-by: Tom Rini <[email protected]>