123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- /* SPDX-License-Identifier: GPL-2.0+ */
- /*
- * Copyright (C) 2015 Google, Inc
- * Written by Simon Glass <sjg@chromium.org>
- */
- #ifndef __VIDEO_BRIDGE
- #define __VIDEO_BRIDGE
- #include <asm/gpio.h>
- /**
- * struct video_bridge_priv - uclass information for video bridges
- *
- * @sleep: GPIO to assert to power down the bridge
- * @reset: GPIO to assert to reset the bridge
- * @hotplug: Optional GPIO to check if bridge is connected
- */
- struct video_bridge_priv {
- struct gpio_desc sleep;
- struct gpio_desc reset;
- struct gpio_desc hotplug;
- };
- /**
- * Operations for video bridges
- */
- struct video_bridge_ops {
- /**
- * attach() - attach a video bridge
- *
- * @return 0 if OK, -ve on error
- */
- int (*attach)(struct udevice *dev);
- /**
- * check_attached() - check if a bridge is correctly attached
- *
- * This method is optional - if not provided then the hotplug GPIO
- * will be checked instead.
- *
- * @dev: Device to check
- * @return 0 if attached, -EENOTCONN if not, or other -ve error
- */
- int (*check_attached)(struct udevice *dev);
- /**
- * set_backlight() - Set the backlight brightness
- *
- * @dev: device to adjust
- * @percent: brightness percentage (0=off, 100=full brightness)
- * @return 0 if OK, -ve on error
- */
- int (*set_backlight)(struct udevice *dev, int percent);
- /**
- * read_edid() - Read information from EDID
- *
- * @dev: Device to read from
- * @buf: Buffer to read into
- * @buf_size: Buffer size
- * @return number of bytes read, <=0 for error
- */
- int (*read_edid)(struct udevice *dev, u8 *buf, int buf_size);
- };
- #define video_bridge_get_ops(dev) \
- ((struct video_bridge_ops *)(dev)->driver->ops)
- /**
- * video_bridge_attach() - attach a video bridge
- *
- * @return 0 if OK, -ve on error
- */
- int video_bridge_attach(struct udevice *dev);
- /**
- * video_bridge_set_backlight() - Set the backlight brightness
- *
- * @percent: brightness percentage (0=off, 100=full brightness)
- * @return 0 if OK, -ve on error
- */
- int video_bridge_set_backlight(struct udevice *dev, int percent);
- /**
- * video_bridge_set_active() - take the bridge in/out of reset/powerdown
- *
- * @dev: Device to adjust
- * @active: true to power up and reset, false to power down
- */
- int video_bridge_set_active(struct udevice *dev, bool active);
- /**
- * check_attached() - check if a bridge is correctly attached
- *
- * @dev: Device to check
- * @return 0 if attached, -EENOTCONN if not, or other -ve error
- */
- int video_bridge_check_attached(struct udevice *dev);
- /**
- * video_bridge_read_edid() - Read information from EDID
- *
- * @dev: Device to read from
- * @buf: Buffer to read into
- * @buf_size: Buffer size
- * @return number of bytes read, <=0 for error
- */
- int video_bridge_read_edid(struct udevice *dev, u8 *buf, int buf_size);
- #endif
|