u-boot/include/display.h
Tom Rini d678a59d2d Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet""
When bringing in the series 'arm: dts: am62-beagleplay: Fix Beagleplay
Ethernet"' I failed to notice that b4 noticed it was based on next and
so took that as the base commit and merged that part of next to master.

This reverts commit c8ffd1356d, reversing
changes made to 2ee6f3a5f7.

Reported-by: Jonas Karlman <jonas@kwiboo.se>
Signed-off-by: Tom Rini <trini@konsulko.com>
2024-05-19 08:16:36 -06:00

98 lines
2.3 KiB
C

/* SPDX-License-Identifier: GPL-2.0+ */
/*
* Copyright 2014 Google Inc.
*/
#ifndef _DISPLAY_H
#define _DISPLAY_H
struct udevice;
struct display_timing;
/**
* Display uclass platform data for each device
*
* @source_id: ID for the source of the display data, typically a video
* controller
* @src_dev: Source device providing the video
* @in_use: Display is being used
*/
struct display_plat {
int source_id;
struct udevice *src_dev;
bool in_use;
};
/**
* display_read_timing() - Read timing information
*
* @dev: Device to read from
* Return: 0 if OK, -ve on error
*/
int display_read_timing(struct udevice *dev, struct display_timing *timing);
/**
* display_port_enable() - Enable a display port device
*
* @dev: Device to enable
* @panel_bpp: Number of bits per pixel for panel
* @timing: Display timings
* Return: 0 if OK, -ve on error
*/
int display_enable(struct udevice *dev, int panel_bpp,
const struct display_timing *timing);
/**
* display_in_use() - Check if a display is in use by any device
*
* Return: true if the device is in use (display_enable() has been called
* successfully), else false
*/
bool display_in_use(struct udevice *dev);
struct dm_display_ops {
/**
* read_timing() - Read information directly
*
* @dev: Device to read from
* @timing: Display timings
* @return 0 if OK, -ve on error
*/
int (*read_timing)(struct udevice *dev, struct display_timing *timing);
/**
* read_edid() - Read information from EDID
*
* @dev: Device to read from
* @buf: Buffer to read into (should be EDID_SIZE bytes)
* @buf_size: Buffer size (should be EDID_SIZE)
* @return number of bytes read, <=0 for error
*/
int (*read_edid)(struct udevice *dev, u8 *buf, int buf_size);
/**
* enable() - Enable the display port device
*
* @dev: Device to enable
* @panel_bpp: Number of bits per pixel for panel
* @timing: Display timings
* @return 0 if OK, -ve on error
*/
int (*enable)(struct udevice *dev, int panel_bpp,
const struct display_timing *timing);
/**
* mode_valid() - Check if mode is supported
*
* @dev: Device to enable
* @timing: Display timings
* @return true if supported, false if not
*/
bool (*mode_valid)(struct udevice *dev,
const struct display_timing *timing);
};
#define display_get_ops(dev) ((struct dm_display_ops *)(dev)->driver->ops)
#endif