panel-uclass.c 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. // SPDX-License-Identifier: GPL-2.0+
  2. /*
  3. * Copyright (c) 2016 Google, Inc
  4. * Written by Simon Glass <sjg@chromium.org>
  5. */
  6. #define LOG_CATEGORY UCLASS_PANEL
  7. #include <common.h>
  8. #include <dm.h>
  9. #include <panel.h>
  10. int panel_enable_backlight(struct udevice *dev)
  11. {
  12. struct panel_ops *ops = panel_get_ops(dev);
  13. if (!ops->enable_backlight)
  14. return -ENOSYS;
  15. return ops->enable_backlight(dev);
  16. }
  17. /**
  18. * panel_set_backlight - Set brightness for the panel backlight
  19. *
  20. * @dev: Panel device containing the backlight to update
  21. * @percent: Brightness value (0=off, 1=min brightness,
  22. * 100=full brightness)
  23. * @return 0 if OK, -ve on error
  24. */
  25. int panel_set_backlight(struct udevice *dev, int percent)
  26. {
  27. struct panel_ops *ops = panel_get_ops(dev);
  28. if (!ops->set_backlight)
  29. return -ENOSYS;
  30. return ops->set_backlight(dev, percent);
  31. }
  32. int panel_get_display_timing(struct udevice *dev,
  33. struct display_timing *timings)
  34. {
  35. struct panel_ops *ops = panel_get_ops(dev);
  36. if (!ops->get_display_timing)
  37. return -ENOSYS;
  38. return ops->get_display_timing(dev, timings);
  39. }
  40. UCLASS_DRIVER(panel) = {
  41. .id = UCLASS_PANEL,
  42. .name = "panel",
  43. };