summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-07-05usb: gadget: cdns3: Convert interrupt handling to usb_gadget_generic_opsMarek Vasut
Implement .handle_interrupts callback as a replacement for deprecated dm_usb_gadget_handle_interrupts() function. The new callback allows for each DM capable USB gadget controller driver to define its own IRQ handling implementation without colliding with other controller drivers. Keep the dm_usb_gadget_handle_interrupts() in this driver for non-DM case for now, until this driver gets fully converted to DM USB gadget. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]> # vim3 Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-07-05usb: gadget: Introduce handle_interrupts ops to USB_GADGET_GENERIC uclassMarek Vasut
Introduce .ops for USB_GADGET_GENERIC uclass. The first new ops is .handle_interrupts which must be implemented by DM capable USB gadget controller drivers and must implement interrupt handling similar to dm_usb_gadget_handle_interrupts(). This patch currently provides weak dm_usb_gadget_handle_interrupts() implementation which is overridden by the drivers, but this will be removed once conversion to handle_interrupts callback is complete. Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Alexander Sverdlin <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]> # vim3 Link: https://lore.kernel.org/r/[email protected] [mkorpershoek: fixed trivial typo in commit message] Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-07-05usb: dwc3: gadget: Convert epautoconf workaround to match_ep callbackMarek Vasut
Use the .match_ep() callback instead of workaround in core code. Replace descriptor parsing with ch9 macros with the same effect. Drop the SPL specific behavior, it is unclear why SPL should even be special. Signed-off-by: Marek Vasut <[email protected]> Tested-by: Alexander Sverdlin <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]> # on vim3 Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-07-05usb: gadget: Add full ep_matches() check past .match_ep() callbackMarek Vasut
If .match_ep() callback returns non-NULL endpoint, immediately check its usability and if the returned endpoint is usable, stop search and return the endpoint. Otherwise, continue with best effort search for usable endpoint. Currently the code would attempt the best effort search in any case, which may find another unexpected endpoint. It is likely that the intention of the original code was to stop the search early. Fixes: 77dcbdf3c1ce ("usb: gadget: Add match_ep() op to usb_gadget_ops") Signed-off-by: Marek Vasut <[email protected]> Tested-by: Alexander Sverdlin <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]> # on vim3 Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-07-05usb: gadget: Drop all gadget_is_*() functionsMarek Vasut
The only actually used gadget_is_*() functions are the one for DWC3 used in epautoconf.c usb_ep_autoconfig() and one for MUSB in ether.c. The DWC3 one should be fixed in some separate patch. Inline the gadget_is_dwc3() and stop using ifdefs in favor of IS_ENABLED() macro. The rest of gadget_is_*() calls in usb_ep_autoconfig() can never be anything but 0, since those gadgets are not supported in U-Boot, so remove all that unused code. Remove gadget_chips.h as well. Signed-off-by: Marek Vasut <[email protected]> Tested-by: Alexander Sverdlin <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]> # on vim3 Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-07-05usb: gadget: Drop usb_gadget_controller_number()Marek Vasut
The bcdDevice field is defined as |Device release number in binary-coded decimal in the USB 2.0 specification. We use this field to distinguish the UDCs from each other. In theory this could be used on the host side to apply certain quirks if the "special" UDC in combination with this gadget is used. This hasn't been done as far as I am aware. In practice it would be better to fix the UDC driver before shipping since a later release might not need this quirk anymore. This patch removes the newly unused function. Linux stopped using this functionality in 2012, remove it from U-Boot as well. Matching Linux kernel commit: ed9cbda63d45 ("usb: gadget: remove usb_gadget_controller_number()") Signed-off-by: Marek Vasut <[email protected]> Tested-by: Alexander Sverdlin <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]> # on vim3 Reviewed-by: Lukasz Majewski <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-07-05usb: gadget: ether: Drop usb_gadget_controller_number()Marek Vasut
The bcdDevice field is defined as |Device release number in binary-coded decimal in the USB 2.0 specification. We use this field to distinguish the UDCs from each other. In theory this could be used on the host side to apply certain quirks if the "special" UDC in combination with this gadget is used. This hasn't been done as far as I am aware. In practice it would be better to fix the UDC driver before shipping since a later release might not need this quirk anymore. This patch converts this gadget to use the U-Boot version instead of a random 2 or 3 plus the UDC number. Linux stopped using this functionality in 2012, remove it from U-Boot as well. Matching Linux kernel commit: ed9cbda63d45 ("usb: gadget: remove usb_gadget_controller_number()") Signed-off-by: Marek Vasut <[email protected]> Tested-by: Alexander Sverdlin <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]> # on vim3 Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-07-05usb: gadget: g_dnl: Drop usb_gadget_controller_number()Marek Vasut
The bcdDevice field is defined as |Device release number in binary-coded decimal in the USB 2.0 specification. We use this field to distinguish the UDCs from each other. In theory this could be used on the host side to apply certain quirks if the "special" UDC in combination with this gadget is used. This hasn't been done as far as I am aware. In practice it would be better to fix the UDC driver before shipping since a later release might not need this quirk anymore. This patch converts this gadget to use the U-Boot version instead of a random 2 or 3 plus the UDC number. Linux stopped using this functionality in 2012, remove it from U-Boot as well. Matching Linux kernel commit: ed9cbda63d45 ("usb: gadget: remove usb_gadget_controller_number()") Signed-off-by: Marek Vasut <[email protected]> Tested-by: Alexander Sverdlin <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]> Tested-by: Mattijs Korpershoek <[email protected]> # vim3 Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mattijs Korpershoek <[email protected]>
2024-07-05spmi: msm: correct max_channels for v5 controllersCaleb Connolly
Commit ee1d8aa5ecf7 ("spmi: msm: support controller version 7") broke support for channels > 128 on v5 controllers, resulting in some peripherals (like the power button / pon) working but others (like gpios) reading bogus data. Correct max_channels for v5 controllers. Fixes: ee1d8aa5ecf7 ("spmi: msm: support controller version 7") Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-07-05mach-snapdragon: move default environment to a fileCaleb Connolly
Make use of CONFIG_DEFAULT_ENV_FILE and move the default qcom environment to a file under board/qualcomm. This is much cleaner and means we don't need to recompile on changing the environment. Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-07-05spmi: msm: demote to debug()Caleb Connolly
Most devices have buttons exposed via the PMIC, the button polling therefore triggers a log spam if debug logging is enabled. Demote these to debug() so that they aren't printed unless LOG_DEBUG is defined explicitly for this file. Reviewed-by: Neil Armstrong <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-07-05pinctrl: qcom: sm8650: add special pins pins configuration dataNeil Armstrong
Add the special pins configuration data to allow setup the bias of the UFS and SDCard pins on the SM8650 SoC. Signed-off-by: Neil Armstrong <[email protected]> Reviewed-by: Sumit Garg <[email protected]>
2024-07-05pinctrl: qcom: sm8550: add special pins pins configuration dataNeil Armstrong
Add the special pins configuration data to allow setup the bias of the UFS and SDCard pins on the SM8550 SoC. Signed-off-by: Neil Armstrong <[email protected]> Reviewed-by: Sumit Garg <[email protected]>
2024-07-05pinctrl: qcom: add support setting pin configuration for special pinsNeil Armstrong
Use the previously introduced msm_special_pin_data to setup the special pins configuration if the SoC driver have them specified. Signed-off-by: Neil Armstrong <[email protected]> Reviewed-by: Sumit Garg <[email protected]>
2024-07-05arm: mach-snapdragon: gpio: introduce msm_special_pin_dataNeil Armstrong
In order to help setup pin configuration for special pins (UFS, SDCard), introduce the msm_special_pin_data struct largely inspired from the Linux conterpart but with only U-Boot required fields. This struct is added to the pins_data to allow specifying the special pins data for each SoC. Signed-off-by: Neil Armstrong <[email protected]> Reviewed-by: Sumit Garg <[email protected]>
2024-07-05pinctrl: qcom: add support for bias-pull-downNeil Armstrong
Add support for bias-pull-down as an alternate of bias-pull-up. Signed-off-by: Neil Armstrong <[email protected]>
2024-07-05clock: qcom: ipq4019: add I2C clocksRobert Marko
I2C clocks are not initialized by the SBL, so lets add support for clocks required by both of the QUP I2C controllers. BLSP1 AHB clock is already initialized by SBL, but QUP I2C driver is requesting it so we have to add it to the enable list. Based off QCS404 clock driver. Signed-off-by: Robert Marko <[email protected]>
2024-07-05MAINTAINERS: IPQ40XX: add pinctrl driverRobert Marko
Pinctrl drivers were moved to a dedicated directory but the entry was never updated, so add the pinctrl-ipq4019 driver entry. Signed-off-by: Robert Marko <[email protected]>
2024-07-05MAINTAINERS: IPQ40XX: add clock-ipq4019 instead of reset driverRobert Marko
The reset handling was added to the clock drivers but the entry was never updated, so add the clock-ipq4019 driver instead. Signed-off-by: Robert Marko <[email protected]>
2024-07-05MAINTAINERS: IPQ40XX: update GCC dt-bindingsRobert Marko
The separate clock and reset dt-bindings for IPQ40XX were merged into one recently, but the entry was not updated so do it now. Signed-off-by: Robert Marko <[email protected]>
2024-07-05MAINTAINERS: IPQ40XX: remove Luka Kovacic as maintainerRobert Marko
Luka Kovacic is no longer at Sartura, so remove him as one of IPQ40xx maintainers. Signed-off-by: Robert Marko <[email protected]>
2024-07-05arm: dts: drop downstream IPQ4019 DTSIRobert Marko
We want to use OF_UPSTREAM on IPQ40XX as its well supported upstream, so lets drop our downstream DTSI. Signed-off-by: Robert Marko <[email protected]> Acked-by: Caleb Connolly <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-07-05mach-ipq40xx: use OF_UPSTREAMRobert Marko
Now that drivers are compatible enough with the upstream DTS, there is no reason to not use the upstream DTS, so imply OF_UPSTREAM by default. Signed-off-by: Robert Marko <[email protected]> Acked-by: Caleb Connolly <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-07-05mach-ipq40xx: add CPU specific codeRobert Marko
Provide basic DRAM info population from DT, cache setting and the board_init stub. Signed-off-by: Robert Marko <[email protected]> Acked-by: Caleb Connolly <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-07-05sysreset: add Qualcomm PSHOLD reset driverRobert Marko
Number of Qualcomm ARMv7 SoC-s did not use PSCI but rather used PSHOLD (Qualcomm Power Supply Hold Reset) bit to trigger reset or poweroff. Qualcomm IPQ40XX is one of them, so provide a simple sysreset driver based on the upstream Linux one, it is DT compatible as well. Signed-off-by: Robert Marko <[email protected]> Reviewed-by: Caleb Connolly <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-07-05ehci: msm: bring up iface + core clocksSam Day
This seems to be necessary on my samsung-a5. Without this patch, the first access of EHCI registers causes a bus stall and subsequent reset. I am unsure why this wasn't already necessary for db410c, perhaps those clocks are already enabled on boot. Reviewed-by: Caleb Connolly <[email protected]> Signed-off-by: Sam Day <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-07-05clk/qcom: apq8016: add support for USB_HS clocksSam Day
The newer "register map for simple gate clocks" support added for qcom clocks is used. As a result gcc_apq8016 now has a mixture of the old and new styles. I didn't (and still don't!) feel comfortable enough in this area to update the existing code. Signed-off-by: Sam Day <[email protected]> Reviewed-by: Caleb Connolly <[email protected]> Signed-off-by: Caleb Connolly <[email protected]>
2024-07-05qcom_defconfig: enable msm8916 and msm8996Caleb Connolly
Enable the clock/pinctrl drivers for these two SoCs. Previously left out due to only being used on the db410c and db820c respectively which both have their own board code. We can still boot these with most features working without that board code. Signed-off-by: Caleb Connolly <[email protected]> Signed-off-by: Sam Day <[email protected]>
2024-07-05board: lenovo: ideapad-yoga-11: add Lenovo Ideapad Yoga 11 supportJonas Schwöbel
The Lenovo IdeaPad Yoga 11 is a hybrid laptop/tablet Windows RT-based computer released in late 2012. The device uses a 1.3 GHz quad-core Nvidia Tegra 3 chipset with 2 GB of RAM, features a 11.6 inch 1366x768 screen and 32/64 GB of internal memory that can be supplemented with a microSDXC card slot, full size SD card slot and 2 full size USB 2.0 ports. Tested-by: Jethro Bull <[email protected]> Signed-off-by: Jonas Schwöbel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-07-05board: microsoft: surface-rt: add Microsoft Surface RT supportJonas Schwöbel
Surface RT is a hybrid tablet computer developed and manufactured by Microsoft and shipped with Windows RT. The tablet uses a 1.3 GHz quad-core Nvidia Tegra 3 chipset with 2 GB of RAM, features 10.8 inch 1366x768 screen and 32/64 GB of internal memory that can be supplemented with a microSDXC card giving up to 200 GB of additional storage. Tested-by: Jethro Bull <[email protected]> Signed-off-by: Jonas Schwöbel <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-07-05board: wexler: qc750: add WEXLER Tab 7t supportSvyatoslav Ryhel
WEXLER Tab 7t is a mini tablet computer developed by WEXLER that runs the Android operating system. The device features a 7.0-inch (180 mm) HD display, an Nvidia Tegra 3 quad-core chip, 1 GB of RAM, 8, 16 or 32 GB of storage that can be supplemented with a microSDXC card giving up to 64 GB of additional storage and a full size USB port. Tested-by: Maksim Kurnosenko <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-07-05board: asus: transformer: add ASUS Transformer T20 family supportSvyatoslav Ryhel
The Asus Eee Pad Transformer family are 2-in-1 detachable/slider tablets developed by Asus that run the Android operating system. The Eee Pad Transformers feature a 10.1-inch (260 mm) display, an Nvidia Tegra 2 dual-core chip, 1 GB of RAM, and 16/32 GB of storage. Transformers board derives from Nvidia Ventana development board. This patch brings support for all 3 known T20 Transformers: - Asus Eee Pad Transformer TF101 - Asus Eee Pad Transformer TF101G - Asus Eee Pad Slider SL101 Tested-by: Robert Eckelmann <[email protected]> # ASUS TF101 Tested-by: Antoni Aloy Torrens <[email protected]> # ASUS TF101 Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-07-05arm: tegra20: bct: add missing <vsprintf.h>Svyatoslav Ryhel
Fixes implicit declaration of function 'hextoul' Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-07-05configs: transformer: simplify boot commandSvyatoslav Ryhel
Drop boot device sequence re-definition since now it is default. Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-07-05include: configs: tegra-common-post: make usb first boot targetSvyatoslav Ryhel
This ensures that the device can boot from a USB device prior to MMC. Useful cases are when installing a new OS from USB while MMC still has a working OS configuration or if the OS configuration is broken in late boot stages (kernel boots but the system does not start). Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-07-05video: tegra20: dc: use nvidia,head property to identify DC controllerSvyatoslav Ryhel
Use existing nvidia,head device tree property to get DC controller id. Acked-by: Thierry Reding <[email protected]> Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-07-05configs: paz00: enable EDID supportSvyatoslav Ryhel
Signed-off-by: Svyatoslav Ryhel <[email protected]>
2024-07-04Merge patch series "xtensa: Enable qemu-xtensa board"Tom Rini
Jiaxun Yang <[email protected]> says: Hi all, This series enabled qemu-xtensa board. For dc232b CPU it needs to be built with toolchain[1]. This is a side product of me investigating architectures physical address != virtual address in U-Boot. Now we can get it covered under CI and regular tests. VirtIO devices are not working as expected, due to U-Boot's assumption on VA == PA everywhere, I'm going to get this fixed later. My Xtensa knowledge is pretty limited, Xtensa people please feel free to point out if I got anything wrong. Thanks [1]: https://github.com/foss-xtensa/toolchain/releases/download/2020.07/x86_64-2020.07-xtensa-dc232b-elf.tar.gz
2024-07-04CI ChangesJiaxun Yang
Signed-off-by: Jiaxun Yang <[email protected]>
2024-07-04ci: Wire up qemu_xtensa_dc233cJiaxun Yang
Signed-off-by: Jiaxun Yang <[email protected]>
2024-07-04doc: New documentation for qemu-xtensaJiaxun Yang
Introduce the board and provide instructions on how to get it work. Tested-by: Max Filippov <[email protected]> Signed-off-by: Jiaxun Yang <[email protected]>
2024-07-04board: emulation: New board qemu-xtensaJiaxun Yang
Introduce the new board, define every bits. Tested-by: Max Filippov <[email protected]> Signed-off-by: Jiaxun Yang <[email protected]>
2024-07-04dts/upsteam: Add Makefile for xtensaJiaxun Yang
It is required to get it xtensa OF_UPSTREAM work. Reviewed-by: Sumit Garg <[email protected]> Tested-by: Max Filippov <[email protected]> Signed-off-by: Jiaxun Yang <[email protected]>
2024-07-04drivers: cpu: Add xtensa CPU driverJiaxun Yang
Implement various CPU related functions. I'm actually just using it to get cpu clock frequency. Tested-by: Max Filippov <[email protected]> Signed-off-by: Jiaxun Yang <[email protected]>
2024-07-04drivers: serial: Add xtensa semihosting driverJiaxun Yang
Add xtensa semihosting driver. It can't use regular semihosting driver as Xtensa's has it's own semihosting ABI. Tested-by: Max Filippov <[email protected]> Signed-off-by: Jiaxun Yang <[email protected]>
2024-07-04xtensa: Bring in semihosting headers and config optionsJiaxun Yang
They are all directly imported from Linux kernel. Reviewed-by: Max Filippov <[email protected]> Tested-by: Max Filippov <[email protected]> Signed-off-by: Jiaxun Yang <[email protected]>
2024-07-04xtensa: Define PLATFORM_ELFFLAGSJiaxun Yang
u-boot.elf target requires it to work. Tested-by: Max Filippov <[email protected]> Signed-off-by: Jiaxun Yang <[email protected]>
2024-07-04xtensa: Implement phys virt conversion for PTP_MMUJiaxun Yang
For PTP_MMU our physical address is not directly mapped into virtual address space, we need to access physical memory from those fixed map segments. Implement phys_to_virt and virt_to_phys hook to reflect this setting. Tested-by: Max Filippov <[email protected]> Signed-off-by: Jiaxun Yang <[email protected]>
2024-07-04xtensa: Correct define of _end symbolJiaxun Yang
So U-Boot is using _end symbol to detect location of devicetree appended at the end of the ROM. It needs to be calculated based on end of .data load address, as in our lds .current address is address in RAM. Tested-by: Max Filippov <[email protected]> Signed-off-by: Jiaxun Yang <[email protected]>
2024-07-04xtensa: Move dram_init to xtfpga board fileJiaxun Yang
This is a board level stuff. Tested-by: Max Filippov <[email protected]> Signed-off-by: Jiaxun Yang <[email protected]>