device_pm: Update control function name and doc to indicate PM specific

PM control function is used only by the PM subsystem. Update
documentations to make it clear and name the relevant structures and
functions with _pm_ in the name.

Jira: ZEP-1044
Change-Id: I29e5b7690db34a228ed30a24a2e912e1360a0090
Signed-off-by: Ramesh Thomas <ramesh.thomas@intel.com>
diff --git a/include/init.h b/include/init.h
index 1274e43..405bb1a 100644
--- a/include/init.h
+++ b/include/init.h
@@ -63,6 +63,9 @@
 /**
  * @def SYS_INIT_PM
  *
+ * @warning This macro is deprecated and will be removed in
+ *        a future version, superseded by SYS_DEVICE_DEFINE.
+ *
  * @brief Run an initialization function at boot at specified priority,
  * and define functions to run at suspend/resume.
  *
@@ -80,8 +83,19 @@
 	DEVICE_INIT(_SYS_NAME(init_fn), "", init_fn, NULL, NULL, level, prio)
 #endif
 
-#define SYS_DEVICE_DEFINE(drv_name, init_fn, control_fn, level, prio) \
-	DEVICE_DEFINE(_SYS_NAME(init_fn), drv_name, init_fn, control_fn, \
+/**
+ * @def SYS_DEVICE_DEFINE
+ *
+ * @brief Run an initialization function at boot at specified priority,
+ * and define device PM control function.
+ *
+ * @copydetails SYS_INIT
+ * @param pm_control_fn Pointer to device_pm_control function.
+ * Can be empty function (device_pm_control_nop) if not implemented.
+ * @param drv_name Name of this system device
+ */
+#define SYS_DEVICE_DEFINE(drv_name, init_fn, pm_control_fn, level, prio) \
+	DEVICE_DEFINE(_SYS_NAME(init_fn), drv_name, init_fn, pm_control_fn, \
 		      NULL, NULL, level, prio, NULL)
 
 #ifdef __cplusplus