FILE
dp_hw.h
File preview with syntax highlighting.
linux-6.19.14/drivers/gpu/drm/hisilicon/hibmc/dp/dp_hw.h
1/* SPDX-License-Identifier: GPL-2.0-or-later */ 2/* Copyright (c) 2024 Hisilicon Limited. */ 3 4#ifndef DP_KAPI_H 5#define DP_KAPI_H 6 7#include <linux/types.h> 8#include <linux/delay.h> 9#include <drm/drm_device.h> 10#include <drm/drm_encoder.h> 11#include <drm/drm_connector.h> 12#include <drm/drm_print.h> 13#include <drm/display/drm_dp_helper.h> 14 15struct hibmc_dp_dev; 16 17enum hibmc_hpd_status { 18 HIBMC_HPD_OUT, 19 HIBMC_HPD_IN, 20}; 21 22enum hibmc_dp_cbar_pattern { 23 CBAR_COLOR_BAR, 24 CBAR_WHITE, 25 CBAR_RED, 26 CBAR_ORANGE, 27 CBAR_YELLOW, 28 CBAR_GREEN, 29 CBAR_CYAN, 30 CBAR_BLUE, 31 CBAR_PURPLE, 32 CBAR_BLACK, 33}; 34 35struct hibmc_dp_color_raw { 36 enum hibmc_dp_cbar_pattern pattern; 37 u32 r_value; 38 u32 g_value; 39 u32 b_value; 40}; 41 42struct hibmc_dp_cbar_cfg { 43 u8 enable; 44 u8 self_timing; 45 u8 dynamic_rate; /* 0:static, 1-255(frame):dynamic */ 46 enum hibmc_dp_cbar_pattern pattern; 47}; 48 49struct hibmc_dp { 50 struct hibmc_dp_dev *dp_dev; 51 struct drm_device *drm_dev; 52 struct drm_encoder encoder; 53 struct drm_connector connector; 54 void __iomem *mmio; 55 struct drm_dp_aux aux; 56 struct hibmc_dp_cbar_cfg cfg; 57 u32 irq_status; 58}; 59 60int hibmc_dp_hw_init(struct hibmc_dp *dp); 61int hibmc_dp_mode_set(struct hibmc_dp *dp, struct drm_display_mode *mode); 62void hibmc_dp_display_en(struct hibmc_dp *dp, bool enable); 63void hibmc_dp_set_cbar(struct hibmc_dp *dp, const struct hibmc_dp_cbar_cfg *cfg); 64void hibmc_dp_reset_link(struct hibmc_dp *dp); 65void hibmc_dp_hpd_cfg(struct hibmc_dp *dp); 66void hibmc_dp_enable_int(struct hibmc_dp *dp); 67void hibmc_dp_disable_int(struct hibmc_dp *dp); 68bool hibmc_dp_check_hpd_status(struct hibmc_dp *dp, int exp_status); 69u8 hibmc_dp_get_link_rate(struct hibmc_dp *dp); 70u8 hibmc_dp_get_lanes(struct hibmc_dp *dp); 71 72#endif
~/
Read-only file preview.