/* * Copyright (C) 2015 Google, Inc * Written by Simon Glass * * SPDX-License-Identifier: GPL-2.0+ */ #ifndef __VIDEO_BRIDGE #define __VIDEO_BRIDGE #include /** * 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); }; #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); #endif