scripts: build: check_init_priorities: parse new naming

Update the script to parse the new section naming. The ordering type
is converted from an integer to a tuple, which still compares correctly
due to the elementwise behaviour of tuple comparison.

Signed-off-by: Jordan Yates <jordan.yates@data61.csiro.au>
diff --git a/scripts/build/check_init_priorities.py b/scripts/build/check_init_priorities.py
index 444bb42..4036d89 100755
--- a/scripts/build/check_init_priorities.py
+++ b/scripts/build/check_init_priorities.py
@@ -76,20 +76,23 @@
     def __init__(self, name):
         for idx, level in enumerate(_DEVICE_INIT_LEVELS):
             if level in name:
-                _, priority = name.strip("_").split(level)
+                _, priority_str = name.strip("_").split(level)
+                priority, sub_priority = priority_str.split("_")
                 self._level = idx
                 self._priority = int(priority)
-                self._level_priority = self._level * 100 + self._priority
+                self._sub_priority = int(sub_priority)
+                # Tuples compare elementwise in order
+                self._level_priority = (self._level, self._priority, self._sub_priority)
                 return
 
         raise ValueError("Unknown level in %s" % name)
 
     def __repr__(self):
-        return "<%s %s %d>" % (self.__class__.__name__,
-                               _DEVICE_INIT_LEVELS[self._level], self._priority)
+        return "<%s %s %d %d>" % (self.__class__.__name__,
+                               _DEVICE_INIT_LEVELS[self._level], self._priority, self._sub_priority)
 
     def __str__(self):
-        return "%s %d" % (_DEVICE_INIT_LEVELS[self._level], self._priority)
+        return "%s %d %d" % (_DEVICE_INIT_LEVELS[self._level], self._priority, self._sub_priority)
 
     def __lt__(self, other):
         return self._level_priority < other._level_priority