backlight.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /*
  2. * Copyright (c) 2006-2023, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2023-02-25 GuEe-GUI the first version
  9. */
  10. #ifndef __BACKLIGHT_H__
  11. #define __BACKLIGHT_H__
  12. #include <rthw.h>
  13. #include <rtdef.h>
  14. struct rt_backlight_ops;
  15. enum rt_backlight_power
  16. {
  17. RT_BACKLIGHT_POWER_UNBLANK,
  18. RT_BACKLIGHT_POWER_NORMAL,
  19. RT_BACKLIGHT_POWER_SUSPEND,
  20. RT_BACKLIGHT_POWER_POWERDOWN,
  21. RT_BACKLIGHT_POWER_NR,
  22. };
  23. struct rt_backlight_properties
  24. {
  25. rt_uint32_t brightness;
  26. rt_uint32_t max_brightness;
  27. enum rt_backlight_power power;
  28. };
  29. struct rt_backlight_device
  30. {
  31. struct rt_device parent;
  32. struct rt_backlight_properties props;
  33. const struct rt_backlight_ops *ops;
  34. struct rt_mutex lock;
  35. void *priv;
  36. };
  37. struct rt_backlight_ops
  38. {
  39. rt_err_t (*update_status)(struct rt_backlight_device *);
  40. rt_err_t (*get_brightness)(struct rt_backlight_device *, rt_uint32_t *out_brightness);
  41. };
  42. rt_err_t rt_backlight_register(struct rt_backlight_device *bl);
  43. rt_err_t rt_backlight_unregister(struct rt_backlight_device *bl);
  44. rt_err_t rt_backlight_set_power(struct rt_backlight_device *bl, enum rt_backlight_power power);
  45. rt_err_t rt_backlight_get_power(struct rt_backlight_device *bl, enum rt_backlight_power *out_power);
  46. rt_err_t rt_backlight_set_brightness(struct rt_backlight_device *bl, rt_uint32_t brightness);
  47. rt_err_t rt_backlight_get_brightness(struct rt_backlight_device *bl, rt_uint32_t *out_brightness);
  48. rt_inline rt_uint32_t rt_backlight_power_brightness(struct rt_backlight_device *bl)
  49. {
  50. if (bl->props.power != RT_BACKLIGHT_POWER_UNBLANK)
  51. {
  52. return 0;
  53. }
  54. return bl->props.brightness;
  55. }
  56. #endif /* __BACKLIGHT_H__ */