diff --git a/plat/xilinx/zynqmp/pm_service/pm_api_sys.h b/plat/xilinx/zynqmp/pm_service/pm_api_sys.h
index 84b239c..5903c08 100644
--- a/plat/xilinx/zynqmp/pm_service/pm_api_sys.h
+++ b/plat/xilinx/zynqmp/pm_service/pm_api_sys.h
@@ -70,12 +70,12 @@
  **********************************************************/
 enum pm_ret_status pm_req_suspend(enum pm_node_id target,
 				  enum pm_request_ack ack,
-				  unsigned int latency,
-				  unsigned int state);
+				  uint32_t latency,
+				  uint32_t state);
 
 enum pm_ret_status pm_self_suspend(enum pm_node_id nid,
-				   unsigned int latency,
-				   unsigned int state,
+				   uint32_t latency,
+				   uint32_t state,
 				   uintptr_t address);
 
 enum pm_ret_status pm_force_powerdown(enum pm_node_id target,
@@ -84,53 +84,53 @@
 enum pm_ret_status pm_abort_suspend(enum pm_abort_reason reason);
 
 enum pm_ret_status pm_req_wakeup(enum pm_node_id target,
-				 unsigned int set_address,
+				 uint32_t set_address,
 				 uintptr_t address,
 				 enum pm_request_ack ack);
 
 enum pm_ret_status pm_set_wakeup_source(enum pm_node_id target,
 					enum pm_node_id wkup_node,
-					unsigned int enable);
+					uint32_t enable);
 
-enum pm_ret_status pm_system_shutdown(unsigned int type, unsigned int subtype);
+enum pm_ret_status pm_system_shutdown(uint32_t type, uint32_t subtype);
 
 enum pm_ret_status pm_init_suspend_cb(enum pm_suspend_reason reason,
-				      unsigned int latency,
-				      unsigned int state,
-				      unsigned int timeout);
+				      uint32_t latency,
+				      uint32_t state,
+				      uint32_t timeout);
 
 /* API functions for managing PM Slaves */
 enum pm_ret_status pm_req_node(enum pm_node_id nid,
-			       unsigned int capabilities,
-			       unsigned int qos,
+			       uint32_t capabilities,
+			       uint32_t qos,
 			       enum pm_request_ack ack);
 
 enum pm_ret_status pm_set_requirement(enum pm_node_id nid,
-				      unsigned int capabilities,
-				      unsigned int qos,
+				      uint32_t capabilities,
+				      uint32_t qos,
 				      enum pm_request_ack ack);
 
 /* Miscellaneous API functions */
-enum pm_ret_status pm_get_api_version(unsigned int *version);
+enum pm_ret_status pm_get_api_version(uint32_t *version);
 enum pm_ret_status pm_get_node_status(enum pm_node_id nid,
 				      uint32_t *ret_buff);
 enum pm_ret_status pm_acknowledge_cb(enum pm_node_id nid,
 				     enum pm_ret_status status,
-				     unsigned int oppoint);
+				     uint32_t oppoint);
 enum pm_ret_status pm_notify_cb(enum pm_node_id nid,
-				unsigned int event,
-				unsigned int oppoint);
+				uint32_t event,
+				uint32_t oppoint);
 
 /* Direct-Control API functions */
 enum pm_ret_status pm_mmio_write(uintptr_t address,
-				 unsigned int mask,
-				 unsigned int value);
-enum pm_ret_status pm_mmio_read(uintptr_t address, unsigned int *value);
+				 uint32_t mask,
+				 uint32_t value);
+enum pm_ret_status pm_mmio_read(uintptr_t address, uint32_t *value);
 enum pm_ret_status pm_fpga_load(uint32_t address_low,
 				uint32_t address_high,
 				uint32_t size,
 				uint32_t flags);
-enum pm_ret_status pm_fpga_get_status(unsigned int *value);
+enum pm_ret_status pm_fpga_get_status(uint32_t *value);
 
 enum pm_ret_status pm_get_chipid(uint32_t *value);
 enum pm_ret_status pm_secure_rsaaes(uint32_t address_low,
@@ -140,28 +140,28 @@
 unsigned int pm_get_shutdown_scope(void);
 void pm_get_callbackdata(uint32_t *data, size_t count);
 enum pm_ret_status pm_ioctl(enum pm_node_id nid,
-			    unsigned int ioctl_id,
-			    unsigned int arg1,
-			    unsigned int arg2,
-			    unsigned int *value);
-enum pm_ret_status pm_clock_enable(unsigned int clock_id);
-enum pm_ret_status pm_clock_disable(unsigned int clock_id);
-enum pm_ret_status pm_clock_getstate(unsigned int clock_id,
-				     unsigned int *state);
-enum pm_ret_status pm_clock_setdivider(unsigned int clock_id,
-				       unsigned int divider);
-enum pm_ret_status pm_clock_getdivider(unsigned int clock_id,
-				       unsigned int *divider);
-enum pm_ret_status pm_clock_setrate(unsigned int clock_id,
+			    uint32_t ioctl_id,
+			    uint32_t arg1,
+			    uint32_t arg2,
+			    uint32_t *value);
+enum pm_ret_status pm_clock_enable(uint32_t clock_id);
+enum pm_ret_status pm_clock_disable(uint32_t clock_id);
+enum pm_ret_status pm_clock_getstate(uint32_t clock_id,
+				     uint32_t *state);
+enum pm_ret_status pm_clock_setdivider(uint32_t clock_id,
+				       uint32_t divider);
+enum pm_ret_status pm_clock_getdivider(uint32_t clock_id,
+				       uint32_t *divider);
+enum pm_ret_status pm_clock_setrate(uint32_t clock_id,
 				    uint64_t rate);
-enum pm_ret_status pm_clock_getrate(unsigned int clock_id,
+enum pm_ret_status pm_clock_getrate(uint32_t clock_id,
 				    uint64_t *rate);
-enum pm_ret_status pm_clock_setparent(unsigned int clock_id,
-				      unsigned int parent_index);
-enum pm_ret_status pm_clock_getparent(unsigned int clock_id,
-				      unsigned int *parent_index);
-void pm_query_data(enum pm_query_id qid, unsigned int arg1, unsigned int arg2,
-		   unsigned int arg3, unsigned int *data);
+enum pm_ret_status pm_clock_setparent(uint32_t clock_id,
+				      uint32_t parent_index);
+enum pm_ret_status pm_clock_getparent(uint32_t clock_id,
+				      uint32_t *parent_index);
+void pm_query_data(enum pm_query_id qid, uint32_t arg1, uint32_t arg2,
+		   uint32_t arg3, uint32_t *data);
 enum pm_ret_status pm_sha_hash(uint32_t address_high,
 				    uint32_t address_low,
 				    uint32_t size,
@@ -183,28 +183,28 @@
 enum pm_ret_status pm_aes_engine(uint32_t address_high,
 				 uint32_t address_low,
 				 uint32_t  *value);
-enum pm_ret_status pm_register_access(unsigned int register_access_id,
-				      unsigned int address,
-				      unsigned int mask,
-				      unsigned int value,
-				      unsigned int *out);
+enum pm_ret_status pm_register_access(uint32_t register_access_id,
+				      uint32_t address,
+				      uint32_t mask,
+				      uint32_t value,
+				      uint32_t *out);
 enum pm_ret_status pm_pll_set_parameter(enum pm_node_id nid,
 					enum pm_pll_param param_id,
-					unsigned int value);
+					uint32_t value);
 enum pm_ret_status pm_pll_get_parameter(enum pm_node_id nid,
 					enum pm_pll_param param_id,
-					unsigned int *value);
+					uint32_t *value);
 enum pm_ret_status pm_pll_set_mode(enum pm_node_id nid, enum pm_pll_mode mode);
 enum pm_ret_status pm_pll_get_mode(enum pm_node_id nid, enum pm_pll_mode *mode);
 enum pm_ret_status pm_efuse_access(uint32_t address_high,
 				   uint32_t address_low, uint32_t *value);
-enum pm_ret_status em_set_action(unsigned int *value);
-enum pm_ret_status em_remove_action(unsigned int *value);
-enum pm_ret_status em_send_errors(unsigned int *value);
-enum pm_ret_status pm_feature_config(unsigned int ioctl_id,
-				     unsigned int config_id,
-				     unsigned int value,
-				     unsigned int *response);
+enum pm_ret_status em_set_action(uint32_t *value);
+enum pm_ret_status em_remove_action(uint32_t *value);
+enum pm_ret_status em_send_errors(uint32_t *value);
+enum pm_ret_status pm_feature_config(uint32_t ioctl_id,
+				     uint32_t config_id,
+				     uint32_t value,
+				     uint32_t *response);
 enum pm_ret_status pm_feature_check(uint32_t api_id, uint32_t *version,
 				    uint32_t *bit_mask, uint8_t len);
 enum pm_ret_status check_api_dependency(uint8_t id);
