AM62Px MCU+ SDK  09.01.00
dss/v0/dss.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2023 Texas Instruments Incorporated
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the
14  * distribution.
15  *
16  * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
50 #ifndef DSS_H_
51 #define DSS_H_
52 
53 /* ========================================================================== */
54 /* Include Files */
55 /* ========================================================================== */
56 
57 #include <stdint.h>
58 #include <drivers/soc.h>
60 #include <drivers/hw_include/csl_dss.h>
65 #include <kernel/dpl/SemaphoreP.h>
66 #include <drivers/fvid2.h>
67 
68 #ifdef __cplusplus
69 extern "C" {
70 #endif
71 
72 /* ========================================================================== */
73 /* Macros & Typedefs */
74 /* ========================================================================== */
75 
77 #define DSS_DISP_DRV_ID (FVID2_DSS_DRV_BASE + 0x00U)
78 
80 #define DSS_DCTRL_DRV_ID (FVID2_DSS_DRV_BASE + 0x01U)
81 
82 /*
83  * IOCTLs Base address.
84  */
86 #define DSS_DISP_IOCTL_BASE (FVID2_DSS_DRV_IOCTL_BASE + 0x000U)
87 
88 #define DSS_DCTRL_IOCTL_BASE (FVID2_DSS_DRV_IOCTL_BASE + 0x100U)
89 
90 #define DSS_DISP_SOC_IOCTL_BASE (DSS_DISP_IOCTL_BASE + 0x40U)
91 
93 #define DSS_DCTRL_SOC_IOCTL_BASE (DSS_DCTRL_IOCTL_BASE + 0x40U)
94 
95 /* ========================================================================== */
96 /* Structure Declarations */
97 /* ========================================================================== */
98 
102 typedef struct
103 {
107 
112 typedef struct
113 {
114  uint32_t numTestPipes;
116  uint32_t bpp;
118  uint32_t instId[CSL_DSS_VID_PIPE_ID_MAX];
120  uint32_t pipeId[CSL_DSS_VID_PIPE_ID_MAX];
122  uint32_t pipeNodeId[CSL_DSS_VID_PIPE_ID_MAX];
124  uint32_t pipeType[CSL_DSS_VID_PIPE_ID_MAX];
126  uint32_t inDataFmt[CSL_DSS_VID_PIPE_ID_MAX];
128  uint32_t inWidth[CSL_DSS_VID_PIPE_ID_MAX];
130  uint32_t inHeight[CSL_DSS_VID_PIPE_ID_MAX];
134  uint32_t inScanFmt[CSL_DSS_VID_PIPE_ID_MAX];
136  uint32_t outWidth[CSL_DSS_VID_PIPE_ID_MAX];
138  uint32_t outHeight[CSL_DSS_VID_PIPE_ID_MAX];
140  uint32_t scEnable[CSL_DSS_VID_PIPE_ID_MAX];
142  uint32_t globalAlpha[CSL_DSS_VID_PIPE_ID_MAX];
144  uint32_t preMultiplyAlpha[CSL_DSS_VID_PIPE_ID_MAX];
146  uint32_t posx[CSL_DSS_VID_PIPE_ID_MAX];
148  uint32_t posy[CSL_DSS_VID_PIPE_ID_MAX];
150  uint32_t invalidPipeId[CSL_DSS_VID_PIPE_ID_MAX];
152  uint32_t safetyCheck[CSL_DSS_VID_PIPE_ID_MAX];
155 
159 typedef struct
160 {
161  uint32_t instId;
163  uint32_t numFrames;
184 
188 typedef struct
189 {
214 } Dss_Object;
215 
216 /* ========================================================================== */
217 /* Internal/Private Function Declarations */
218 /* ========================================================================== */
219 
220 /* None */
221 
222 /* ========================================================================== */
223 /* Function Declarations */
224 /* ========================================================================== */
225 
233 
245 int32_t Dss_init(const Dss_InitParams *initParams);
246 
255 int32_t Dss_deInit(void);
256 
257 /* ========================================================================== */
258 /* Static Function Definitions */
259 /* ========================================================================== */
260 
261 /* None */
262 
263 #ifdef __cplusplus
264 }
265 #endif
266 
267 #endif /* #ifndef DSS_H_ */
268 
Dss_DctrlOldiParams
Structure containing OLDI configuration. This structure is used as an argument to IOCTL_DSS_DCTRL_SET...
Definition: am62px/dss_soc.h:251
Dss_ConfigPipelineParams::bpp
uint32_t bpp
Definition: dss/v0/dss.h:116
Dss_DctrlPathInfo
Structure containing DSS path information. This structure is used as an argument to IOCTL_DSS_DCTRL_S...
Definition: dss_dctrl.h:368
Dss_deInit
int32_t Dss_deInit(void)
DSS de-initialization function. This function un-initializes the DSS hardware and drivers....
Dss_InstObject::numFrames
uint32_t numFrames
Definition: dss/v0/dss.h:163
Dss_InstObject::instId
uint32_t instId
Definition: dss/v0/dss.h:161
Dss_Object::vpParams
Dss_DctrlVpParams vpParams
Definition: dss/v0/dss.h:198
Dss_DctrlAdvVpParams
Structure containing advance Video Port information. This structure is used as an argument to IOCTL_D...
Definition: dss_dctrl.h:466
Dss_InitParams
DSS initialization parameters.
Definition: dss/v0/dss.h:103
Dss_DispParams
Structure containing DSS parameters. This structure is used as an argument to IOCTL_DSS_DISP_SET_DSS_...
Definition: dss_disp.h:394
dss_soc.h
DSS Driver SOC specific file.
fvid2.h
Dss_Object
Test application data structure.
Definition: dss/v0/dss.h:189
Dss_ConfigPipelineParams::numTestPipes
uint32_t numTestPipes
Definition: dss/v0/dss.h:114
Dss_initParamsInit
void Dss_initParamsInit(Dss_InitParams *dssParams)
Dss_InitParams structure init function.
Dss_InstObject::drvHandle
Fvid2_Handle drvHandle
Definition: dss/v0/dss.h:175
Dss_InstObject::cbParams
Fvid2_CbParams cbParams
Definition: dss/v0/dss.h:177
Fvid2_CbParams
FVID2 callback parameters that are setup during Fvid2_create().
Definition: fvid2_api.h:436
dss_disp.h
DSS Display Driver interface file.
Dss_Object::layerParams
Dss_DctrlOverlayLayerParams layerParams
Definition: dss/v0/dss.h:206
Dss_DispPipeMflagParams
Structure containing Video Pipe Mflag Information. This structure is used as an argument to IOCTL_DSS...
Definition: dss_disp.h:424
Dss_InstObject::syncSem
SemaphoreP_Object syncSem
Definition: dss/v0/dss.h:181
SemaphoreP.h
Dss_Object::dctrlPathInfo
Dss_DctrlPathInfo * dctrlPathInfo
Definition: dss/v0/dss.h:196
csl_types.h
This file contains the Register Desciptions for CSL types.
Dss_InstObject::mflagParams
Dss_DispPipeMflagParams mflagParams
Definition: dss/v0/dss.h:171
Dss_Object::overlayParams
Dss_DctrlOverlayParams overlayParams
Definition: dss/v0/dss.h:204
Dss_DispCreateStatus
Structure containing create status for the display driver. This should be passed as a status argument...
Definition: dss_disp.h:351
dss_cfg.h
DSS Driver configuration file.
Fvid2_Handle
void * Fvid2_Handle
FVID2 Driver handle.
Definition: fvid2_api.h:197
Dss_DispCreateParams
Structure containing display driver create arguments, used when calling Fvid2_create().
Definition: dss_disp.h:320
Dss_DctrlOverlayParams
Structure containing Overlay information. This structure is used as an argument to IOCTL_DSS_DCTRL_SE...
Definition: dss_dctrl.h:423
Dss_Object::initParams
Dss_InitParams initParams
Definition: dss/v0/dss.h:194
CSL_DSS_VP_SAFETY_REGION_MAX
#define CSL_DSS_VP_SAFETY_REGION_MAX
Safety Region Max.
Definition: csl_dssVideoPort.h:222
Dss_Object::globalDssParams
Dss_DctrlGlobalDssParams globalDssParams
Definition: dss/v0/dss.h:210
Dss_DctrlVpSafetyChkParams
Structure containing Safety Check configuration of Video Port. This structure is used as an argument ...
Definition: dss_dctrl.h:523
Dss_Object::dctrlHandle
Fvid2_Handle dctrlHandle
Definition: dss/v0/dss.h:192
Dss_InstObject
Driver instance information.
Definition: dss/v0/dss.h:160
Dss_InstObject::dispParams
Dss_DispParams dispParams
Definition: dss/v0/dss.h:169
FVID2_MAX_PLANES
#define FVID2_MAX_PLANES
This macro determines the maximum number of planes/address used to represent a video buffer....
Definition: fvid2_dataTypes.h:169
Dss_Object::errorStats
Dss_DctrlVpErrorStats errorStats
Definition: dss/v0/dss.h:208
CSL_DSS_VID_PIPE_ID_MAX
#define CSL_DSS_VID_PIPE_ID_MAX
Video Pipeline Max Id.
Definition: csl_dssTop.h:110
Dss_ConfigPipelineParams
Display pipeline config parameters. The test case execution happens based on values of this structure...
Definition: dss/v0/dss.h:113
Dss_DctrlVpParams
Structure containing Video Port information. This structure is used as an argument to IOCTL_DSS_DCTRL...
Definition: dss_dctrl.h:403
Dss_DctrlOverlayLayerParams
Structure containing Overlay layer information. This structure is used as an argument to IOCTL_DSS_DC...
Definition: dss_dctrl.h:437
Dss_SocParams
DSS SOC parameters.
Definition: am62px/dss_soc.h:239
Fvid2_Frame
FVID2 frame buffer structure.
Definition: fvid2_dataTypes.h:1173
Dss_DctrlGlobalDssParams
Structure containing global DSS Configuration. This structure is used as an argument to IOCTL_DSS_DCT...
Definition: dss_dctrl.h:563
Dss_InstObject::createStatus
Dss_DispCreateStatus createStatus
Definition: dss/v0/dss.h:167
dss_dctrl.h
DSS Controller Driver API/interface file.
Dss_InstObject::frames
Fvid2_Frame * frames
Definition: dss/v0/dss.h:179
SemaphoreP_Object
Opaque semaphore object used with the semaphore APIs.
Definition: SemaphoreP.h:59
Dss_Object::advVpParams
Dss_DctrlAdvVpParams advVpParams
Definition: dss/v0/dss.h:200
Dss_InstObject::safetyParams
Dss_DispPipeSafetyChkParams safetyParams
Definition: dss/v0/dss.h:173
Dss_InstObject::createParams
Dss_DispCreateParams createParams
Definition: dss/v0/dss.h:165
Dss_DispPipeSafetyChkParams
Structure containing Safety Check configuration of Video Port. This structure is used as an argument ...
Definition: dss_disp.h:465
Dss_Object::oldiParams
Dss_DctrlOldiParams * oldiParams
Definition: dss/v0/dss.h:212
Dss_InitParams::socParams
Dss_SocParams socParams
Definition: dss/v0/dss.h:104
Dss_DctrlVpErrorStats
Structure containing Error Stats of Video Port. This structure is used as an argument to IOCTL_DSS_DC...
Definition: dss_dctrl.h:546
Dss_init
int32_t Dss_init(const Dss_InitParams *initParams)
DSS initialization function. This function initializes the DSS hardware and drivers....