File Index
Files and directories
Sign in
FILE

cdns-dsi-core.h

File preview with syntax highlighting.

linux-6.19.14/drivers/gpu/drm/bridge/cadence/cdns-dsi-core.h C
 1/* SPDX-License-Identifier: GPL-2.0 */
 2/*
 3 * Copyright: 2017 Cadence Design Systems, Inc.
 4 *
 5 * Author: Boris Brezillon <boris.brezillon@bootlin.com>
 6 */
 7
 8#ifndef __CDNS_DSI_H__
 9#define __CDNS_DSI_H__
10
11#include <drm/drm_bridge.h>
12#include <drm/drm_mipi_dsi.h>
13
14#include <linux/bits.h>
15#include <linux/completion.h>
16#include <linux/phy/phy.h>
17
18struct clk;
19struct reset_control;
20
21struct cdns_dsi_output {
22	struct mipi_dsi_device *dev;
23	struct drm_bridge *bridge;
24	union phy_configure_opts phy_opts;
25};
26
27enum cdns_dsi_input_id {
28	CDNS_SDI_INPUT,
29	CDNS_DPI_INPUT,
30	CDNS_DSC_INPUT,
31};
32
33struct cdns_dsi_cfg {
34	unsigned int hfp;
35	unsigned int hsa;
36	unsigned int hbp;
37	unsigned int hact;
38	unsigned int htotal;
39};
40
41struct cdns_dsi_input {
42	enum cdns_dsi_input_id id;
43	struct drm_bridge bridge;
44};
45
46struct cdns_dsi;
47
48/**
49 * struct cdns_dsi_platform_ops - CDNS DSI Platform operations
50 * @init: Called in the CDNS DSI probe
51 * @deinit: Called in the CDNS DSI remove
52 * @enable: Called at the beginning of CDNS DSI bridge enable
53 * @disable: Called at the end of CDNS DSI bridge disable
54 */
55struct cdns_dsi_platform_ops {
56	int (*init)(struct cdns_dsi *dsi);
57	void (*deinit)(struct cdns_dsi *dsi);
58	void (*enable)(struct cdns_dsi *dsi);
59	void (*disable)(struct cdns_dsi *dsi);
60};
61
62struct cdns_dsi {
63	struct mipi_dsi_host base;
64	void __iomem *regs;
65#ifdef CONFIG_DRM_CDNS_DSI_J721E
66	void __iomem *j721e_regs;
67#endif
68	const struct cdns_dsi_platform_ops *platform_ops;
69	struct cdns_dsi_input input;
70	struct cdns_dsi_output output;
71	unsigned int direct_cmd_fifo_depth;
72	unsigned int rx_fifo_depth;
73	struct completion direct_cmd_comp;
74	struct clk *dsi_p_clk;
75	struct reset_control *dsi_p_rst;
76	struct clk *dsi_sys_clk;
77	bool link_initialized;
78	bool phy_initialized;
79	struct phy *dphy;
80};
81
82#endif /* !__CDNS_DSI_H__ */
~/ Read-only file preview.