mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-26 22:55:20 +07:00
5fc537bfd0
This adds a new DRM driver for the ST-Ericsson Multi Channel Display Engine, MCDE display controller. This hardware has three independent DSI hosts and can composit and display several memory buffers onto an LCD display. It was developed for several years inside of ST-Ericsson and shipped with a few million mobile phones from Sony and Samsung, as well as with the Snowball community development board. The driver is currently pretty rudimentary but supports a simple framebuffer so we can get penguins and graphics when using these SoCs. Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Link: https://patchwork.freedesktop.org/patch/msgid/20190524092019.19355-1-linus.walleij@linaro.org
45 lines
1.1 KiB
C
45 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ */
|
|
/*
|
|
* Copyright (C) 2018 Linus Walleij <linus.walleij@linaro.org>
|
|
* Parts of this file were based on the MCDE driver by Marcus Lorentzon
|
|
* (C) ST-Ericsson SA 2013
|
|
*/
|
|
#include <drm/drm_simple_kms_helper.h>
|
|
|
|
#ifndef _MCDE_DRM_H_
|
|
#define _MCDE_DRM_H_
|
|
|
|
struct mcde {
|
|
struct drm_device drm;
|
|
struct device *dev;
|
|
struct drm_panel *panel;
|
|
struct drm_bridge *bridge;
|
|
struct drm_connector *connector;
|
|
struct drm_simple_display_pipe pipe;
|
|
struct mipi_dsi_device *mdsi;
|
|
s16 stride;
|
|
bool te_sync;
|
|
bool oneshot_mode;
|
|
unsigned int flow_active;
|
|
spinlock_t flow_lock; /* Locks the channel flow control */
|
|
|
|
void __iomem *regs;
|
|
|
|
struct clk *mcde_clk;
|
|
struct clk *lcd_clk;
|
|
struct clk *hdmi_clk;
|
|
|
|
struct regulator *epod;
|
|
struct regulator *vana;
|
|
};
|
|
|
|
bool mcde_dsi_irq(struct mipi_dsi_device *mdsi);
|
|
void mcde_dsi_te_request(struct mipi_dsi_device *mdsi);
|
|
extern struct platform_driver mcde_dsi_driver;
|
|
|
|
void mcde_display_irq(struct mcde *mcde);
|
|
void mcde_display_disable_irqs(struct mcde *mcde);
|
|
int mcde_display_init(struct drm_device *drm);
|
|
|
|
#endif /* _MCDE_DRM_H_ */
|