zynqmp: firmware: Add Xilinx ZynqMP firmware driver
authorRajan Vaja <rajan.vaja@xilinx.com>
Fri, 15 Feb 2019 12:45:32 +0000 (04:45 -0800)
committerMichal Simek <michal.simek@xilinx.com>
Tue, 8 Oct 2019 07:11:14 +0000 (09:11 +0200)
Add simple ZynqMP firmware drive to populate child nodes under
zynqmp_firmware DT node.

Signed-off-by: Rajan Vaja <rajan.vaja@xilinx.com>
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
MAINTAINERS
drivers/clk/Kconfig
drivers/firmware/Kconfig
drivers/firmware/Makefile
drivers/firmware/firmware-zynqmp.c [new file with mode: 0644]

index 3302f9f9d12035f7e99d914f7a52c5e7b1988ba1..59c766f2066a3ae4fa884143064daf6fe4d6ecaa 100644 (file)
@@ -443,6 +443,7 @@ S:  Maintained
 T:     git https://gitlab.denx.de/u-boot/custodians/u-boot-microblaze.git
 F:     arch/arm/mach-zynqmp/
 F:     drivers/clk/clk_zynqmp.c
+F:     driver/firmware/firmware-zynqmp.c
 F:     drivers/fpga/zynqpl.c
 F:     drivers/gpio/zynq_gpio.c
 F:     drivers/i2c/i2c-cdns.c
index 95fe0aea2ce8cd885facd35d75f2b06cdc43cf73..305cbd96f165487ce3ed24c1cab3b5dbf614ceab 100644 (file)
@@ -113,6 +113,7 @@ config CLK_ZYNQ
 config CLK_ZYNQMP
        bool "Enable clock driver support for ZynqMP"
        depends on ARCH_ZYNQMP
+       select ZYNQMP_FIRMWARE
        help
          This clock driver adds support for clock realted settings for
          ZynqMP platform.
index 873bc8c7967995dd6e9ef4b812fe391a84e475e7..b70a2063551c3444bb3c78377fc1a89fd65aa8b2 100644 (file)
@@ -26,3 +26,13 @@ config TI_SCI_PROTOCOL
 
          This protocol library is used by client drivers to use the features
          provided by the system controller.
+
+config ZYNQMP_FIRMWARE
+       bool "ZynqMP Firmware interface"
+       select FIRMWARE
+       help
+         Firmware interface driver is used by different
+         drivers to communicate with the firmware for
+         various platform management services.
+         Say yes to enable ZynqMP firmware interface driver.
+         If in doubt, say N.
index 6c3e1296852743e1a66831a58e7733d7447e1214..a0c250a473eb7f1cff44322a9bfc520bf2083445 100644 (file)
@@ -2,3 +2,4 @@ obj-$(CONFIG_FIRMWARE)          += firmware-uclass.o
 obj-$(CONFIG_$(SPL_)ARM_PSCI_FW)       += psci.o
 obj-$(CONFIG_TI_SCI_PROTOCOL)  += ti_sci.o
 obj-$(CONFIG_SANDBOX)          += firmware-sandbox.o
+obj-$(CONFIG_ZYNQMP_FIRMWARE)  += firmware-zynqmp.o
diff --git a/drivers/firmware/firmware-zynqmp.c b/drivers/firmware/firmware-zynqmp.c
new file mode 100644 (file)
index 0000000..b36eda1
--- /dev/null
@@ -0,0 +1,15 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <dm.h>
+
+static const struct udevice_id zynqmp_firmware_ids[] = {
+       { .compatible = "xlnx,zynqmp-firmware" },
+       { }
+};
+
+U_BOOT_DRIVER(zynqmp_firmware) = {
+       .id = UCLASS_FIRMWARE,
+       .name = "zynqmp-firmware",
+       .probe = dm_scan_fdt_dev,
+       .of_match = zynqmp_firmware_ids,
+};