Alive Clock and Power Manager (ACPM) Message Protocol is defined for
the purpose of communication between the ACPM firmware and masters
(AP, AOC, ...). ACPM firmware operates on the Active Power Management
(APM) module that handles overall power activities.
ACPM and masters regard each other as independent hardware component and
communicate with each other using mailbox messages and shared memory.
This protocol library provides the interface for all the client drivers
making use of the features offered by the APM. Add ACPM protocol support.
Signed-off-by: Tudor Ambarus <tudor.ambarus@xxxxxxxxxx>
---
drivers/firmware/Kconfig | 1 +
drivers/firmware/Makefile | 1 +
drivers/firmware/samsung/Kconfig | 14 +
drivers/firmware/samsung/Makefile | 4 +
drivers/firmware/samsung/exynos-acpm-pmic.c | 226 +++++
drivers/firmware/samsung/exynos-acpm-pmic.h | 24 +
drivers/firmware/samsung/exynos-acpm.c | 772 ++++++++++++++++++
drivers/firmware/samsung/exynos-acpm.h | 15 +
.../linux/soc/samsung/exynos-acpm-protocol.h | 57 ++
9 files changed, 1114 insertions(+)
create mode 100644 drivers/firmware/samsung/Kconfig
create mode 100644 drivers/firmware/samsung/Makefile
create mode 100644 drivers/firmware/samsung/exynos-acpm-pmic.c
create mode 100644 drivers/firmware/samsung/exynos-acpm-pmic.h
create mode 100644 drivers/firmware/samsung/exynos-acpm.c
create mode 100644 drivers/firmware/samsung/exynos-acpm.h
create mode 100644 include/linux/soc/samsung/exynos-acpm-protocol.h
diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig
index 71d8b26c4103..24edb956831b 100644
--- a/drivers/firmware/Kconfig
+++ b/drivers/firmware/Kconfig
@@ -267,6 +267,7 @@ source "drivers/firmware/meson/Kconfig"
source "drivers/firmware/microchip/Kconfig"
source "drivers/firmware/psci/Kconfig"
source "drivers/firmware/qcom/Kconfig"
+source "drivers/firmware/samsung/Kconfig"
source "drivers/firmware/smccc/Kconfig"
source "drivers/firmware/tegra/Kconfig"
source "drivers/firmware/xilinx/Kconfig"
diff --git a/drivers/firmware/Makefile b/drivers/firmware/Makefile
index 7a8d486e718f..91efcc868a05 100644
--- a/drivers/firmware/Makefile
+++ b/drivers/firmware/Makefile
@@ -33,6 +33,7 @@ obj-y += efi/
obj-y += imx/
obj-y += psci/
obj-y += qcom/
+obj-y += samsung/
obj-y += smccc/
obj-y += tegra/
obj-y += xilinx/
diff --git a/drivers/firmware/samsung/Kconfig b/drivers/firmware/samsung/Kconfig
new file mode 100644
index 000000000000..eed8cd8a677b
--- /dev/null
+++ b/drivers/firmware/samsung/Kconfig
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: GPL-2.0-only
+
+config EXYNOS_ACPM_PROTOCOL
+ tristate "Exynos Alive Clock and Power Manager (ACPM) Message Protocol"