aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/firmware/xilinx/zynqmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/firmware/xilinx/zynqmp.c')
-rw-r--r--drivers/firmware/xilinx/zynqmp.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/drivers/firmware/xilinx/zynqmp.c b/drivers/firmware/xilinx/zynqmp.c
index 70b50377ae5f..16a23bc4c2c3 100644
--- a/drivers/firmware/xilinx/zynqmp.c
+++ b/drivers/firmware/xilinx/zynqmp.c
@@ -187,6 +187,29 @@ static int zynqmp_pm_get_api_version(u32 *version)
187} 187}
188 188
189/** 189/**
190 * zynqmp_pm_get_chipid - Get silicon ID registers
191 * @idcode: IDCODE register
192 * @version: version register
193 *
194 * Return: Returns the status of the operation and the idcode and version
195 * registers in @idcode and @version.
196 */
197static int zynqmp_pm_get_chipid(u32 *idcode, u32 *version)
198{
199 u32 ret_payload[PAYLOAD_ARG_CNT];
200 int ret;
201
202 if (!idcode || !version)
203 return -EINVAL;
204
205 ret = zynqmp_pm_invoke_fn(PM_GET_CHIPID, 0, 0, 0, 0, ret_payload);
206 *idcode = ret_payload[1];
207 *version = ret_payload[2];
208
209 return ret;
210}
211
212/**
190 * zynqmp_pm_get_trustzone_version() - Get secure trustzone firmware version 213 * zynqmp_pm_get_trustzone_version() - Get secure trustzone firmware version
191 * @version: Returned version value 214 * @version: Returned version value
192 * 215 *
@@ -509,6 +532,7 @@ static int zynqmp_pm_reset_get_status(const enum zynqmp_pm_reset reset,
509 532
510static const struct zynqmp_eemi_ops eemi_ops = { 533static const struct zynqmp_eemi_ops eemi_ops = {
511 .get_api_version = zynqmp_pm_get_api_version, 534 .get_api_version = zynqmp_pm_get_api_version,
535 .get_chipid = zynqmp_pm_get_chipid,
512 .query_data = zynqmp_pm_query_data, 536 .query_data = zynqmp_pm_query_data,
513 .clock_enable = zynqmp_pm_clock_enable, 537 .clock_enable = zynqmp_pm_clock_enable,
514 .clock_disable = zynqmp_pm_clock_disable, 538 .clock_disable = zynqmp_pm_clock_disable,