#include <drm/drm_bridge.h>
#include <drm/drm_bridge_connector.h>
#include <drm/drm_damage_helper.h>
#include <drm/drm_drv.h>
#include <drm/drm_fbdev_dma.h>
#include <drm/drm_fb_dma_helper.h>
#include <drm/drm_fourcc.h>
#include <drm/drm_framebuffer.h>
#include <drm/drm_gem_atomic_helper.h>
#include <drm/drm_gem_dma_helper.h>
#include <drm/drm_gem_framebuffer_helper.h>
#include <drm/drm_of.h>
#include <drm/drm_probe_helper.h>
#include <drm/drm_simple_kms_helper.h>
#include <drm/drm_vblank.h>
#include <linux/bitfield.h>
#include <linux/clk.h>
#include <linux/dma-mapping.h>
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#define IMX21LCDC_LSSAR …
#define IMX21LCDC_LSR …
#define IMX21LCDC_LVPWR …
#define IMX21LCDC_LCPR …
#define IMX21LCDC_LCWHB …
#define IMX21LCDC_LCCMR …
#define IMX21LCDC_LPCR …
#define IMX21LCDC_LHCR …
#define IMX21LCDC_LVCR …
#define IMX21LCDC_LPOR …
#define IMX21LCDC_LSCR …
#define IMX21LCDC_LPCCR …
#define IMX21LCDC_LDCR …
#define IMX21LCDC_LRMCR …
#define IMX21LCDC_LICR …
#define IMX21LCDC_LIER …
#define IMX21LCDC_LISR …
#define IMX21LCDC_LGWSAR …
#define IMX21LCDC_LGWSR …
#define IMX21LCDC_LGWVPWR …
#define IMX21LCDC_LGWPOR …
#define IMX21LCDC_LGWPR …
#define IMX21LCDC_LGWCR …
#define IMX21LCDC_LGWDCR …
#define IMX21LCDC_LAUSCR …
#define IMX21LCDC_LAUSCCR …
#define IMX21LCDC_BGLUT …
#define IMX21LCDC_GWLUT …
#define IMX21LCDC_LCPR_CC0 …
#define IMX21LCDC_LCPR_CC1 …
#define IMX21LCDC_LHCR_HWIDTH …
#define IMX21LCDC_LHCR_HFPORCH …
#define IMX21LCDC_LHCR_HBPORCH …
#define IMX21LCDC_LVCR_VWIDTH …
#define IMX21LCDC_LVCR_VFPORCH …
#define IMX21LCDC_LVCR_VBPORCH …
#define IMX21LCDC_LSR_XMAX …
#define IMX21LCDC_LSR_YMAX …
#define IMX21LCDC_LPCR_PCD …
#define IMX21LCDC_LPCR_SHARP …
#define IMX21LCDC_LPCR_SCLKSEL …
#define IMX21LCDC_LPCR_ACD …
#define IMX21LCDC_LPCR_ACDSEL …
#define IMX21LCDC_LPCR_REV_VS …
#define IMX21LCDC_LPCR_SWAP_SEL …
#define IMX21LCDC_LPCR_END_SEL …
#define IMX21LCDC_LPCR_SCLKIDLE …
#define IMX21LCDC_LPCR_OEPOL …
#define IMX21LCDC_LPCR_CLKPOL …
#define IMX21LCDC_LPCR_LPPOL …
#define IMX21LCDC_LPCR_FLMPOL …
#define IMX21LCDC_LPCR_PIXPOL …
#define IMX21LCDC_LPCR_BPIX …
#define IMX21LCDC_LPCR_PBSIZ …
#define IMX21LCDC_LPCR_COLOR …
#define IMX21LCDC_LPCR_TFT …
#define INTR_EOF …
#define BPP_RGB565 …
#define BPP_XRGB8888 …
#define LCDC_MIN_XRES …
#define LCDC_MIN_YRES …
#define LCDC_MAX_XRES …
#define LCDC_MAX_YRES …
struct imx_lcdc { … };
static const u32 imx_lcdc_formats[] = …;
static inline struct imx_lcdc *imx_lcdc_from_drmdev(struct drm_device *drm)
{ … }
static unsigned int imx_lcdc_get_format(unsigned int drm_format)
{ … }
static void imx_lcdc_update_hw_registers(struct drm_simple_display_pipe *pipe,
struct drm_plane_state *old_state,
bool mode_set)
{ … }
static void imx_lcdc_pipe_enable(struct drm_simple_display_pipe *pipe,
struct drm_crtc_state *crtc_state,
struct drm_plane_state *plane_state)
{ … }
static void imx_lcdc_pipe_disable(struct drm_simple_display_pipe *pipe)
{ … }
static int imx_lcdc_pipe_check(struct drm_simple_display_pipe *pipe,
struct drm_plane_state *plane_state,
struct drm_crtc_state *crtc_state)
{ … }
static void imx_lcdc_pipe_update(struct drm_simple_display_pipe *pipe,
struct drm_plane_state *old_state)
{ … }
static const struct drm_simple_display_pipe_funcs imx_lcdc_pipe_funcs = …;
static const struct drm_mode_config_funcs imx_lcdc_mode_config_funcs = …;
static const struct drm_mode_config_helper_funcs imx_lcdc_mode_config_helpers = …;
DEFINE_DRM_GEM_DMA_FOPS(imx_lcdc_drm_fops);
static struct drm_driver imx_lcdc_drm_driver = …;
static const struct of_device_id imx_lcdc_of_dev_id[] = …;
MODULE_DEVICE_TABLE(of, imx_lcdc_of_dev_id);
static irqreturn_t imx_lcdc_irq_handler(int irq, void *arg)
{ … }
static int imx_lcdc_probe(struct platform_device *pdev)
{ … }
static void imx_lcdc_remove(struct platform_device *pdev)
{ … }
static void imx_lcdc_shutdown(struct platform_device *pdev)
{ … }
static struct platform_driver imx_lcdc_driver = …;
module_platform_driver(…) …;
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;