phy: atheros: Clarify the intention of ar8021_config
[oweals/u-boot.git] / include / display.h
index b1c476628b4f9aa0cb882e435f0535a681a92df3..66294616ea2919208f308959fb52327a66bbb730 100644 (file)
@@ -1,7 +1,6 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
 /*
  * Copyright 2014 Google Inc.
- *
- * SPDX-License-Identifier:     GPL-2.0+
  */
 
 #ifndef _DISPLAY_H
@@ -16,10 +15,12 @@ struct display_timing;
  * @source_id: ID for the source of the display data, typically a video
  * controller
  * @src_dev:   Source device providing the video
+ * @in_use:    Display is being used
  */
 struct display_plat {
        int source_id;
        struct udevice *src_dev;
+       bool in_use;
 };
 
 /**
@@ -41,6 +42,14 @@ int display_read_timing(struct udevice *dev, struct display_timing *timing);
 int display_enable(struct udevice *dev, int panel_bpp,
                   const struct display_timing *timing);
 
+/**
+ * display_in_use() - Check if a display is in use by any device
+ *
+ * @return true if the device is in use (display_enable() has been called
+ * successfully), else false
+ */
+bool display_in_use(struct udevice *dev);
+
 struct dm_display_ops {
        /**
         * read_timing() - Read information directly
@@ -71,6 +80,16 @@ struct dm_display_ops {
         */
        int (*enable)(struct udevice *dev, int panel_bpp,
                      const struct display_timing *timing);
+
+       /**
+        * mode_valid() - Check if mode is supported
+        *
+        * @dev:        Device to enable
+        * @timing:     Display timings
+        * @return true if supported, false if not
+        */
+       bool (*mode_valid)(struct udevice *dev,
+                          const struct display_timing *timing);
 };
 
 #define display_get_ops(dev)   ((struct dm_display_ops *)(dev)->driver->ops)