1 ==================================== 1 ==================================== 2 Xilinx Zynq MPSoC EEMI Documentation 2 Xilinx Zynq MPSoC EEMI Documentation 3 ==================================== 3 ==================================== 4 4 5 Xilinx Zynq MPSoC Firmware Interface 5 Xilinx Zynq MPSoC Firmware Interface 6 ------------------------------------- 6 ------------------------------------- 7 The zynqmp-firmware node describes the interfa 7 The zynqmp-firmware node describes the interface to platform firmware. 8 ZynqMP has an interface to communicate with se 8 ZynqMP has an interface to communicate with secure firmware. Firmware 9 driver provides an interface to firmware APIs. 9 driver provides an interface to firmware APIs. Interface APIs can be 10 used by any driver to communicate with PMC(Pla 10 used by any driver to communicate with PMC(Platform Management Controller). 11 11 12 Embedded Energy Management Interface (EEMI) 12 Embedded Energy Management Interface (EEMI) 13 ---------------------------------------------- 13 ---------------------------------------------- 14 The embedded energy management interface is us 14 The embedded energy management interface is used to allow software 15 components running across different processing 15 components running across different processing clusters on a chip or 16 device to communicate with a power management 16 device to communicate with a power management controller (PMC) on a 17 device to issue or respond to power management 17 device to issue or respond to power management requests. 18 18 19 Any driver who wants to communicate with PMC u !! 19 EEMI ops is a structure containing all eemi APIs supported by Zynq MPSoC. 20 functions provided for each function. !! 20 The zynqmp-firmware driver maintain all EEMI APIs in zynqmp_eemi_ops >> 21 structure. Any driver who want to communicate with PMC using EEMI APIs >> 22 can call zynqmp_pm_get_eemi_ops(). >> 23 >> 24 Example of EEMI ops:: >> 25 >> 26 /* zynqmp-firmware driver maintain all EEMI APIs */ >> 27 struct zynqmp_eemi_ops { >> 28 int (*get_api_version)(u32 *version); >> 29 int (*query_data)(struct zynqmp_pm_query_data qdata, u32 *out); >> 30 }; >> 31 >> 32 static const struct zynqmp_eemi_ops eemi_ops = { >> 33 .get_api_version = zynqmp_pm_get_api_version, >> 34 .query_data = zynqmp_pm_query_data, >> 35 }; >> 36 >> 37 Example of EEMI ops usage:: >> 38 >> 39 static const struct zynqmp_eemi_ops *eemi_ops; >> 40 u32 ret_payload[PAYLOAD_ARG_CNT]; >> 41 int ret; >> 42 >> 43 eemi_ops = zynqmp_pm_get_eemi_ops(); >> 44 if (IS_ERR(eemi_ops)) >> 45 return PTR_ERR(eemi_ops); >> 46 >> 47 ret = eemi_ops->query_data(qdata, ret_payload); 21 48 22 IOCTL 49 IOCTL 23 ------ 50 ------ 24 IOCTL API is for device control and configurat 51 IOCTL API is for device control and configuration. It is not a system 25 IOCTL but it is an EEMI API. This API can be u 52 IOCTL but it is an EEMI API. This API can be used by master to control 26 any device specific configuration. IOCTL defin 53 any device specific configuration. IOCTL definitions can be platform 27 specific. This API also manage shared device c 54 specific. This API also manage shared device configuration. 28 55 29 The following IOCTL IDs are valid for device c 56 The following IOCTL IDs are valid for device control: 30 - IOCTL_SET_PLL_FRAC_MODE 8 57 - IOCTL_SET_PLL_FRAC_MODE 8 31 - IOCTL_GET_PLL_FRAC_MODE 9 58 - IOCTL_GET_PLL_FRAC_MODE 9 32 - IOCTL_SET_PLL_FRAC_DATA 10 59 - IOCTL_SET_PLL_FRAC_DATA 10 33 - IOCTL_GET_PLL_FRAC_DATA 11 60 - IOCTL_GET_PLL_FRAC_DATA 11 34 61 35 Refer EEMI API guide [0] for IOCTL specific pa 62 Refer EEMI API guide [0] for IOCTL specific parameters and other EEMI APIs. 36 63 37 References 64 References 38 ---------- 65 ---------- 39 [0] Embedded Energy Management Interface (EEMI 66 [0] Embedded Energy Management Interface (EEMI) API guide: 40 https://www.xilinx.com/support/documentati 67 https://www.xilinx.com/support/documentation/user_guides/ug1200-eemi-api.pdf
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.