summaryrefslogtreecommitdiff
path: root/include/video
diff options
context:
space:
mode:
authorFancy Fang <chen.fang@nxp.com>2020-01-13 11:22:29 +0800
committerFancy Fang <chen.fang@nxp.com>2020-01-15 16:10:58 +0800
commit95f56808b1a4256447a128f08cc56dd414af428f (patch)
tree0e92610a483851dd5bbdbd8fda42381741dba047 /include/video
parent6c5cd919d78c7a512ffae363c01aaaef8737c689 (diff)
MLK-23234-4 gpu: imx: add LCDIFv3 core driver
The LCDIFv3 core driver is responsible to provide controller registers configuration and create the platform devices for the child port nodes. And the platform devices later will attach to the related DRM/KMS drivers via name match. And the LCDIFv3 is completely different from the LCDIF controller which is used on imx8mm and imx8mn platforms. Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Diffstat (limited to 'include/video')
-rw-r--r--include/video/imx-lcdifv3.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/include/video/imx-lcdifv3.h b/include/video/imx-lcdifv3.h
new file mode 100644
index 000000000000..26103ad63327
--- /dev/null
+++ b/include/video/imx-lcdifv3.h
@@ -0,0 +1,33 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+/*
+ * Copyright 2019 NXP
+ */
+
+#ifndef __IMX_LCDIFV3_H__
+#define __IMX_LCDIFV3_H__
+
+struct lcdifv3_soc;
+struct videomode;
+
+struct lcdifv3_client_platformdata {
+ struct device_node *of_node;
+};
+
+int lcdifv3_vblank_irq_get(struct lcdifv3_soc *lcdifv3);
+void lcdifv3_vblank_irq_enable(struct lcdifv3_soc *lcdifv3);
+void lcdifv3_vblank_irq_disable(struct lcdifv3_soc *lcdifv3);
+void lcdifv3_vblank_irq_clear(struct lcdifv3_soc *lcdifv3);
+
+int lcdifv3_get_bus_fmt_from_pix_fmt(struct lcdifv3_soc *lcdifv3,
+ uint32_t format);
+int lcdifv3_set_pix_fmt(struct lcdifv3_soc *lcdifv3, u32 format);
+void lcdifv3_set_bus_fmt(struct lcdifv3_soc *lcdifv3, u32 bus_format);
+void lcdifv3_set_fb_addr(struct lcdifv3_soc *lcdifv3, int id, u32 addr);
+void lcdifv3_set_mode(struct lcdifv3_soc *lcdifv3, struct videomode *vmode);
+void lcdifv3_set_fb_hcrop(struct lcdifv3_soc *lcdifv3, u32 src_w,
+ u32 fb_w, bool crop);
+void lcdifv3_enable_controller(struct lcdifv3_soc *lcdifv3);
+void lcdifv3_disable_controller(struct lcdifv3_soc *lcdifv3);
+void lcdifv3_dump_registers(struct lcdifv3_soc *lcdifv3);
+
+#endif