linux/include/drm/bridge/analogix_dp.h
<<
>>
Prefs
   1/*
   2 * Analogix DP (Display Port) Core interface driver.
   3 *
   4 * Copyright (C) 2015 Rockchip Electronics Co., Ltd.
   5 *
   6 * This program is free software; you can redistribute it and/or modify it
   7 * under the terms of the GNU General Public License as published by the
   8 * Free Software Foundation; either version 2 of the License, or (at your
   9 * option) any later version.
  10 */
  11#ifndef _ANALOGIX_DP_H_
  12#define _ANALOGIX_DP_H_
  13
  14#include <drm/drm_crtc.h>
  15
  16struct analogix_dp_device;
  17
  18enum analogix_dp_devtype {
  19        EXYNOS_DP,
  20        RK3288_DP,
  21        RK3399_EDP,
  22};
  23
  24static inline bool is_rockchip(enum analogix_dp_devtype type)
  25{
  26        return type == RK3288_DP || type == RK3399_EDP;
  27}
  28
  29struct analogix_dp_plat_data {
  30        enum analogix_dp_devtype dev_type;
  31        struct drm_panel *panel;
  32        struct drm_encoder *encoder;
  33        struct drm_connector *connector;
  34        bool skip_connector;
  35
  36        int (*power_on_start)(struct analogix_dp_plat_data *);
  37        int (*power_on_end)(struct analogix_dp_plat_data *);
  38        int (*power_off)(struct analogix_dp_plat_data *);
  39        int (*attach)(struct analogix_dp_plat_data *, struct drm_bridge *,
  40                      struct drm_connector *);
  41        int (*get_modes)(struct analogix_dp_plat_data *,
  42                         struct drm_connector *);
  43};
  44
  45int analogix_dp_psr_enabled(struct analogix_dp_device *dp);
  46int analogix_dp_enable_psr(struct analogix_dp_device *dp);
  47int analogix_dp_disable_psr(struct analogix_dp_device *dp);
  48
  49int analogix_dp_resume(struct analogix_dp_device *dp);
  50int analogix_dp_suspend(struct analogix_dp_device *dp);
  51
  52struct analogix_dp_device *
  53analogix_dp_bind(struct device *dev, struct drm_device *drm_dev,
  54                 struct analogix_dp_plat_data *plat_data);
  55void analogix_dp_unbind(struct analogix_dp_device *dp);
  56
  57int analogix_dp_start_crc(struct drm_connector *connector);
  58int analogix_dp_stop_crc(struct drm_connector *connector);
  59
  60#endif /* _ANALOGIX_DP_H_ */
  61