pm: device: Dynamically add a device to a power domain
Add API to add devices to a power domain in runtime. The number of
devices that can be added is defined in build time.
The script gen_handles.py will check the number defined in
`CONFIG_PM_DEVICE_POWER_DOMAIN_DYNAMIC` to resize the handles vector,
adding empty slots in the supported sector to be used later.
Signed-off-by: Flavio Ceolin <flavio.ceolin@intel.com>
diff --git a/scripts/gen_handles.py b/scripts/gen_handles.py
index aa046a1..ba027e1 100755
--- a/scripts/gen_handles.py
+++ b/scripts/gen_handles.py
@@ -62,6 +62,8 @@
parser.add_argument("-k", "--kernel", required=True,
help="Input zephyr ELF binary")
+ parser.add_argument("-d", "--num-dynamic-devices", required=False, default=0,
+ type=int, help="Input number of dynamic devices allowed")
parser.add_argument("-o", "--output-source", required=True,
help="Output source file")
@@ -112,6 +114,7 @@
# These match the corresponding constants in <device.h>
DEVICE_HANDLE_SEP = -32768
DEVICE_HANDLE_ENDS = 32767
+DEVICE_HANDLE_NULL = 0
def handle_name(hdl):
if hdl == DEVICE_HANDLE_SEP:
return "DEVICE_HANDLE_SEP"
@@ -336,6 +339,7 @@
else:
sup_paths.append('(%s)' % dn.path)
hdls.extend(dn.__device.dev_handle for dn in sn.__supports)
+ hdls.extend(DEVICE_HANDLE_NULL for dn in range(args.num_dynamic_devices))
# Terminate the array with the end symbol
hdls.append(DEVICE_HANDLE_ENDS)