File Index
Files and directories
Sign in
FILE

hibmc_drm_drv.h

File preview with syntax highlighting.

linux-6.19.14/drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h C
 1/* SPDX-License-Identifier: GPL-2.0-or-later */
 2/* Hisilicon Hibmc SoC drm driver
 3 *
 4 * Based on the bochs drm driver.
 5 *
 6 * Copyright (c) 2016 Huawei Limited.
 7 *
 8 * Author:
 9 *	Rongrong Zou <zourongrong@huawei.com>
10 *	Rongrong Zou <zourongrong@gmail.com>
11 *	Jianhua Li <lijianhua@huawei.com>
12 */
13
14#ifndef HIBMC_DRM_DRV_H
15#define HIBMC_DRM_DRV_H
16
17#include <linux/gpio/consumer.h>
18#include <linux/i2c-algo-bit.h>
19#include <linux/i2c.h>
20
21#include <drm/drm_framebuffer.h>
22
23#include "dp/dp_hw.h"
24
25#define HIBMC_MIN_VECTORS	1
26#define HIBMC_MAX_VECTORS	2
27
28struct hibmc_vdac {
29	struct drm_device *dev;
30	struct drm_encoder encoder;
31	struct drm_connector connector;
32	struct i2c_adapter adapter;
33	struct i2c_algo_bit_data bit_data;
34};
35
36struct hibmc_drm_private {
37	/* hw */
38	void __iomem   *mmio;
39
40	/* drm */
41	struct drm_device dev;
42	struct drm_plane primary_plane;
43	struct drm_crtc crtc;
44	struct hibmc_vdac vdac;
45	struct hibmc_dp dp;
46};
47
48static inline struct hibmc_vdac *to_hibmc_vdac(struct drm_connector *connector)
49{
50	return container_of(connector, struct hibmc_vdac, connector);
51}
52
53static inline struct hibmc_dp *to_hibmc_dp(struct drm_connector *connector)
54{
55	return container_of(connector, struct hibmc_dp, connector);
56}
57
58static inline struct hibmc_drm_private *to_hibmc_drm_private(struct drm_device *dev)
59{
60	return container_of(dev, struct hibmc_drm_private, dev);
61}
62
63void hibmc_set_power_mode(struct hibmc_drm_private *priv,
64			  u32 power_mode);
65void hibmc_set_current_gate(struct hibmc_drm_private *priv,
66			    u32 gate);
67
68int hibmc_de_init(struct hibmc_drm_private *priv);
69int hibmc_vdac_init(struct hibmc_drm_private *priv);
70
71int hibmc_ddc_create(struct drm_device *drm_dev, struct hibmc_vdac *connector);
72void hibmc_ddc_del(struct hibmc_vdac *vdac);
73
74int hibmc_dp_init(struct hibmc_drm_private *priv);
75
76void hibmc_debugfs_init(struct drm_connector *connector, struct dentry *root);
77
78irqreturn_t hibmc_dp_hpd_isr(int irq, void *arg);
79
80#endif
~/ Read-only file preview.