183d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */ 2f563dc1dSSimon Glass /* 3f563dc1dSSimon Glass * Copyright (c) 2016 Google, Inc 4f563dc1dSSimon Glass * Written by Simon Glass <sjg@chromium.org> 5f563dc1dSSimon Glass */ 6f563dc1dSSimon Glass 7f563dc1dSSimon Glass #ifndef _PANEL_H 8f563dc1dSSimon Glass #define _PANEL_H 9f563dc1dSSimon Glass 10f563dc1dSSimon Glass struct panel_ops { 11f563dc1dSSimon Glass /** 12f563dc1dSSimon Glass * enable_backlight() - Enable the panel backlight 13f563dc1dSSimon Glass * 14f563dc1dSSimon Glass * @dev: Panel device containing the backlight to enable 15f563dc1dSSimon Glass * @return 0 if OK, -ve on error 16f563dc1dSSimon Glass */ 17f563dc1dSSimon Glass int (*enable_backlight)(struct udevice *dev); 18*a4f737a9SSimon Glass 19*a4f737a9SSimon Glass /** 20*a4f737a9SSimon Glass * set_backlight - Set panel backlight brightness 21*a4f737a9SSimon Glass * 22*a4f737a9SSimon Glass * @dev: Panel device containing the backlight to update 23*a4f737a9SSimon Glass * @percent: Brightness value (0 to 100, or BACKLIGHT_... value) 24*a4f737a9SSimon Glass * @return 0 if OK, -ve on error 25*a4f737a9SSimon Glass */ 26*a4f737a9SSimon Glass int (*set_backlight)(struct udevice *dev, int percent); 27*a4f737a9SSimon Glass 2828576f81SYannick Fertré /** 2928576f81SYannick Fertré * get_timings() - Get display timings from panel. 3028576f81SYannick Fertré * 3128576f81SYannick Fertré * @dev: Panel device containing the display timings 3228576f81SYannick Fertré * @tim: Place to put timings 3328576f81SYannick Fertré * @return 0 if OK, -ve on error 3428576f81SYannick Fertré */ 3528576f81SYannick Fertré int (*get_display_timing)(struct udevice *dev, 3628576f81SYannick Fertré struct display_timing *timing); 37f563dc1dSSimon Glass }; 38f563dc1dSSimon Glass 39f563dc1dSSimon Glass #define panel_get_ops(dev) ((struct panel_ops *)(dev)->driver->ops) 40f563dc1dSSimon Glass 41f563dc1dSSimon Glass /** 42*a4f737a9SSimon Glass * panel_enable_backlight() - Enable/disable the panel backlight 43f563dc1dSSimon Glass * 44f563dc1dSSimon Glass * @dev: Panel device containing the backlight to enable 45*a4f737a9SSimon Glass * @enable: true to enable the backlight, false to dis 46f563dc1dSSimon Glass * @return 0 if OK, -ve on error 47f563dc1dSSimon Glass */ 48f563dc1dSSimon Glass int panel_enable_backlight(struct udevice *dev); 49f563dc1dSSimon Glass 5028576f81SYannick Fertré /** 51*a4f737a9SSimon Glass * panel_set_backlight - Set brightness for the panel backlight 52*a4f737a9SSimon Glass * 53*a4f737a9SSimon Glass * @dev: Panel device containing the backlight to update 54*a4f737a9SSimon Glass * @percent: Brightness value (0 to 100, or BACKLIGHT_... value) 55*a4f737a9SSimon Glass * @return 0 if OK, -ve on error 56*a4f737a9SSimon Glass */ 57*a4f737a9SSimon Glass int panel_set_backlight(struct udevice *dev, int percent); 58*a4f737a9SSimon Glass 59*a4f737a9SSimon Glass /** 6028576f81SYannick Fertré * panel_get_display_timing() - Get display timings from panel. 6128576f81SYannick Fertré * 6228576f81SYannick Fertré * @dev: Panel device containing the display timings 6328576f81SYannick Fertré * @return 0 if OK, -ve on error 6428576f81SYannick Fertré */ 6528576f81SYannick Fertré int panel_get_display_timing(struct udevice *dev, 6628576f81SYannick Fertré struct display_timing *timing); 6728576f81SYannick Fertré 68f563dc1dSSimon Glass #endif 69