diff options
author | Fancy Fang <chen.fang@nxp.com> | 2020-01-13 11:22:29 +0800 |
---|---|---|
committer | Fancy Fang <chen.fang@nxp.com> | 2020-01-15 16:10:58 +0800 |
commit | 95f56808b1a4256447a128f08cc56dd414af428f (patch) | |
tree | 0e92610a483851dd5bbdbd8fda42381741dba047 /include/video | |
parent | 6c5cd919d78c7a512ffae363c01aaaef8737c689 (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.h | 33 |
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 |