AM62x MCU+ SDK  10.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>
59 #include <drivers/hw_include/cslr_soc.h>
61 #include <drivers/hw_include/csl_dss.h>
66 #include <kernel/dpl/SemaphoreP.h>
67 #include <drivers/fvid2.h>
68 
69 #ifdef __cplusplus
70 extern "C" {
71 #endif
72 
73 /* ========================================================================== */
74 /* Macros & Typedefs */
75 /* ========================================================================== */
76 
78 #define DSS_DISP_DRV_ID (FVID2_DSS_DRV_BASE + 0x00U)
79 
81 #define DSS_DCTRL_DRV_ID (FVID2_DSS_DRV_BASE + 0x01U)
82 
83 /*
84  * IOCTLs Base address.
85  */
87 #define DSS_DISP_IOCTL_BASE (FVID2_DSS_DRV_IOCTL_BASE + 0x000U)
88 
89 #define DSS_DCTRL_IOCTL_BASE (FVID2_DSS_DRV_IOCTL_BASE + 0x100U)
90 
91 #define DSS_DISP_SOC_IOCTL_BASE (DSS_DISP_IOCTL_BASE + 0x40U)
92 
94 #define DSS_DCTRL_SOC_IOCTL_BASE (DSS_DCTRL_IOCTL_BASE + 0x40U)
95 
96 /* ========================================================================== */
97 /* Structure Declarations */
98 /* ========================================================================== */
99 
103 typedef struct
104 {
108 
113 typedef struct
114 {
115  uint32_t numTestPipes;
117  uint32_t bpp;
119  uint32_t instId[CSL_DSS_VID_PIPE_ID_MAX];
121  uint32_t pipeId[CSL_DSS_VID_PIPE_ID_MAX];
123  uint32_t pipeNodeId[CSL_DSS_VID_PIPE_ID_MAX];
125  uint32_t pipeType[CSL_DSS_VID_PIPE_ID_MAX];
127  uint32_t inDataFmt[CSL_DSS_VID_PIPE_ID_MAX];
129  uint32_t inWidth[CSL_DSS_VID_PIPE_ID_MAX];
131  uint32_t inHeight[CSL_DSS_VID_PIPE_ID_MAX];
135  uint32_t inScanFmt[CSL_DSS_VID_PIPE_ID_MAX];
137  uint32_t outWidth[CSL_DSS_VID_PIPE_ID_MAX];
139  uint32_t outHeight[CSL_DSS_VID_PIPE_ID_MAX];
141  uint32_t scEnable[CSL_DSS_VID_PIPE_ID_MAX];
143  uint32_t globalAlpha[CSL_DSS_VID_PIPE_ID_MAX];
145  uint32_t preMultiplyAlpha[CSL_DSS_VID_PIPE_ID_MAX];
147  uint32_t posx[CSL_DSS_VID_PIPE_ID_MAX];
149  uint32_t posy[CSL_DSS_VID_PIPE_ID_MAX];
151  uint32_t invalidPipeId[CSL_DSS_VID_PIPE_ID_MAX];
153  uint32_t safetyCheck[CSL_DSS_VID_PIPE_ID_MAX];
156 
160 typedef struct
161 {
162  uint32_t instId;
164  uint32_t numFrames;
185 
189 typedef struct
190 {
191  uint16_t fwlId;
193  uint64_t startAddr;
195  uint64_t endAddr;
198 
202 typedef struct
203 {
204  uint32_t numFwlRegion;
208 
212 typedef struct
213 {
240 } Dss_Object;
241 
242 /* ========================================================================== */
243 /* Internal/Private Function Declarations */
244 /* ========================================================================== */
245 
246 /* None */
247 
248 /* ========================================================================== */
249 /* Function Declarations */
250 /* ========================================================================== */
251 
259 
271 int32_t Dss_init(const Dss_InitParams *initParams);
272 
281 int32_t Dss_deInit(void);
282 
283 /* ========================================================================== */
284 /* Static Function Definitions */
285 /* ========================================================================== */
286 
287 /* None */
288 
289 #ifdef __cplusplus
290 }
291 #endif
292 
293 #endif /* #ifndef DSS_H_ */
294 
Dss_FirewallRegionConfig
Firewall configuration structure.
Definition: dss/v0/dss.h:203
Dss_DctrlOldiParams
Structure containing OLDI configuration. This structure is used as an argument to IOCTL_DSS_DCTRL_SET...
Definition: am62x/dss_soc.h:304
Dss_ConfigPipelineParams::bpp
uint32_t bpp
Definition: dss/v0/dss.h:117
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:164
Dss_InstObject::instId
uint32_t instId
Definition: dss/v0/dss.h:162
Dss_Object::vpParams
Dss_DctrlVpParams vpParams
Definition: dss/v0/dss.h:222
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:104
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_FirewallRegionConfig::numFwlRegion
uint32_t numFwlRegion
Definition: dss/v0/dss.h:204
Dss_Object
Test application data structure.
Definition: dss/v0/dss.h:213
Dss_ConfigPipelineParams::numTestPipes
uint32_t numTestPipes
Definition: dss/v0/dss.h:115
Dss_initParamsInit
void Dss_initParamsInit(Dss_InitParams *dssParams)
Dss_InitParams structure init function.
Dss_InstObject::drvHandle
Fvid2_Handle drvHandle
Definition: dss/v0/dss.h:176
Dss_InstObject::cbParams
Fvid2_CbParams cbParams
Definition: dss/v0/dss.h:178
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:230
Dss_DispPipeMflagParams
Structure containing Video Pipe Mflag Information. This structure is used as an argument to IOCTL_DSS...
Definition: dss_disp.h:424
DSS_FWL_REGIONS_MAX
#define DSS_FWL_REGIONS_MAX
DSS register regions and associated firewall IDs.
Definition: am62x/dss_soc.h:148
Dss_InstObject::syncSem
SemaphoreP_Object syncSem
Definition: dss/v0/dss.h:182
SemaphoreP.h
Dss_Object::dctrlPathInfo
Dss_DctrlPathInfo * dctrlPathInfo
Definition: dss/v0/dss.h:220
csl_types.h
This file contains the Register Desciptions for CSL types.
Dss_InstObject::mflagParams
Dss_DispPipeMflagParams mflagParams
Definition: dss/v0/dss.h:172
Dss_Object::overlayParams
Dss_DctrlOverlayParams overlayParams
Definition: dss/v0/dss.h:228
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:218
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:234
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:216
Dss_RegionFwlData::fwlId
uint16_t fwlId
Definition: dss/v0/dss.h:191
Dss_InstObject
Driver instance information.
Definition: dss/v0/dss.h:161
Dss_InstObject::dispParams
Dss_DispParams dispParams
Definition: dss/v0/dss.h:170
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:232
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:114
Dss_Object::fwlConfig
Dss_FirewallRegionConfig * fwlConfig
Definition: dss/v0/dss.h:238
Dss_RegionFwlData::startAddr
uint64_t startAddr
Definition: dss/v0/dss.h:193
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: am62x/dss_soc.h:292
Fvid2_Frame
FVID2 frame buffer structure.
Definition: fvid2_dataTypes.h:1176
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:168
dss_dctrl.h
DSS Controller Driver API/interface file.
Dss_InstObject::frames
Fvid2_Frame * frames
Definition: dss/v0/dss.h:180
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:224
Dss_InstObject::safetyParams
Dss_DispPipeSafetyChkParams safetyParams
Definition: dss/v0/dss.h:174
Dss_RegionFwlData
Firewall data structure defining ID, start and end address.
Definition: dss/v0/dss.h:190
Dss_InstObject::createParams
Dss_DispCreateParams createParams
Definition: dss/v0/dss.h:166
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:236
Dss_InitParams::socParams
Dss_SocParams socParams
Definition: dss/v0/dss.h:105
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....
Dss_RegionFwlData::endAddr
uint64_t endAddr
Definition: dss/v0/dss.h:195