uboot/include/video_bridge.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2/*
   3 * Copyright (C) 2015 Google, Inc
   4 * Written by Simon Glass <sjg@chromium.org>
   5 */
   6
   7#ifndef __VIDEO_BRIDGE
   8#define __VIDEO_BRIDGE
   9
  10#include <asm/gpio.h>
  11
  12/**
  13 * struct video_bridge_priv - uclass information for video bridges
  14 *
  15 * @sleep:      GPIO to assert to power down the bridge
  16 * @reset:      GPIO to assert to reset the bridge
  17 * @hotplug:    Optional GPIO to check if bridge is connected
  18 */
  19struct video_bridge_priv {
  20        struct gpio_desc sleep;
  21        struct gpio_desc reset;
  22        struct gpio_desc hotplug;
  23};
  24
  25/**
  26 * Operations for video bridges
  27 */
  28struct video_bridge_ops {
  29        /**
  30         * attach() - attach a video bridge
  31         *
  32         * @return 0 if OK, -ve on error
  33         */
  34        int (*attach)(struct udevice *dev);
  35
  36        /**
  37         * check_attached() - check if a bridge is correctly attached
  38         *
  39         * This method is optional - if not provided then the hotplug GPIO
  40         * will be checked instead.
  41         *
  42         * @dev:        Device to check
  43         * @return 0 if attached, -EENOTCONN if not, or other -ve error
  44         */
  45        int (*check_attached)(struct udevice *dev);
  46
  47        /**
  48         * set_backlight() - Set the backlight brightness
  49         *
  50         * @dev:        device to adjust
  51         * @percent:    brightness percentage (0=off, 100=full brightness)
  52         * @return 0 if OK, -ve on error
  53         */
  54        int (*set_backlight)(struct udevice *dev, int percent);
  55
  56        /**
  57         * read_edid() - Read information from EDID
  58         *
  59         * @dev:        Device to read from
  60         * @buf:        Buffer to read into
  61         * @buf_size:   Buffer size
  62         * @return number of bytes read, <=0 for error
  63         */
  64        int (*read_edid)(struct udevice *dev, u8 *buf, int buf_size);
  65};
  66
  67#define video_bridge_get_ops(dev) \
  68                ((struct video_bridge_ops *)(dev)->driver->ops)
  69
  70/**
  71 * video_bridge_attach() - attach a video bridge
  72 *
  73 * @return 0 if OK, -ve on error
  74 */
  75int video_bridge_attach(struct udevice *dev);
  76
  77/**
  78 * video_bridge_set_backlight() - Set the backlight brightness
  79 *
  80 * @percent:    brightness percentage (0=off, 100=full brightness)
  81 * @return 0 if OK, -ve on error
  82 */
  83int video_bridge_set_backlight(struct udevice *dev, int percent);
  84
  85/**
  86 * video_bridge_set_active() - take the bridge in/out of reset/powerdown
  87 *
  88 * @dev:        Device to adjust
  89 * @active:     true to power up and reset, false to power down
  90 */
  91int video_bridge_set_active(struct udevice *dev, bool active);
  92
  93/**
  94 * check_attached() - check if a bridge is correctly attached
  95 *
  96 * @dev:        Device to check
  97 * @return 0 if attached, -EENOTCONN if not, or other -ve error
  98 */
  99int video_bridge_check_attached(struct udevice *dev);
 100
 101/**
 102 * video_bridge_read_edid() - Read information from EDID
 103 *
 104 * @dev:        Device to read from
 105 * @buf:        Buffer to read into
 106 * @buf_size:   Buffer size
 107 * @return number of bytes read, <=0 for error
 108 */
 109int video_bridge_read_edid(struct udevice *dev, u8 *buf, int buf_size);
 110
 111#endif
 112