panel-uclass.c 1.1 KB

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