Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 /*
0003  * ZynqMP Display Driver
0004  *
0005  * Copyright (C) 2017 - 2020 Xilinx, Inc.
0006  *
0007  * Authors:
0008  * - Hyun Woo Kwon <hyun.kwon@xilinx.com>
0009  * - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
0010  */
0011 
0012 #ifndef _ZYNQMP_DISP_H_
0013 #define _ZYNQMP_DISP_H_
0014 
0015 #include <linux/types.h>
0016 
0017 /*
0018  * 3840x2160 is advertised as the maximum resolution, but almost any
0019  * resolutions under a 300Mhz pixel rate would work. Pick 4096x4096.
0020  */
0021 #define ZYNQMP_DISP_MAX_WIDTH               4096
0022 #define ZYNQMP_DISP_MAX_HEIGHT              4096
0023 
0024 /* The DPDMA is limited to 44 bit addressing. */
0025 #define ZYNQMP_DISP_MAX_DMA_BIT             44
0026 
0027 struct device;
0028 struct drm_device;
0029 struct platform_device;
0030 struct zynqmp_disp;
0031 struct zynqmp_dpsub;
0032 
0033 void zynqmp_disp_handle_vblank(struct zynqmp_disp *disp);
0034 bool zynqmp_disp_audio_enabled(struct zynqmp_disp *disp);
0035 unsigned int zynqmp_disp_get_audio_clk_rate(struct zynqmp_disp *disp);
0036 uint32_t zynqmp_disp_get_crtc_mask(struct zynqmp_disp *disp);
0037 
0038 int zynqmp_disp_drm_init(struct zynqmp_dpsub *dpsub);
0039 int zynqmp_disp_probe(struct zynqmp_dpsub *dpsub, struct drm_device *drm);
0040 void zynqmp_disp_remove(struct zynqmp_dpsub *dpsub);
0041 
0042 #endif /* _ZYNQMP_DISP_H_ */