Merge tag 'dm-pull-30oct20' of https://gitlab.denx.de/u-boot/custodians/u-boot-dm
[platform/kernel/u-boot.git] / include / asm-generic / global_data.h
index db83f59..f392043 100644 (file)
@@ -24,6 +24,8 @@
 #include <membuff.h>
 #include <linux/list.h>
 
+struct driver_rt;
+
 typedef struct global_data gd_t;
 
 /**
@@ -192,6 +194,10 @@ struct global_data {
         * @uclass_root: head of core tree
         */
        struct list_head uclass_root;
+# if CONFIG_IS_ENABLED(OF_PLATDATA)
+        /** Dynamic info about the driver */
+       struct driver_rt *dm_driver_rt;
+# endif
 #endif
 #ifdef CONFIG_TIMER
        /**
@@ -211,7 +217,7 @@ struct global_data {
         * @fdt_size: space reserved for relocated device space
         */
        unsigned long fdt_size;
-#ifdef CONFIG_OF_LIVE
+#if CONFIG_IS_ENABLED(OF_LIVE)
        /**
         * @of_root: root node of the live tree
         */
@@ -371,6 +377,18 @@ struct global_data {
         * while another message is being processed.
         */
        bool processing_msg;
+       /**
+        * @logc_prev: logging category of previous message
+        *
+        * This value is used as logging category for continuation messages.
+        */
+       int logc_prev;
+       /**
+        * @logl_prev: logging level of the previous message
+        *
+        * This value is used as logging level for continuation messages.
+        */
+       int logl_prev;
 #endif
 #if CONFIG_IS_ENABLED(BLOBLIST)
        /**
@@ -415,6 +433,25 @@ struct global_data {
 #define gd_board_type()                0
 #endif
 
+/* These macros help avoid #ifdefs in the code */
+#if CONFIG_IS_ENABLED(OF_LIVE)
+#define gd_of_root()           gd->of_root
+#define gd_of_root_ptr()       &gd->of_root
+#define gd_set_of_root(_root)  gd->of_root = (_root)
+#else
+#define gd_of_root()           NULL
+#define gd_of_root_ptr()       NULL
+#define gd_set_of_root(_root)
+#endif
+
+#if CONFIG_IS_ENABLED(OF_PLATDATA)
+#define gd_set_dm_driver_rt(dyn)       gd->dm_driver_rt = dyn
+#define gd_dm_driver_rt()              gd->dm_driver_rt
+#else
+#define gd_set_dm_driver_rt(dyn)
+#define gd_dm_driver_rt()              NULL
+#endif
+
 /**
  * enum gd_flags - global data flags
  *