summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2021-09-27Merge tag 'dm-pull-next-27sep21' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-dm into next Various of-platdata improvements, including CONFIG_OF_REAL
2021-09-27Merge tag 'v2021.10-rc5' into nextTom Rini
Prepare v2021.10-rc5
2021-09-25sandbox: correct cpu nodesHeinrich Schuchardt
The cpu nodes in arch/sandbox/dts/test.dts should conform to the devicetree specification: * property device_type must be set to "cpu" * the reg property must be provided * the cpu nodes must have an address Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2021-09-25dm: gpio: Add of-platdata supportSimon Glass
Add support for accessing GPIOs using of-plata. This uses the same mechanism as for clocks, but allows use of the xlate() method so that the driver can interpret the parameters. Update the condition for GPIO_HOG so that it is not built into SPL, since it needs SPL_OF_REAL which is not enabled in sandbox_spl. Signed-off-by: Simon Glass <[email protected]>
2021-09-25irq: Tidy up of-platdata irq supportSimon Glass
This function is available but not exported. More generally it does not really work as intended. Reimplement it and add a sandbox test too. Signed-off-by: Simon Glass <[email protected]>
2021-09-25treewide: Try to avoid the preprocessor with OF_REALSimon Glass
Convert some of these occurences to C code, where it is easy to do. This should help encourage this approach to be used in new code. Signed-off-by: Simon Glass <[email protected]>
2021-09-25treewide: Use OF_REAL instead of !OF_PLATDATASimon Glass
Now that we have a 'positive' Kconfig option, use this instead of the negative one, which is harder to understand. Signed-off-by: Simon Glass <[email protected]>
2021-09-25treewide: Simply conditions with the new OF_REALSimon Glass
Use this new Kconfig to simplify the compilation conditions where appropriate. Signed-off-by: Simon Glass <[email protected]>
2021-09-25treewide: fdt: Move fdt_get_config_... to ofnode_conf_read...Simon Glass
The current API is outdated as it requires a devicetree pointer. Move these functions to use the ofnode API and update this globally. Add some tests while we are here. Correct the call in exynos_dsim_config_parse_dt() which is obviously wrong. Signed-off-by: Simon Glass <[email protected]>
2021-09-24ARM: vexpress_ca9x4: Reintroduce board in order to use with QEMU.Kristian Amlie
vexpress_ca9x4 is seemingly the only board except for qemu_arm which is able to run U-Boot correctly, using the `-M vexpress-a9` option to QEMU. Building for qemu_arm and running qemu-system-arm with the `-M virt` argument has a number of downsides, most importantly that it only supports virtio storage drivers. This significantly reduces its usefulness in testing memory card and Flash solutions, especially when the tested images are from a third party source. So therefore we reintroduce the vexpress_ca9x4 board in this commit, with the explicit goal of using it with QEMU. A number of differences to note from the original: * Since the board was apparently unmaintained, I have now set myself as the maintainer. * The board has been converted to use the driver model, which was the reason it was removed in the first place. * The vexpress_ca15_tc2 and vexpress_ca5x2 boards, which were removed in the same commit, are not necessary for the QEMU use case, and have been omitted. * An `mmc0` alias was introduced in the dts file. The mmc is not detected correctly without this, now that it's based on the device tree instead of the board's init function. * A couple of other nodes were removed because they were problematic when trying to run the UEFI bootmgr. Once again, the primary use case here is QEMU, and these nodes are not needed for that to work. * Unnecessary board init code has been removed, thanks to driver model and device tree. * `CONFIG_OF_EMBED` has been enabled. I know this goes against recommended practice, but there doesn't seem to be any other way to pass the dtb to U-Boot in the QEMU scenario. Using the -dtb argument does not work, I suppose because U-Boot doesn't use the same mechanics as the kernel when it's booting. * Load addresses have been changed to fit QEMU use case. People wanting to get a more detailed, yet somewhat isolated, diff between this and the original, can run this command: git diff c6c26a05b89f25a06e7562f8c2071b60fd0c9eac~1 -- \ $( git diff-tree --diff-filter=A -r --name-only HEAD~1 HEAD) (Make sure to either check out this commit first, or replace HEAD with the commit ID of this commit) Signed-off-by: Kristian Amlie <[email protected]>
2021-09-24arm: use CONFIG_SUPPORT_PASSING_ATAGSPatrick Delaunay
Simplify the bootm and the spl code by using the new config CONFIG_SUPPORT_PASSING_ATAGS. Signed-off-by: Patrick Delaunay <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2021-09-24arm64: Kconfig: Enable usage of optimized memset/memcpy/memmoveStefan Roese
This patch enables the use of the optimized memset(), memmove() & memcpy() versions recently added on ARM64. Please note that these optimized functions are now only enabled for recent GCC versions (>= 9.4), as earlier GCC versions throw these errors: aarch64-linux-ar: warning: arch/arm/lib/memset-arm64.o: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0000000 ... Signed-off-by: Stefan Roese <[email protected]> [trini: Make this default to off as it causes problems on some platforms still] Signed-off-by: Tom Rini <[email protected]>
2021-09-24arm64: memset-arm64: Use simple memset when cache is disabledStefan Roese
The optimized memset uses the dc opcode, which causes problems when the cache is disabled. This patch adds a check if the cache is disabled and uses a very simple memset implementation in this case. Otherwise the optimized version is used. Signed-off-by: Stefan Roese <[email protected]>
2021-09-24arm64: arch/arm/lib: Add optimized memset/memcpy/memmove functionsStefan Roese
Ported from https://github.com/ARM-software/optimized-routines These files are included from this repository, including the latest git commit ID: string/aarch64/memcpy.S: afd6244a1f8d string/aarch64/memset.S: e823e3abf5f8 string/asmdefs.h: e823e3abf5f8 Note that memmove is also handled by the memcpy function. Please note that when adding these optimized functions as default memset memcpy functions in U-Boot, U-Boot fails to boot on the LX2160ARDB. After the initial ATF output, no U-Boot output is shown on the serial console. Some exception is triggered here in the very early boot process as some of the assembler opcodes need the caches to be enabled. Because of this, a follow-up patch will add a check to use a simple non-optimized memset for the "cache disabled" case. Note: I also integrated and tested with the Linux versions of these optimized functions. They are similar to the ones now integrated but these ARM versions are still a small bit faster. Signed-off-by: Stefan Roese <[email protected]>
2021-09-23arm: mediatek: merge board Kconfigs into mach-mediatekGuillaume La Roque
On MediaTek boards we cannot override the SYS_BOARD / SYS_CONFIG_NAME variables from defconfig. This is because in board/mediatek/mtXXXX/Kconfig this value was override by default due to the if CONFIG_TARGET_MTXXXX condition. Merge all the Kconfigs to the mach-medatek/Kconfig. This way: - we only define SYS_{SOC,VENDOR} once - all board definitions are in a single place, simplifying the build logic. Signed-off-by: Guillaume La Roque <[email protected]>
2021-09-23lmb: x86: Add arch_lmb_reserve()Marek Vasut
Add arch_lmb_reserve() implemented using arch_lmb_reserve_generic(). It is rather likely this architecture also needs to cover U-Boot with LMB before booting Linux. Signed-off-by: Marek Vasut <[email protected]> Cc: Simon Glass <[email protected]> Cc: Simon Goldschmidt <[email protected]> Cc: Tom Rini <[email protected]>
2021-09-23lmb: xtensa: Add arch_lmb_reserve()Marek Vasut
Add arch_lmb_reserve() implemented using arch_lmb_reserve_generic(). It is rather likely this architecture also needs to cover U-Boot with LMB before booting Linux. Signed-off-by: Marek Vasut <[email protected]> Cc: Chris Zankel <[email protected]> Cc: Simon Goldschmidt <[email protected]> Cc: Tom Rini <[email protected]>
2021-09-23lmb: sh: Add arch_lmb_reserve()Marek Vasut
Add arch_lmb_reserve() implemented using arch_lmb_reserve_generic(). This architecture also needs to cover U-Boot with LMB before booting Linux. Signed-off-by: Marek Vasut <[email protected]> Cc: Simon Goldschmidt <[email protected]> Cc: Tom Rini <[email protected]>
2021-09-23lmb: riscv: Add arch_lmb_reserve()Marek Vasut
Add arch_lmb_reserve() implemented using arch_lmb_reserve_generic(). It is rather likely this architecture also needs to cover U-Boot with LMB before booting Linux. Reviewed-by: Rick Chen <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Atish Patra <[email protected]> Cc: Leo <[email protected]> Cc: Rick Chen <[email protected]> Cc: Simon Goldschmidt <[email protected]> Cc: Tom Rini <[email protected]>
2021-09-23lmb: nds32: Add arch_lmb_reserve()Marek Vasut
Add arch_lmb_reserve() implemented using arch_lmb_reserve_generic(). It is rather likely this architecture also needs to cover U-Boot with LMB before booting Linux. Reviewed-by: Rick Chen <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Rick Chen <[email protected]> Cc: Simon Goldschmidt <[email protected]> Cc: Tom Rini <[email protected]>
2021-09-23lmb: nios2: Add arch_lmb_reserve()Marek Vasut
Add arch_lmb_reserve() implemented using arch_lmb_reserve_generic(). It is rather likely this architecture also needs to cover U-Boot with LMB before booting Linux. Signed-off-by: Marek Vasut <[email protected]> Cc: Simon Goldschmidt <[email protected]> Cc: Thomas Chou <[email protected]> Cc: Tom Rini <[email protected]>
2021-09-23lmb: Remove imx board_lmb_reserve()Marek Vasut
This function is clearly architecture specific code, not board specific code. The only difference from the previous arm arch_lmb_reserve() is the extra reservation of 16k of memory below the stack bottom, rather than the 4k. The common code now also uses 16k alignment. Remove this custom implementation, as it now behaves exactly as the common code. Signed-off-by: Marek Vasut <[email protected]> Cc: Alexey Brodkin <[email protected]> Cc: Angelo Dureghello <[email protected]> Cc: Daniel Schwierzeck <[email protected]> Cc: Eugeniy Paltsev <[email protected]> Cc: Hai Pham <[email protected]> Cc: Michal Simek <[email protected]> Cc: Simon Goldschmidt <[email protected]> Cc: Tom Rini <[email protected]> Cc: Wolfgang Denk <[email protected]> Cc: Ye Li <[email protected]>
2021-09-23lmb: arm: Increase LMB alignment to 16k in arch_lmb_reserve_generic()Marek Vasut
According to input NXP, the 4k alignment is not always sufficient. Currently iMX works around this problem by implementing board specific LMB reservation, however it is likely this could also occur on other systems. Increase the LMB reservation alignment to 16k by default. Signed-off-by: Marek Vasut <[email protected]> Cc: Alexey Brodkin <[email protected]> Cc: Angelo Dureghello <[email protected]> Cc: Daniel Schwierzeck <[email protected]> Cc: Eugeniy Paltsev <[email protected]> Cc: Hai Pham <[email protected]> Cc: Michal Simek <[email protected]> Cc: Simon Goldschmidt <[email protected]> Cc: Tom Rini <[email protected]> Cc: Wolfgang Denk <[email protected]> Cc: Ye Li <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2021-09-23lmb: Switch to generic arch_lmb_reserve_generic()Marek Vasut
Switch arc/arm/m68k/microblaze/mips/ppc arch_lmb_reserve() to arch_lmb_reserve_generic(). Reviewed-by: Tom Rini <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Alexey Brodkin <[email protected]> Cc: Angelo Dureghello <[email protected]> Cc: Daniel Schwierzeck <[email protected]> Cc: Eugeniy Paltsev <[email protected]> Cc: Hai Pham <[email protected]> Cc: Michal Simek <[email protected]> Cc: Simon Goldschmidt <[email protected]> Cc: Tom Rini <[email protected]> Cc: Wolfgang Denk <[email protected]>
2021-09-23lmb: Always compile arch_lmb_reserve() into U-Boot on arcMarek Vasut
The arch_lmb_reserve() is called by lib/lmb.c lmb_reserve_common() even if CMD_BOOTM is not enabled. However, the arc variant of arch_lmb_reserve() is only compiled in if CMD_BOOTM is enabled. This currently does not trigger build error, because there is an empty weak implementation of arch_lmb_reserve(), however that is not the function that should be used on arc. Fix this by moving the arch_lmb_reserve() implementation into common code and always compile it in. Signed-off-by: Marek Vasut <[email protected]> Cc: Simon Glass <[email protected]> Cc: Simon Goldschmidt <[email protected]> Cc: Tom Rini <[email protected]>
2021-09-23lmb: Always compile arch_lmb_reserve() into U-Boot on armMarek Vasut
The arch_lmb_reserve() is called by lib/lmb.c lmb_reserve_common() even if CMD_BOOT{I,M,Z} is not enabled. However, the arm32/arm64 variant of arch_lmb_reserve() is only compiled in if CMD_BOOT{I,M,Z} is enabled. This currently does not trigger build error, because there is an empty weak implementation of arch_lmb_reserve(), however that is not the function that should be used on arm32/arm64. Fix this by moving the arch_lmb_reserve() implementation into common code and always compile it in. Reviewed-by: Tom Rini <[email protected]> Signed-off-by: Marek Vasut <[email protected]> Cc: Simon Glass <[email protected]> Cc: Simon Goldschmidt <[email protected]> Cc: Tom Rini <[email protected]>
2021-09-23crc32: Add crc32 implementation using __builtin_aarch64_crc32bMarek Vasut
ARMv8.0 has optional crc32 instruction for crc32 calculation. The instruction is mandatory since ARMv8.1. The crc32 calculation is faster using the dedicated instruction, e.g. 1.4 GHz iMX8MN gives: => time crc32 0x50000000 0x2000000 time: 0.126 seconds # crc32 instruction time: 0.213 seconds # software crc32 Add implementation using the compiler builtin wrapper for the crc32 instruction and enable it by default, since we don't support any platforms which do not implement this instruction. Signed-off-by: Marek Vasut <[email protected]> Cc: Simon Glass <[email protected]> [trini: Make crc32_table guarded by CONFIG_ARM64_CRC32] Signed-off-by: Tom Rini <[email protected]>
2021-09-23armv8/cache.S: Triple with single instructionPierre-Clément Tosi
Replace the current 2-instruction 2-step tripling code by a corresponding single instruction leveraging ARMv8-A's "flexible second operand as a register with optional shift". This has the added benefit (albeit arguably negligible) of reducing the final code size. Fix the comment as the tripled cache level is placed in x12, not x0. Signed-off-by: Pierre-Clément Tosi <[email protected]>
2021-09-23armv8/cache.S: Read sysreg fields through ubfxPierre-Clément Tosi
Improve the file's readability and conciseness by using the appropriate Aarch64 instruction: ubfx (unsigned bitfield extract). This makes the code easier to follow as it directly manipulates the offsets and widths of the fields read from system registers, as they are expressed in the Standard (ARM ARM). This has the added benefit (albeit arguably negligible) of reducing the final code size. Signed-off-by: Pierre-Clément Tosi <[email protected]>
2021-09-22Merge tag 'u-boot-at91-2022.01-a' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-at91 into next First set of u-boot-at91 features for the 2022.01 cycle: This feature set includes : the support for CPU driver for arm926 (sam9x60 device); changes required for OP-TEE boot for sama5d2_xplained and sama5d27_som1_ek boards; QSPI boot configuration for sama5d2_icp; starting to remove old Kconfig unused symbols from config_whitelist.txt (work will take more time); also small fixes and updates in mach, DT, configs, etc.
2021-09-22arm: socfpga: vining: Fix UDC controller phandle in DTMarek Vasut
The USB peripheral controller is the DWC2 controller 1, not 0. Update the phandle to fix UDC support on this board. Signed-off-by: Marek Vasut <[email protected]> Cc: Siew Chin Lim <[email protected]> Cc: Simon Goldschmidt <[email protected]> Cc: Tien Fong Chee <[email protected]>
2021-09-22arm: socfpga: vining: Un-disable WDT in DTMarek Vasut
The WDT on this system should be enabled, make it so. Signed-off-by: Marek Vasut <[email protected]> Cc: Siew Chin Lim <[email protected]> Cc: Simon Goldschmidt <[email protected]> Cc: Tien Fong Chee <[email protected]>
2021-09-22x86: tangier: acpi: Add GPIO card detection to SDHCI #2Andy Shevchenko
On Intel Tangier the SDHCI #2 provides SD card connection. Add GPIO card detection for it. Fixes: 39665beed6f7 ("x86: tangier: Enable ACPI support for Intel Tangier") BugLink: https://github.com/edison-fw/meta-intel-edison/issues/135 Signed-off-by: Andy Shevchenko <[email protected]> Acked-by: Bin Meng <[email protected]>
2021-09-22x86: edison: Mark eMMC non-removableAndy Shevchenko
eMMC is non-removable on Intel Edison board. Fix the DTS accordingly. Signed-off-by: Andy Shevchenko <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2021-09-21arm: dts: stm32mp1: use ssbl partition name for U-BootPatrick Delaunay
Continue to use the "ssbl" name for GPT partition of secondary boot stage = U-Boot for basic boot with SPL to avoid to disturb existing user. The "fip" partition name is only used for TFA_BOOT with FIP, it is a TF-A BL2 requirement; it the default configuration for STMicroelectronics boards. Fixes: b73e8bf453f8 ("arm: stm32mp: add defconfig for trusted boot with FIP") Signed-off-by: Patrick Delaunay <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2021-09-21ARM: dts: at91: update flexcom defines using include fileEugen Hristev
Replace the number in the flexcom-mode property with the define from the include file. This corresponds to the approach in Linux kernel. Signed-off-by: Eugen Hristev <[email protected]>
2021-09-21ARM: at91: remove references to RM9200DKEugen Hristev
The AT91 RM9200DK board was removed long time ago. Remove existing references that were not cleaned up. Fixes: 1c85752258 ("ARM: remove broken "at91rm9200dk" board") Signed-off-by: Eugen Hristev <[email protected]>
2021-09-21ARM: dts: at91: sama5d2: fix dtc warning for ohci and ehciEugen Hristev
Fixed the following DTC build warning (reproducible with W=1) arch/arm/dts/at91-sama5d2_icp.dtb: Warning (unit_address_format): /ahb/ohci@00400000: unit name should not have leading 0s arch/arm/dts/at91-sama5d2_icp.dtb: Warning (unit_address_format): /ahb/ehci@00500000: unit name should not have leading 0s Signed-off-by: Eugen Hristev <[email protected]> Reviewed-by: Alexander Dahl <[email protected]>
2021-09-21ARM: dts: at91: sama5d2_icp: cosmetic arrangement of the nodesEugen Hristev
Reorder the nodes following the kernel rules: nodes in a range are sorted by ascending bus address, and when referenced by phandle, are ordered alphabetically. Signed-off-by: Eugen Hristev <[email protected]>
2021-09-21ARM: dts: at91: sama5d2_icp: add QSPI1 deviceMihai Sain
Add support for sst26vf064b 64Mbit qspi-flash that is present on sama5d2_icp board. Signed-off-by: Mihai Sain <[email protected]> [[email protected]: move u-boot properties to sama5d2_icp-u-boot.dtsi] Signed-off-by: Eugen Hristev <[email protected]>
2021-09-21ARM: dts: at91: sama5d2_xplained: Add memory node in devicetreeClément Léger
sama5d2_xplained DRAM detection code will be modified to use device tree instead of hardcoded addresses. In order to prepare that, add the memory node to at91-sama5d2_xplained.dts. Signed-off-by: Clément Léger <[email protected]>
2021-09-21ARM: mach-at91: armv7: fix multiple cpu_reset definition when enabling SYSRESETClément Léger
When SYSRESET is enabled, cpu_reset function is also defined in sysreset-uclass.c which lead to multiple definitions of this function since reset.c is build unconditionally. Add a check in Makefile to build this file only if SYSRESET isn't enabled. SYSRESET can be enabled when building SYSRESET_PSCI for instance on this platform. Signed-off-by: Clément Léger <[email protected]>
2021-09-21ARM: dts: at91: sam9x60: add bindings for CPUClaudiu Beznea
Add bindings for CPU. This will allow displaying correctly the crystal, CPU and master clock. Reported-by: Eugen Hristev <[email protected]> Fixes: a64862284f65 ("clk: at91: sam9x60: add support compatible with CCF") Signed-off-by: Claudiu Beznea <[email protected]>
2021-09-21ARM: at91: Add chip ID of SAMA5D29Hari Prasath
Add SAMA5D29 SoC for identification during the boot up. Signed-off-by: Hari Prasath <[email protected]>
2021-09-17arm: mach-k3: common: Make sure firmware sections are loaded prior to armv8 ↵Nishanth Menon
startup With Device Manager firmware in an elf file form, we cannot load the FIT image to the exact same address as any of the executable sections of the elf file itself is located. However, the device tree descriptions for the ARMV8 bootloader/OS includes DDR regions only the final sections in DDR where the Device Manager firmware is actually executing out of. As the R5 uC is usually operating at a slower rate than an ARMv8 MPU, by starting the Armv8 ahead of parsing the elf and copying the correct sections to the required memories creates a race condition where the ARMv8 could overwrite the elf image loaded from the FIT image prior to the R5 completing parsing and putting the correct sections of elf in the required memory locations. OR create rather obscure debug conditions where data in the section is being modified by ARMV8 OS while the elf copy is in progress. To prevent all these conditions, lets make sure that the elf parse and copy operations are completed ahead of ARMv8 being released to execute. We will pay a penalty of elf copy time, but that is a valid tradeoff in comparison to debug of alternate scenarios. Signed-off-by: Nishanth Menon <[email protected]>
2021-09-17arm: mach-k3: am6_init: Prioritize MSMC traffic over DDR in NAVSS NorthbridgeRoger Quadros
NB0 is bridge to SRAM and NB1 is bridge to DDR. To ensure that SRAM transfers are not stalled due to delays during DDR refreshes, SRAM traffic should be higher priority (threadmap=2) than DDR traffic (threadmap=0). This fixup is critical to provide deterministic access latency to MSMC from ICSSG, it applies to all AM65 silicon revisions and is due to incorrect reset values (has no erratum id) and statically setting things up should be done independent of usecases and board. This specific style of Northbridge configuration is specific only to AM65x devices, follow-on K3 devices have different data prioritization schemes (ASEL and the like) and hence the fixup applies purely to AM65x. Without this fix, ICSSG TX lock-ups due to delays in MSMC transfers in case of SR1 devices, on SR2 devices, lockups were not observed so far but high retry rates of ICSSG Ethernet (icssg-eth) and, thus, lower throughput. Signed-off-by: Roger Quadros <[email protected]> Acked-by: Andrew F. Davis <[email protected]> Acked-by: Tomi Valkeinen <[email protected]> Acked-by: Benoit Parrot <[email protected]> [Jan: rebased, dropped used define, extended commit log] Signed-off-by: Jan Kiszka <[email protected]> [Nishanth: Provide relevant context in the commit message] Signed-off-by: Nishanth Menon<[email protected]>
2021-09-17clk: ti: k3: Update driver to account for divider flagsSuman Anna
The K3 SoCs have some PLL output clocks (POSTDIV clocks) which in turn serve as inputs to other HSDIV output clocks. These clocks use the actual value to compute the divider clock rate, and need to be registered with the CLK_DIVIDER_ONE_BASED flags. The current k3-clk driver and data lacks the infrastructure to pass in divider flags. Update the driver and data to account for these divider flags. Signed-off-by: Suman Anna <[email protected]> Signed-off-by: Dave Gerlach <[email protected]>
2021-09-17arm: mach-k3: Add note to auto-generated filesDave Gerlach
Add a note to the automatically generated clk-data and dev-data files for j721e and j7200 to indicate that they are in fact auto-generated and should not be hand edited. Also adjust TI URL to use https instead of http and also add an empty line before first header inclusion. Signed-off-by: Dave Gerlach <[email protected]>
2021-09-17arm: mach-k3: j7200: Fix clk-data parenting for postdiv PLL clocksSuman Anna
The TI K3 Fractional PLLs use two programmable POSTDIV1 and POSTDIV2 divisors to generate the final FOUTPOSTDIV clock. These are in sequence with POSTDIV2 following the POSTDIV1 clock. The current J7200 clock data has the POSTDIV2 clock as the parent for the POSTDIV1 clock, which is opposite of the actual implementation. Fix the data by simply adjusting the register bit-shifts. The Main PLL1 POSTDIV clocks were also defined incorrectly using Main PLL0 register values, fix these as well. Fixes: 277729eaf373 ("arm: mach-k3: Add platform data for j721e and j7200") Signed-off-by: Suman Anna <[email protected]> Signed-off-by: Dave Gerlach <[email protected]>
2021-09-17arm: mach-k3: j721e: Fix clk-data parenting for postdiv PLL clocksSuman Anna
The TI K3 Fractional PLLs use two programmable POSTDIV1 and POSTDIV2 divisors to generate the final FOUTPOSTDIV clock. These are in sequence with POSTDIV2 following the POSTDIV1 clock. The current J721E clock data has the POSTDIV2 clock as the parent for the POSTDIV1 clock, which is opposite of the actual implementation. Fix the data by simply adjusting the register bit-shifts. The Main PLL1 POSTDIV clocks were also defined incorrectly using Main PLL0 register values, fix these as well. Fixes: 277729eaf373 ("arm: mach-k3: Add platform data for j721e and j7200") Signed-off-by: Suman Anna <[email protected]> Signed-off-by: Dave Gerlach <[email protected]>