summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorHarsh Jain <h.jain@amd.com>2025-12-20 21:28:54 +0530
committerHerbert Xu <herbert@gondor.apana.org.au>2026-01-23 13:48:43 +0800
commit465d7831261965248a7a1484bd186066d29427f0 (patch)
treecba67ca45292b0d5608801df1c91d6e9e447f289 /include/linux
parentc7a768f57de0ebd7a9149d1dab1dadb9c5409d5f (diff)
firmware: zynqmp: Add helper API to self discovery the device
Add API to get SoC version and family info. Signed-off-by: Harsh Jain <h.jain@amd.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/firmware/xlnx-zynqmp-crypto.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/linux/firmware/xlnx-zynqmp-crypto.h b/include/linux/firmware/xlnx-zynqmp-crypto.h
index f9eb523ba6a0..cb08f412e931 100644
--- a/include/linux/firmware/xlnx-zynqmp-crypto.h
+++ b/include/linux/firmware/xlnx-zynqmp-crypto.h
@@ -9,9 +9,23 @@
#ifndef __FIRMWARE_XLNX_ZYNQMP_CRYPTO_H__
#define __FIRMWARE_XLNX_ZYNQMP_CRYPTO_H__
+/**
+ * struct xlnx_feature - Feature data
+ * @family: Family code of platform
+ * @subfamily: Subfamily code of platform
+ * @feature_id: Feature id of module
+ * @data: Collection of all supported platform data
+ */
+struct xlnx_feature {
+ u32 family;
+ u32 feature_id;
+ void *data;
+};
+
#if IS_REACHABLE(CONFIG_ZYNQMP_FIRMWARE)
int zynqmp_pm_aes_engine(const u64 address, u32 *out);
int zynqmp_pm_sha_hash(const u64 address, const u32 size, const u32 flags);
+void *xlnx_get_crypto_dev_data(struct xlnx_feature *feature_map);
#else
static inline int zynqmp_pm_aes_engine(const u64 address, u32 *out)
{
@@ -23,6 +37,11 @@ static inline int zynqmp_pm_sha_hash(const u64 address, const u32 size,
{
return -ENODEV;
}
+
+static inline void *xlnx_get_crypto_dev_data(struct xlnx_feature *feature_map)
+{
+ return ERR_PTR(-ENODEV);
+}
#endif
#endif /* __FIRMWARE_XLNX_ZYNQMP_CRYPTO_H__ */