diff options
-rw-r--r-- | drivers/video/panel-uclass.c | 11 | ||||
-rw-r--r-- | include/panel.h | 18 |
2 files changed, 29 insertions, 0 deletions
diff --git a/drivers/video/panel-uclass.c b/drivers/video/panel-uclass.c index 2841bb3f3aa..aec44a8bf7a 100644 --- a/drivers/video/panel-uclass.c +++ b/drivers/video/panel-uclass.c @@ -18,6 +18,17 @@ int panel_enable_backlight(struct udevice *dev) return ops->enable_backlight(dev); } +int panel_get_display_timing(struct udevice *dev, + struct display_timing *timings) +{ + struct panel_ops *ops = panel_get_ops(dev); + + if (!ops->get_display_timing) + return -ENOSYS; + + return ops->get_display_timing(dev, timings); +} + UCLASS_DRIVER(panel) = { .id = UCLASS_PANEL, .name = "panel", diff --git a/include/panel.h b/include/panel.h index 46dca48bf75..6237d32657d 100644 --- a/include/panel.h +++ b/include/panel.h @@ -15,6 +15,15 @@ struct panel_ops { * @return 0 if OK, -ve on error */ int (*enable_backlight)(struct udevice *dev); + /** + * get_timings() - Get display timings from panel. + * + * @dev: Panel device containing the display timings + * @tim: Place to put timings + * @return 0 if OK, -ve on error + */ + int (*get_display_timing)(struct udevice *dev, + struct display_timing *timing); }; #define panel_get_ops(dev) ((struct panel_ops *)(dev)->driver->ops) @@ -27,4 +36,13 @@ struct panel_ops { */ int panel_enable_backlight(struct udevice *dev); +/** + * panel_get_display_timing() - Get display timings from panel. + * + * @dev: Panel device containing the display timings + * @return 0 if OK, -ve on error + */ +int panel_get_display_timing(struct udevice *dev, + struct display_timing *timing); + #endif |