PDK API Guide for J721E
DSS SoC Config

Introduction

This is DSS documentation specific to J7 SoC

Sub Modules

 Display Controller IOCTLs
 

Files

file  dss_soc.h
 DSS Driver J7 SOC specific file.
 

Data Structures

struct  Dss_IrqParams
 Structure containing DSS interrupt information. Events should be enabled only for available Video Ports and Video Pipes. More...
 
struct  Dss_RmInfo
 Structure containing resources manager information. This enables display sharing between two different softwares. More...
 
struct  Dss_DpInitParams
 Structure containing Display Port init parameters. More...
 
struct  Dss_DsiInitParams
 Structure containing DSI init parameters. More...
 
struct  Dss_SocParams
 DSS SOC parameters. More...
 
struct  Dss_DctrlDpHpdCbParams
 DSS DP HPD Callback parameters. More...
 

Functions

static uint32_t Dss_dispIsVidInst (uint32_t instId)
 Check if the display driver instance is of type Video pipeline. More...
 
static uint32_t Dss_dispIsVidLInst (uint32_t instId)
 Check if the display driver instance is of type Video lite pipeline. More...
 
static void Dss_irqParamsInit (Dss_IrqParams *irqParams)
 Dss_IrqParams structure init function. More...
 
static void Dss_rmInfoInit (Dss_RmInfo *rmInfo)
 Dss_RmInfo structure init function. More...
 
static void Dss_dpInitParamsInit (Dss_DpInitParams *dpInitParams)
 Dss_DpInitParams structure init function. More...
 
static void Dss_socParamsInit (Dss_SocParams *socParams)
 Dss_SocParams structure init function. More...
 
static void Dss_dctrlDpHpdCbParamsInit (Dss_DctrlDpHpdCbParams *cbParams)
 Dss_DctrlDpHpdCbParams structure init function. More...
 
static void Dss_dsiInitParamsInit (Dss_DsiInitParams *dsiInitParams)
 

Typedefs

typedef void(* Dss_DctrlDpHpdCbFxn) (uint32_t hpdState, void *appData)
 DP HPD callback function prototype. More...
 

Macros

#define DSS_DCTRL_MAX_NODES   (23U)
 Defines maximum number of nodes for allocation including invalid node. More...
 
#define DSS_DCTRL_MAX_EDGES   (37U)
 Defines maximum number of edges for allocation. This is derived by looking at all possible DSS connections in the SoC. More...
 
#define DSS_FUNC_IRQ_DEFAULT_NUM   (52U)
 DSS Safety Interrupt Number for R5. More...
 
#define DSS_SAFE_IRQ_DEFAULT_NUM   (54U)
 DSS Functional Interrupt Number for R5. More...
 
#define DSS_SECURE_IRQ_DEFAULT_NUM   (56U)
 
#define DSS_M2M_WB_PIPELINE_ID_0   (CSL_DSS_WB_PIPE_ID_1)
 DSS M2M/WB pipe-line number available in the SoC. More...
 
#define DSS_M2M_WB_PIPELINE_ID_MAX   (CSL_DSS_WB_PIPE_ID_MAX)
 
#define DSSM2M_NUM_WB_PIPELINE   (CSL_DSS_WB_PIPE_ID_MAX)
 
#define DSSM2M_NUM_PIPELINE_TO_USE_IN_M2M_MODE   (1U)
 DSS pipe-lines number available in the SoC for blending in M2M mode. More...
 
#define DSSM2M_NUM_VIRTUAL_CONTEXT   (8U)
 DSS M2M DRV Virtual Context: Number of virtual contexts per DSS M2M pipeline. More...
 

DSS DCTRL Instance IDs

#define DSS_DCTRL_INST_0   (0U)
 Display controller instance 0. More...
 
#define DSS_DCTRL_INST_MAX   (1U)
 Maximum number of display driver instances. More...
 

DSS Display Instance IDs

#define DSS_DISP_INST_VID1   (CSL_DSS_VID_PIPE_ID_VID1)
 Video 1 Pipeline display driver instance number. More...
 
#define DSS_DISP_INST_VIDL1   (CSL_DSS_VID_PIPE_ID_VIDL1)
 Video Lite 1 Pipeline display driver instance number. More...
 
#define DSS_DISP_INST_VID2   (CSL_DSS_VID_PIPE_ID_VID2)
 Video 2 Pipeline display driver instance number. More...
 
#define DSS_DISP_INST_VIDL2   (CSL_DSS_VID_PIPE_ID_VIDL2)
 Video Lite 2 Pipeline display driver instance number. More...
 
#define DSS_DISP_INST_MAX   (CSL_DSS_VID_PIPE_ID_MAX)
 Maximum number of display driver instances. More...
 

DSS DCTRL Node type

Node types that are used by the set path to connect different modules and create a graph

#define DSS_DCTRL_NODE_TYPE_INVALID   ((uint32_t) 0x0U)
 
#define DSS_DCTRL_NODE_TYPE_PIPE   ((uint32_t) 0x1U)
 
#define DSS_DCTRL_NODE_TYPE_OVERLAY   ((uint32_t) 0x2U)
 
#define DSS_DCTRL_NODE_TYPE_VP   ((uint32_t) 0x3U)
 
#define DSS_DCTRL_NODE_TYPE_OUTPUT   ((uint32_t) 0x4U)
 

DSS DCTRL Node Id

Node ids that are used by the set path to connect different modules and create a graph

#define DSS_DCTRL_NODE_INVALID   (0x0U)
 
#define DSS_DCTRL_NODE_VID1   (0x1U)
 
#define DSS_DCTRL_NODE_VIDL1   (0x2U)
 
#define DSS_DCTRL_NODE_VID2   (0x3U)
 
#define DSS_DCTRL_NODE_VIDL2   (0x4U)
 
#define DSS_DCTRL_NODE_OVERLAY1   (0x5U)
 
#define DSS_DCTRL_NODE_OVERLAY2   (0x6U)
 
#define DSS_DCTRL_NODE_OVERLAY3   (0x7U)
 
#define DSS_DCTRL_NODE_OVERLAY4   (0x8U)
 
#define DSS_DCTRL_NODE_VP1   (0x9U)
 
#define DSS_DCTRL_NODE_VP2   (0xAU)
 
#define DSS_DCTRL_NODE_VP3   (0xBU)
 
#define DSS_DCTRL_NODE_VP4   (0xCU)
 
#define DSS_DCTRL_NODE_DPI_DPI0   (0xDU)
 
#define DSS_DCTRL_NODE_DPI_DPI1   (0xEU)
 
#define DSS_DCTRL_NODE_EDP_DPI0   (0xFU)
 
#define DSS_DCTRL_NODE_EDP_DPI1   (0x10U)
 
#define DSS_DCTRL_NODE_EDP_DPI2   (0x11U)
 
#define DSS_DCTRL_NODE_EDP_DPI3   (0x12U)
 
#define DSS_DCTRL_NODE_DSI_DPI2   (0x13U)
 
#define DSS_DCTRL_NODE_DISCSYNC0   (0x14U)
 
#define DSS_DCTRL_NODE_DISCSYNC1   (0x15U)
 
#define DSS_DCTRL_NODE_WB   (0x16U)
 

Instance Ids for DSS Event Manager.

#define DSS_EVT_MGR_INST_ID_FUNC   ((uint32_t) 0x00U)
 Instance Id for functional interrupts. More...
 
#define DSS_EVT_MGR_INST_ID_SAFETY   ((uint32_t) 0x01U)
 Instance Id for security interrupts. More...
 
#define DSS_EVT_MGR_INST_ID_SECURITY   ((uint32_t) 0x02U)
 Max Instance Id. More...
 
#define DSS_EVT_MGR_INST_ID_MAX   ((uint32_t) 0x03U)
 Invalid Instance Id. More...
 
#define DSS_EVT_MGR_INST_ID_INVALID   ((uint32_t) 0xFFU)
 

Macro Definition Documentation

◆ DSS_DCTRL_INST_0

#define DSS_DCTRL_INST_0   (0U)

Display controller instance 0.

◆ DSS_DCTRL_INST_MAX

#define DSS_DCTRL_INST_MAX   (1U)

Maximum number of display driver instances.

◆ DSS_DISP_INST_VID1

#define DSS_DISP_INST_VID1   (CSL_DSS_VID_PIPE_ID_VID1)

Video 1 Pipeline display driver instance number.

◆ DSS_DISP_INST_VIDL1

#define DSS_DISP_INST_VIDL1   (CSL_DSS_VID_PIPE_ID_VIDL1)

Video Lite 1 Pipeline display driver instance number.

◆ DSS_DISP_INST_VID2

#define DSS_DISP_INST_VID2   (CSL_DSS_VID_PIPE_ID_VID2)

Video 2 Pipeline display driver instance number.

◆ DSS_DISP_INST_VIDL2

#define DSS_DISP_INST_VIDL2   (CSL_DSS_VID_PIPE_ID_VIDL2)

Video Lite 2 Pipeline display driver instance number.

◆ DSS_DISP_INST_MAX

#define DSS_DISP_INST_MAX   (CSL_DSS_VID_PIPE_ID_MAX)

Maximum number of display driver instances.

◆ DSS_DCTRL_NODE_TYPE_INVALID

#define DSS_DCTRL_NODE_TYPE_INVALID   ((uint32_t) 0x0U)

◆ DSS_DCTRL_NODE_TYPE_PIPE

#define DSS_DCTRL_NODE_TYPE_PIPE   ((uint32_t) 0x1U)

◆ DSS_DCTRL_NODE_TYPE_OVERLAY

#define DSS_DCTRL_NODE_TYPE_OVERLAY   ((uint32_t) 0x2U)

◆ DSS_DCTRL_NODE_TYPE_VP

#define DSS_DCTRL_NODE_TYPE_VP   ((uint32_t) 0x3U)

◆ DSS_DCTRL_NODE_TYPE_OUTPUT

#define DSS_DCTRL_NODE_TYPE_OUTPUT   ((uint32_t) 0x4U)

◆ DSS_DCTRL_NODE_INVALID

#define DSS_DCTRL_NODE_INVALID   (0x0U)

◆ DSS_DCTRL_NODE_VID1

#define DSS_DCTRL_NODE_VID1   (0x1U)

◆ DSS_DCTRL_NODE_VIDL1

#define DSS_DCTRL_NODE_VIDL1   (0x2U)

◆ DSS_DCTRL_NODE_VID2

#define DSS_DCTRL_NODE_VID2   (0x3U)

◆ DSS_DCTRL_NODE_VIDL2

#define DSS_DCTRL_NODE_VIDL2   (0x4U)

◆ DSS_DCTRL_NODE_OVERLAY1

#define DSS_DCTRL_NODE_OVERLAY1   (0x5U)

◆ DSS_DCTRL_NODE_OVERLAY2

#define DSS_DCTRL_NODE_OVERLAY2   (0x6U)

◆ DSS_DCTRL_NODE_OVERLAY3

#define DSS_DCTRL_NODE_OVERLAY3   (0x7U)

◆ DSS_DCTRL_NODE_OVERLAY4

#define DSS_DCTRL_NODE_OVERLAY4   (0x8U)

◆ DSS_DCTRL_NODE_VP1

#define DSS_DCTRL_NODE_VP1   (0x9U)

◆ DSS_DCTRL_NODE_VP2

#define DSS_DCTRL_NODE_VP2   (0xAU)

◆ DSS_DCTRL_NODE_VP3

#define DSS_DCTRL_NODE_VP3   (0xBU)

◆ DSS_DCTRL_NODE_VP4

#define DSS_DCTRL_NODE_VP4   (0xCU)

◆ DSS_DCTRL_NODE_DPI_DPI0

#define DSS_DCTRL_NODE_DPI_DPI0   (0xDU)

◆ DSS_DCTRL_NODE_DPI_DPI1

#define DSS_DCTRL_NODE_DPI_DPI1   (0xEU)

◆ DSS_DCTRL_NODE_EDP_DPI0

#define DSS_DCTRL_NODE_EDP_DPI0   (0xFU)

◆ DSS_DCTRL_NODE_EDP_DPI1

#define DSS_DCTRL_NODE_EDP_DPI1   (0x10U)

◆ DSS_DCTRL_NODE_EDP_DPI2

#define DSS_DCTRL_NODE_EDP_DPI2   (0x11U)

◆ DSS_DCTRL_NODE_EDP_DPI3

#define DSS_DCTRL_NODE_EDP_DPI3   (0x12U)

◆ DSS_DCTRL_NODE_DSI_DPI2

#define DSS_DCTRL_NODE_DSI_DPI2   (0x13U)

◆ DSS_DCTRL_NODE_DISCSYNC0

#define DSS_DCTRL_NODE_DISCSYNC0   (0x14U)

◆ DSS_DCTRL_NODE_DISCSYNC1

#define DSS_DCTRL_NODE_DISCSYNC1   (0x15U)

◆ DSS_DCTRL_NODE_WB

#define DSS_DCTRL_NODE_WB   (0x16U)

◆ DSS_DCTRL_MAX_NODES

#define DSS_DCTRL_MAX_NODES   (23U)

Defines maximum number of nodes for allocation including invalid node.

◆ DSS_DCTRL_MAX_EDGES

#define DSS_DCTRL_MAX_EDGES   (37U)

Defines maximum number of edges for allocation. This is derived by looking at all possible DSS connections in the SoC.

DSS Functional Interrupt Number for R5

◆ DSS_FUNC_IRQ_DEFAULT_NUM

#define DSS_FUNC_IRQ_DEFAULT_NUM   (52U)

DSS Safety Interrupt Number for R5.

◆ DSS_SAFE_IRQ_DEFAULT_NUM

#define DSS_SAFE_IRQ_DEFAULT_NUM   (54U)

DSS Functional Interrupt Number for R5.

◆ DSS_SECURE_IRQ_DEFAULT_NUM

#define DSS_SECURE_IRQ_DEFAULT_NUM   (56U)

◆ DSS_EVT_MGR_INST_ID_FUNC

#define DSS_EVT_MGR_INST_ID_FUNC   ((uint32_t) 0x00U)

Instance Id for functional interrupts.

<Instance Id for safety interrupts

◆ DSS_EVT_MGR_INST_ID_SAFETY

#define DSS_EVT_MGR_INST_ID_SAFETY   ((uint32_t) 0x01U)

Instance Id for security interrupts.

◆ DSS_EVT_MGR_INST_ID_SECURITY

#define DSS_EVT_MGR_INST_ID_SECURITY   ((uint32_t) 0x02U)

Max Instance Id.

◆ DSS_EVT_MGR_INST_ID_MAX

#define DSS_EVT_MGR_INST_ID_MAX   ((uint32_t) 0x03U)

Invalid Instance Id.

◆ DSS_EVT_MGR_INST_ID_INVALID

#define DSS_EVT_MGR_INST_ID_INVALID   ((uint32_t) 0xFFU)

◆ DSS_M2M_WB_PIPELINE_ID_0

#define DSS_M2M_WB_PIPELINE_ID_0   (CSL_DSS_WB_PIPE_ID_1)

DSS M2M/WB pipe-line number available in the SoC.

◆ DSS_M2M_WB_PIPELINE_ID_MAX

#define DSS_M2M_WB_PIPELINE_ID_MAX   (CSL_DSS_WB_PIPE_ID_MAX)

◆ DSSM2M_NUM_WB_PIPELINE

#define DSSM2M_NUM_WB_PIPELINE   (CSL_DSS_WB_PIPE_ID_MAX)

◆ DSSM2M_NUM_PIPELINE_TO_USE_IN_M2M_MODE

#define DSSM2M_NUM_PIPELINE_TO_USE_IN_M2M_MODE   (1U)

DSS pipe-lines number available in the SoC for blending in M2M mode.

◆ DSSM2M_NUM_VIRTUAL_CONTEXT

#define DSSM2M_NUM_VIRTUAL_CONTEXT   (8U)

DSS M2M DRV Virtual Context: Number of virtual contexts per DSS M2M pipeline.

Typedef Documentation

◆ Dss_DctrlDpHpdCbFxn

typedef void(* Dss_DctrlDpHpdCbFxn) (uint32_t hpdState, void *appData)

DP HPD callback function prototype.

Parameters
hpdState[OUT] HPD state TRUE / FALSE.
appData[OUT] Application's private data.
Returns
None.

Function Documentation

◆ Dss_dispIsVidInst()

static uint32_t Dss_dispIsVidInst ( uint32_t  instId)
inlinestatic

Check if the display driver instance is of type Video pipeline.

Parameters
instId[IN]Driver Instance Id.
Returns
TRUE if instance is Video pipeline else returns FALSE.

◆ Dss_dispIsVidLInst()

static uint32_t Dss_dispIsVidLInst ( uint32_t  instId)
inlinestatic

Check if the display driver instance is of type Video lite pipeline.

Parameters
instId[IN]Driver Instance Id.
Returns
TRUE if instance is Video lite pipeline else returns FALSE.

◆ Dss_irqParamsInit()

static void Dss_irqParamsInit ( Dss_IrqParams irqParams)
inlinestatic

Dss_IrqParams structure init function.

Parameters
irqParamsPointer to Dss_IrqParams structure.
Returns
None

◆ Dss_rmInfoInit()

static void Dss_rmInfoInit ( Dss_RmInfo rmInfo)
inlinestatic

Dss_RmInfo structure init function.

Parameters
rmInfoPointer to Dss_RmInfo structure.
Returns
None

◆ Dss_dpInitParamsInit()

static void Dss_dpInitParamsInit ( Dss_DpInitParams dpInitParams)
inlinestatic

Dss_DpInitParams structure init function.

Parameters
dpInitParamsPointer to Dss_DpInitParams structure.
Returns
None

◆ Dss_socParamsInit()

static void Dss_socParamsInit ( Dss_SocParams socParams)
inlinestatic

Dss_SocParams structure init function.

Parameters
socParamsPointer to Dss_SocParams structure.
Returns
None

◆ Dss_dctrlDpHpdCbParamsInit()

static void Dss_dctrlDpHpdCbParamsInit ( Dss_DctrlDpHpdCbParams cbParams)
inlinestatic

Dss_DctrlDpHpdCbParams structure init function.

Parameters
cbParamsPointer to Dss_DctrlDpHpdCbParams structure.
Returns
None

◆ Dss_dsiInitParamsInit()

static void Dss_dsiInitParamsInit ( Dss_DsiInitParams dsiInitParams)
inlinestatic