summaryrefslogtreecommitdiff
path: root/arch/arm/mach-socfpga/include/mach/altera-sysmgr.h
diff options
context:
space:
mode:
authorTien Fong Chee <tien.fong.chee@intel.com>2024-09-18 16:43:02 +0800
committerTom Rini <trini@konsulko.com>2025-02-25 10:53:31 -0600
commit35638172f99a4974489a8ea85f4727382bcde22d (patch)
treed1f149128f874cd89d2d40dbeb1b9fc1231b32f5 /arch/arm/mach-socfpga/include/mach/altera-sysmgr.h
parentcbb6b57d3edf4a14aea22558a16a694100665524 (diff)
arm: socfpga: agilex5: Add new driver model for system manager in Agilex5
Initial creation of new system manager driver. Add supports for the SOCFPGA System Manager Register block which aggregates different peripheral function into one area. On 64 bit ARM parts, the system manager only can be accessed during EL3 mode, this driver model provide user the high level access to system register and abstract user from low level access. The base address of system manager can be retrieved using DT framework through the System Manager driver. Signed-off-by: Tien Fong Chee <tien.fong.chee@altera.com> Signed-off-by: Boon Khai Ng <boon.khai.ng@altera.com>
Diffstat (limited to 'arch/arm/mach-socfpga/include/mach/altera-sysmgr.h')
-rw-r--r--arch/arm/mach-socfpga/include/mach/altera-sysmgr.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/mach-socfpga/include/mach/altera-sysmgr.h b/arch/arm/mach-socfpga/include/mach/altera-sysmgr.h
new file mode 100644
index 00000000000..8516617efe5
--- /dev/null
+++ b/arch/arm/mach-socfpga/include/mach/altera-sysmgr.h
@@ -0,0 +1,16 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright (C) 2025 Altera Corporation <www.altera.com>
+ */
+
+struct altr_sysmgr_ops {
+ int (*read)(struct udevice *dev, u32 *addr, u32 *value);
+ int (*write)(struct udevice *dev, u32 *addr, u32 value);
+};
+
+struct altr_sysmgr_priv {
+ void __iomem *regs;
+};
+
+#define altr_sysmgr_get_ops(dev) ((struct altr_sysmgr_ops *)(dev)->driver->ops)
+#define altr_sysmgr_get_priv(dev) ((struct altr_sysmgr_priv *)(dev_get_priv(dev)))