u-boot/drivers
Tanmay Shah babee72ff6 mailbox: zynqmp: support mulitple mboxes via device-tree
As of now only one mailbox agent is supported by mailbox driver.
On zynqmp platform there are about 7 mailbox agents which can communicate
over same IPI channel to U-Boot. This patch series introduces new
"zynqmp_ipi_dest" driver which adds one to multi-channel mailbox
support.

Following format in device-tree is expected as per latest bindings:
zynqmp-ipi {
	compatible = "xlnx,zynqmp-ipi-mailbox";

	mbox_1: mailbox@1 {
		/* New compatible for child node */
		compatible = "xlnx,zynqmp-ipi-dest-mailbox";
		...
	};

	...

	mbox_n: mailbox@n {
		compatible = "xlnx,zynqmp-ipi-dest-mailbox";
		...
	}
};

Then mailbox client uses child mailbox node as following:

ipi-dest-1 {
	...
	mboxes = <mbox_1 0>, <mbox_1 1>;
	mbox-names = "tx", "rx";
	...
};

New "zynqmp_ipi_dest" driver is for devices with
"xlnx,zynqmp-ipi-dest-mailbox" compatible string. This driver will take care
of mailbox send recv ops and it replaces previous "zynqmp_ipi" driver.
Now "zynqmp_ipi" driver simply binds each child device with "zynqmp_ipi_dest"
driver.

However, its important to maintain backward comaptibility with previous
bindings where child node does not have compatible string. In such case, new
driver isn't probed by U-Boot during boot and system fails to boot. To
resolve this issue firmware-zynqmp.c driver probes all the IPI parent node
driver which binds each child node device with "zynqmp_ipi_dest" driver.

This makes sure corresponding child driver will be
probed when requested using mbox_get_by_name or mbox_get_by_idx
framework calls.

This way multiple mailbox agents are supported in device-tree without breaking
previous binding support.

Signed-off-by: Tanmay Shah <tanmay.shah@amd.com>
Link: https://lore.kernel.org/r/20231204215620.63334-4-tanmay.shah@amd.com
Signed-off-by: Michal Simek <michal.simek@amd.com>
2023-12-13 08:58:07 +01:00
..
adc dm: adc: imx93-adc depends on ADC (fix boot) 2023-10-18 10:02:49 +02:00
ata Prepare v2024.01-rc3 2023-11-20 09:19:50 -05:00
axi axi: fix definition of axi_sandbox_get_emul() 2023-06-01 12:32:03 -04:00
bios_emulator common: Drop linux/printk.h from common header 2023-09-24 09:54:57 -04:00
block blk: blkmap: add ramdisk creation utility function 2023-11-18 10:08:08 +02:00
bootcount bootcount: Add driver model I2C driver 2023-10-31 09:09:04 +01:00
bus bus: Optionally include TI sysc driver in SPL/TPL 2022-12-02 08:39:00 -05:00
button dm: button: add support for linux_code in button-gpio.c driver 2023-02-10 12:50:01 -05:00
cache drivers: use dev_read_addr_ptr when cast to pointer 2023-05-06 17:28:18 +08:00
clk Prepare v2024.01-rc4 2023-12-04 21:39:57 -05:00
core Prepare v2024.01-rc3 2023-11-20 09:19:50 -05:00
cpu cpu: Remove unused NEEDS_MANUAL_RELOC code bits 2023-09-14 10:42:24 -04:00
crypto Kconfig: Remove all default n/no options 2023-10-30 15:32:49 -04:00
ddr treewide: unify the linker symbol reference format 2023-08-09 09:21:42 -04:00
demo demo: migrate uclass to livetree 2021-10-05 08:50:15 -04:00
dfu dfu: add CONFIG_DFU_NAME_MAX_SIZE configuration 2023-11-21 15:28:15 +01:00
dma dma: ti: k3-udma: Introduce DMA support for the am62ax 2023-11-22 13:46:33 -05:00
extcon extcon: add MAX14526 MUIC support 2023-05-02 14:23:58 -04:00
fastboot cmd: bcb: extend BCB C API to allow read/write the fields 2023-11-16 18:59:58 -05:00
firmware mailbox: zynqmp: support mulitple mboxes via device-tree 2023-12-13 08:58:07 +01:00
fpga arm64: zynqmp: Fix Siva's email address format 2023-10-09 10:25:32 +02:00
fuzz sandbox: Implement fuzzing engine driver 2022-06-23 12:58:19 -04:00
fwu-mdata FWU: Add FWU metadata access driver for MTD storage regions 2023-06-09 13:52:40 -04:00
gpio tree-wide: Replace http:// link with https:// link for ti.com 2023-11-10 11:01:50 -05:00
hwspinlock hwspinlock: Remove unused NEEDS_MANUAL_RELOC code bits 2023-09-14 10:42:24 -04:00
i2c Merge branch 'staging' of https://source.denx.de/u-boot/custodians/u-boot-tegra into next 2023-11-30 09:33:31 -05:00
input input: avoid NULL dereference 2023-10-11 10:35:24 -04:00
iommu iommu: Implement mapping IOMMUs for PCI devices 2023-01-27 14:47:58 -05:00
led drivers: led: bcm6858: do not use null label to find the top 2023-07-25 12:44:46 -04:00
mailbox mailbox: zynqmp: support mulitple mboxes via device-tree 2023-12-13 08:58:07 +01:00
memory configs: keystone2: Do not include hardware.h 2023-11-29 09:32:15 -05:00
mfd mfd: syscon: atmel-smc: Add new helpers to ease SMC regs manipulation 2022-12-08 18:06:27 +02:00
misc Merge branch '2023-11-10-assorted-fixes' 2023-11-10 11:01:51 -05:00
mmc Prepare v2024.01-rc3 2023-11-20 09:19:50 -05:00
mtd Merge patch series "Import "string" I/O functions from Linux" 2023-11-28 16:19:19 -05:00
mux tree-wide: Replace http:// link with https:// link for ti.com 2023-11-10 11:01:50 -05:00
net net: axi_emac: Use reg property for DMA registers 2023-12-13 08:58:06 +01:00
nvme blk: Use a macro for the typical block size 2023-10-10 16:19:29 -04:00
pch x86: Convert some debug statements to use logging 2023-07-17 17:23:14 +08:00
pci pci: xilinx: Enable MMIO region 2023-12-13 08:58:06 +01:00
pci_endpoint
phy Prepare v2024.01-rc3 2023-11-20 09:19:50 -05:00
pinctrl Prepare v2024.01-rc3 2023-11-20 09:19:50 -05:00
power power: regulator: add AXP313 support 2023-11-12 16:47:16 +00:00
pwm treewide: use linux/time.h for time conversion defines 2023-11-16 18:59:58 -05:00
qe qe: Add <asm/ppc.h> on PowerPC 2023-11-07 14:50:51 -05:00
ram tree-wide: Replace http:// link with https:// link for ti.com 2023-11-10 11:01:50 -05:00
reboot-mode reboot-mode: Add NVMEM reboot mode 2023-01-11 11:54:50 -05:00
remoteproc tree-wide: Replace http:// link with https:// link for ti.com 2023-11-10 11:01:50 -05:00
reset tree-wide: Replace http:// link with https:// link for ti.com 2023-11-10 11:01:50 -05:00
rng rng: Add StarFive JH7110 RNG driver 2023-11-02 17:45:53 +08:00
rtc drivers: rtc: max313xx: provide read8/write8 2023-07-25 12:44:46 -04:00
scsi Prepare v2024.01-rc3 2023-11-20 09:19:50 -05:00
serial Prepare v2024.01-rc4 2023-12-04 21:39:57 -05:00
sm drivers: sm: bind child sm devices in the device tree 2023-11-06 09:45:47 +01:00
smem smem: msm: add missing <linux/sizes.h> 2022-10-12 08:56:24 -04:00
soc configs: keystone2: Do not include hardware.h 2023-11-29 09:32:15 -05:00
sound test: test sandbox sound driver more rigorously 2022-12-05 17:43:21 +01:00
spi drivers: xilinx_spi: Probe fifo_depth at runtime 2023-12-13 08:58:06 +01:00
spmi spmi: msm: add arbiter version 5 support 2021-10-31 08:46:44 -04:00
sysinfo sysinfo: Allow displaying more info on startup 2023-11-28 12:53:04 -05:00
sysreset Prepare v2024.01-rc3 2023-11-20 09:19:50 -05:00
tee drivers: tee: sandbox: Fix SCP03 control emulator 2023-04-28 11:30:17 -06:00
thermal tree-wide: Replace http:// link with https:// link for ti.com 2023-11-10 11:01:50 -05:00
timer timer-uclass: Always use "clock-frequency" property as fallback 2023-11-29 09:32:15 -05:00
tpm tpm: remove superfluous check in tpm_tis_send() 2023-11-22 10:03:55 +02:00
ufs Merge patch series "ufs: Add a PCI UFS controller support" 2023-11-27 16:19:09 -05:00
usb Prepare v2024.01-rc4 2023-12-04 21:39:57 -05:00
video treewide: use linux/time.h for time conversion defines 2023-11-16 18:59:58 -05:00
virtio Prepare v2024.01-rc3 2023-11-20 09:19:50 -05:00
w1 dm: treewide: Do not use the return value of simple uclass iterator 2022-10-29 07:36:33 -06:00
w1-eeprom
watchdog Prepare v2024.01-rc4 2023-12-04 21:39:57 -05:00
xen xen: pvblock: fix the maximum io size in one operation 2023-11-29 09:32:15 -05:00
Kconfig drivers: introduce Secure Monitor uclass 2023-10-15 12:23:48 +02:00
Makefile sunxi: add R528/T113-s3/D1(s) DRAM initialisation code 2023-10-22 23:41:52 +01:00