u-boot/arch/arm
Stephan Gerhold afc13335a5 arm: dts: db410c/db820c: Fix SPMI addresses
The Qualcomm device trees in U-Boot are currently not consistent with
the upstream DTs used in the Linux kernel. While some bindings are
similar to the official specification in the Linux kernel, several
nodes have subtle differences, e.g. the "compatible"s or the exact
specification of memory registers.

This means that some of the Qualcomm-related U-Boot drivers are not
compatible with the Linux DT (and vice versa).

The SPMI node is one such example: the "core" region starts at
0x0200f000 in the upstream Linux MSM8916 DT, but in U-Boot it starts at
0x0200f800. The end result is normally the same, since the Linux SPMI
driver simply adds the 0x800 internally.

However, commit f5a2d6b4b0 ("spmi: msm: add arbiter version 5
support") imported this behavior into the U-Boot driver, without
adjusting the DB410c/DB820c device trees. This means that the 0x800
offset is now added twice, breaking all SPMI read/write operations:

  Failed to find PMIC pon node. Check device tree
  Failed to find pm8916_gpios@c000 node.
  USB init failed: -6
  starting USB...
  Bus ehci@78d9000: Failed to find pm8916_gpios@c000 node.
  probe failed, error -6
  No working controllers found

While the mistake is strictly speaking in the spmi-msm driver, fix the
issue by making the SPMI nodes in the DB410c/DB820c consistent with the
upstream Linux DT instead.

Ideally we should even go a step further by fixing the remaining uses
of custom bindings in the U-Boot drivers and moving to using the Linux
DTs as-is. This would likely avoid such mistakes in the future and
would also make the porting process much easier.

Cc: Dzmitry Sankouski <dsankouski@gmail.com>
Fixes: f5a2d6b4b0 ("spmi: msm: add arbiter version 5 support")
Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
2022-07-25 13:02:04 -04:00
..
cpu Merge branch 'next' 2022-07-11 14:58:57 -04:00
dts arm: dts: db410c/db820c: Fix SPMI addresses 2022-07-25 13:02:04 -04:00
include Merge branch 'next' 2022-07-11 14:58:57 -04:00
lib Migrate CUSTOM_SYS_INIT_SP_ADDR to Kconfig using system-constants.h 2022-06-06 12:09:19 -04:00
mach-apple arm: apple: Add initial Apple M2 support 2022-07-25 09:38:47 -04:00
mach-aspeed aspeed/spl: Remove OVERLAY from linker script 2022-07-06 14:32:00 -04:00
mach-at91 First set of u-boot-at91 features for the 2022.10 cycle 2022-06-30 15:21:52 -04:00
mach-bcm283x
mach-bcmbca arm: bcmbca: introduce the bcmbca architecture and 47622 SOC 2022-06-10 13:37:32 -04:00
mach-bcmstb
mach-cortina
mach-davinci spl: Move SPL_LDSCRIPT defaults to one place 2022-06-28 17:03:31 -04:00
mach-exynos arm: samsung: Migrate a number of symbols to Kconfig 2022-06-28 17:04:37 -04:00
mach-highbank
mach-hpe ARM: hpe: gxp: add core support 2022-06-22 21:30:04 -04:00
mach-imx Merge branch 'next' 2022-07-11 14:58:57 -04:00
mach-integrator arm: integrator: Migrate platform-specific options and cleanup armcoremodule.h 2022-04-08 09:05:19 -04:00
mach-ipq40xx
mach-k3 armv8: mach-k3: correct define checking for AM625/AM642 memory maps 2022-07-25 13:02:04 -04:00
mach-keystone i2c: Remove non-DM_I2C support from davinci_i2c.c 2022-07-08 17:57:34 -04:00
mach-kirkwood Convert CONFIG_KIRKWOOD_PCIE_INIT et al to Kconfig 2022-07-05 17:05:00 -04:00
mach-lpc32xx
mach-mediatek
mach-meson meson: axg: search dtb for meson-axg-usb-ctrl on board axg 2022-05-23 10:40:01 +02:00
mach-mvebu arm: mvebu: Avoid reading MVEBU_REG_PCIE_DEVID register too many times 2022-07-21 10:14:04 +02:00
mach-nexell video: Drop references to CONFIG_VIDEO et al 2022-03-28 20:17:07 +02:00
mach-npcm arm: nuvoton: Add support for Nuvoton NPCM750 BMC 2022-05-05 09:28:47 -04:00
mach-octeontx
mach-octeontx2
mach-omap2 omap3: emif4: More clearly hard-code cs0 size 2022-07-08 17:57:34 -04:00
mach-orion5x linker_lists: Rename sections to remove . prefix 2022-06-23 12:58:18 -04:00
mach-owl
mach-qemu
mach-rmobile Migrate CUSTOM_SYS_INIT_SP_ADDR to Kconfig using system-constants.h 2022-06-06 12:09:19 -04:00
mach-rockchip Merge branch 'next' 2022-07-11 14:58:57 -04:00
mach-s5pc1xx
mach-snapdragon board: qualcomm: Add support for QCS404 EVB 2022-07-25 13:02:04 -04:00
mach-socfpga socfpga: arria10: Allow dcache_enable before relocation 2022-07-01 14:57:15 +08:00
mach-sti stm32mp1: fix reference for STMicroelectronics 2022-06-17 14:12:27 +02:00
mach-stm32 configs: stm32f746-disco: Migrate SPL flags to defconfig 2022-05-10 13:56:12 +02:00
mach-stm32mp stm32mp: add support of STM32MP13x Rev.Y 2022-07-12 11:47:34 +02:00
mach-sunxi sunxi: Move INITIAL_USB_SCAN_DELAY to driver Kconfig 2022-07-18 23:48:09 +01:00
mach-tegra Convert CONFIG_TEGRA_GPU to Kconfig 2022-06-28 17:03:31 -04:00
mach-u8500
mach-uniphier serial: Replace CONFIG_DEBUG_UART_BASE by CONFIG_VAL(DEBUG_UART_BASE) 2022-06-06 18:01:21 -04:00
mach-versal spi: cadence_qspi: Enable apb linear mode for apb read & write operations 2022-06-29 16:00:31 +02:00
mach-versatile
mach-zynq spl: Move SPL_LDSCRIPT defaults to one place 2022-06-28 17:03:31 -04:00
mach-zynqmp arm64: zynqmp: Add debug messages to bl2_plat_get_bl31_params() 2022-06-24 14:11:05 +02:00
mach-zynqmp-r5
thumb1/include/asm/proc-armv
config.mk linker_lists: Rename sections to remove . prefix 2022-06-23 12:58:18 -04:00
Kconfig ti: keystone: Don't select GPIO_EXTRA_HEADER 2022-07-12 21:59:54 +02:00
Kconfig.debug
Makefile arm: Remove strongarm support 2022-07-08 17:57:33 -04:00