linux/include/drm/bridge/analogix_dp.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-or-later */
   2/*
   3 * Analogix DP (Display Port) Core interface driver.
   4 *
   5 * Copyright (C) 2015 Rockchip Electronics Co., Ltd.
   6 */
   7#ifndef _ANALOGIX_DP_H_
   8#define _ANALOGIX_DP_H_
   9
  10#include <drm/drm_crtc.h>
  11
  12struct analogix_dp_device;
  13
  14enum analogix_dp_devtype {
  15        EXYNOS_DP,
  16        RK3288_DP,
  17        RK3399_EDP,
  18};
  19
  20static inline bool is_rockchip(enum analogix_dp_devtype type)
  21{
  22        return type == RK3288_DP || type == RK3399_EDP;
  23}
  24
  25struct analogix_dp_plat_data {
  26        enum analogix_dp_devtype dev_type;
  27        struct drm_panel *panel;
  28        struct drm_encoder *encoder;
  29        struct drm_connector *connector;
  30        bool skip_connector;
  31
  32        int (*power_on_start)(struct analogix_dp_plat_data *);
  33        int (*power_on_end)(struct analogix_dp_plat_data *);
  34        int (*power_off)(struct analogix_dp_plat_data *);
  35        int (*attach)(struct analogix_dp_plat_data *, struct drm_bridge *,
  36                      struct drm_connector *);
  37        int (*get_modes)(struct analogix_dp_plat_data *,
  38                         struct drm_connector *);
  39};
  40
  41int analogix_dp_resume(struct analogix_dp_device *dp);
  42int analogix_dp_suspend(struct analogix_dp_device *dp);
  43
  44struct analogix_dp_device *
  45analogix_dp_probe(struct device *dev, struct analogix_dp_plat_data *plat_data);
  46int analogix_dp_bind(struct analogix_dp_device *dp, struct drm_device *drm_dev);
  47void analogix_dp_unbind(struct analogix_dp_device *dp);
  48void analogix_dp_remove(struct analogix_dp_device *dp);
  49
  50int analogix_dp_start_crc(struct drm_connector *connector);
  51int analogix_dp_stop_crc(struct drm_connector *connector);
  52
  53#endif /* _ANALOGIX_DP_H_ */
  54