PDK API Guide for J721E
CSITX Driver Function API

Introduction

Prototypes for the driver API functions. The user application can link statically to the necessary API functions and call them directly.

Functions

uint32_t CSITX_Probe (const CSITX_Config *config, CSITX_SysReq *memReq)
 
uint32_t CSITX_Init (CSITX_PrivateData *pD, const CSITX_Config *config, const CSITX_Callbacks *callbacks)
 
void CSITX_Isr (CSITX_PrivateData *pD)
 
void CSITX_Start (CSITX_PrivateData *pD)
 
void CSITX_Stop (CSITX_PrivateData *pD)
 
void CSITX_Destroy (void)
 
uint32_t CSITX_SetConfigurationMode (CSITX_PrivateData *pD, uint32_t enable)
 
uint32_t CSITX_GetConfigurationMode (CSITX_PrivateData *pD, uint32_t *enable)
 
uint32_t CSITX_SetDphyConfig (CSITX_PrivateData *pD, const CSITX_DphyConfig *config)
 
uint32_t CSITX_GetDphyConfig (CSITX_PrivateData *pD, CSITX_DphyConfig *config)
 
uint32_t CSITX_SetDphyConfig1 (CSITX_PrivateData *pD, const CSITX_DphyConfig1 *config)
 
uint32_t CSITX_GetDphyConfig1 (CSITX_PrivateData *pD, CSITX_DphyConfig1 *config)
 
uint32_t CSITX_SetVirtualChannelConfig (const CSITX_PrivateData *pD, const CSITX_VirtualChannelConfig *config, CSITX_VcNumber number)
 
uint32_t CSITX_GetVirtualChannelConfig (const CSITX_PrivateData *pD, CSITX_VirtualChannelConfig *config, CSITX_VcNumber number)
 
uint32_t CSITX_SetDataTypeConfig (const CSITX_PrivateData *pD, const CSITX_DataTypeConfig *config, CSITX_DtNumber number)
 
uint32_t CSITX_GetDataTypeConfig (const CSITX_PrivateData *pD, CSITX_DataTypeConfig *config, CSITX_DtNumber number)
 
uint32_t CSITX_SetStreamConfig (const CSITX_PrivateData *pD, const CSITX_StreamConfig *config, CSITX_IfNumber number)
 
uint32_t CSITX_GetStreamConfig (const CSITX_PrivateData *pD, CSITX_StreamConfig *config, CSITX_IfNumber number)
 
uint32_t CSITX_SetBypassModeEnable (CSITX_PrivateData *pD, bool enable)
 
uint32_t CSITX_GetBypassModeEnable (CSITX_PrivateData *pD, bool *enable)
 
uint32_t CSITX_SetSoftResetRequest (CSITX_PrivateData *pD, bool enable)
 
uint32_t CSITX_GetSoftResetRequest (CSITX_PrivateData *pD, bool *enable)
 
uint32_t CSITX_SetInterruptsEnable (CSITX_PrivateData *pD, bool enable)
 
uint32_t CSITX_GetInterruptsEnable (CSITX_PrivateData *pD, bool *enable)
 
uint32_t CSITX_GetStatusRegister (CSITX_PrivateData *pD, uint32_t *value)
 
uint32_t CSITX_GetDphyStatusRegister (CSITX_PrivateData *pD, uint32_t *value)
 
uint32_t CSITX_SetRegWaitBurstTime (CSITX_PrivateData *pD, CSITX_WaitBurstTimeConfig *config)
 
uint32_t CSITX_GetRegWaitBurstTime (CSITX_PrivateData *pD, CSITX_WaitBurstTimeConfig *config)
 
uint32_t CSITX_SetDphyClkWakeup (CSITX_PrivateData *pD, uint16_t value)
 
uint32_t CSITX_GetDphyClkWakeup (CSITX_PrivateData *pD, uint16_t *value)
 
uint32_t CSITX_SetDphyUlpsWakeup (CSITX_PrivateData *pD, uint16_t value)
 
uint32_t CSITX_GetDphyUlpsWakeup (CSITX_PrivateData *pD, uint16_t *value)
 
uint32_t CSITX_SetDebugEnable (CSITX_PrivateData *pD, bool enable)
 
uint32_t CSITX_GetDebugEnable (CSITX_PrivateData *pD, bool *enable)
 
uint32_t CSITX_GetDebugProtFsm (CSITX_PrivateData *pD, uint32_t *value, CSITX_IfNumber number)
 
uint32_t CSITX_GetDebugLnFsm (CSITX_PrivateData *pD, uint32_t *value)
 
uint32_t CSITX_GetDebugClkLnFsm (CSITX_PrivateData *pD, uint32_t *value)
 
uint32_t CSITX_GetDebugDataLnFsm (CSITX_PrivateData *pD, uint32_t *value)
 
uint32_t CSITX_SetTestGenericCtrl (CSITX_PrivateData *pD, uint16_t value)
 
uint32_t CSITX_GetTestGenericCtrl (CSITX_PrivateData *pD, uint16_t *value)
 
uint32_t CSITX_GetTestGenericStatus (CSITX_PrivateData *pD, uint16_t *value)
 
uint32_t CSITX_GetAsfInfo (const CSITX_PrivateData *pD, CSITX_AsfInfo *asfInfo)
 
uint32_t CSITX_GetDeviceConfig (const CSITX_PrivateData *pD, CSITX_DeviceConfig *value)
 
uint32_t CSITX_SetEpdConfig (CSITX_PrivateData *pD, const CSITX_EpdConfig *config)
 
uint32_t CSITX_GetEpdConfig (CSITX_PrivateData *pD, CSITX_EpdConfig *config)
 
uint32_t CSITX_SetScramblerMode (CSITX_PrivateData *pD, bool enable)
 
uint32_t CSITX_GetScramblerMode (CSITX_PrivateData *pD, bool *enable)
 
uint32_t CSITX_SetRxCompatibility (CSITX_PrivateData *pD, CSITX_RxCompatibilityConfig *config)
 
uint32_t CSITX_GetRxCompatibility (CSITX_PrivateData *pD, CSITX_RxCompatibilityConfig *config)
 

Function Documentation

uint32_t CSITX_Probe ( const CSITX_Config *  config,
CSITX_SysReq *  memReq 
)

"Get the driver's memory requirements to support the given configuration."

Parameters
[in]config"Driver/hardware configuration required."
[out]memReq"Size of the memory allocation required."
Returns
CDN_EOK on success (requirements struct filled).
CDN_ENOTSUP if magic number does not match.
CDN_EINVAL if config or memReq is NULL.
uint32_t CSITX_Init ( CSITX_PrivateData *  pD,
const CSITX_Config *  config,
const CSITX_Callbacks *  callbacks 
)

"Initialise the driver instance and state, configure the CSITX as specified in the 'config' settings. The function enables the datapath." @param[in] pD "Driver state info specific to this instance." @param[in] config "Specifies driver/hardware configuration." @param[in] callbacks "Client-supplied callback functions."

Returns
CDN_EOK on success.
CDN_EINVAL if illegal/inconsistent values in 'config' does not support feature(s) required by 'config' parameters.
void CSITX_Isr ( CSITX_PrivateData *  pD)

"Driver ISR. Platform-specific code is responsible for ensuring this gets called when the corresponding hardware's interrupt is asserted. Registering the ISR should be done after calling init, and before calling start. The driver's ISR will not attempt to lock any locks, but will perform client callbacks. If the client wishes to defer processing to non-interrupt time, it is responsible for doing so." @param[in] pD "Driver instance data filled by Init."

void CSITX_Start ( CSITX_PrivateData *  pD)

"Start the CSITX driver, enabling interrupts. This is called after the client has successfully initialized the driver and hooked the driver's ISR (the isr member of this struct) to the IRQ." @param[in] pD "Driver state info specific to this instance."

void CSITX_Stop ( CSITX_PrivateData *  pD)

"Stop the CSITX driver, disabling interrupts."

Parameters
[in]pD"Driver state info specific to this instance."
void CSITX_Destroy ( void  )

"Destructor for the driver."

uint32_t CSITX_SetConfigurationMode ( CSITX_PrivateData *  pD,
uint32_t  enable 
)

"Enables or disables Configuration Request."

Parameters
[in]pD"Driver instance data."
[in]enable"True to enable Configuration Request, false to disable".
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetConfigurationMode ( CSITX_PrivateData *  pD,
uint32_t *  enable 
)

"Gets value of the Configuration request."

Parameters
[in]pD"Driver instance data."
[out]enable"'configuration_request' bit from the CONFIG register is tested. If enable Configuration Request is enabled, false otherwise."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_SetDphyConfig ( CSITX_PrivateData *  pD,
const CSITX_DphyConfig *  config 
)

"Performs D-PHY configuration."

Parameters
[in]pD"Driver instance data."
[in]config"Configuration to apply to D-PHY."
Returns
CDN_EOK on success
CDN_EINVAL for invalid parameter
uint32_t CSITX_GetDphyConfig ( CSITX_PrivateData *  pD,
CSITX_DphyConfig *  config 
)

"Reads the D-PHY configuration."

Parameters
[in]pD"Driver instance data."
[out]config"DPHY config."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_SetDphyConfig1 ( CSITX_PrivateData *  pD,
const CSITX_DphyConfig1 *  config 
)

"Performs D-PHY configuration (DPHY CFG1)."

Parameters
[in]pD"Driver instance data."
[in]config"Configuration to apply to DPHY CFG1."
Returns
CDN_EOK on success
CDN_EINVAL for invalid parameter
uint32_t CSITX_GetDphyConfig1 ( CSITX_PrivateData *  pD,
CSITX_DphyConfig1 *  config 
)

"Reads DPHY configuration (DPHY CFG1)."

Parameters
[in]pD"Driver instance data."
[out]config"DPHY CFG1 config."
Returns
CDN_EOK on success
CDN_EINVAL for invalid parameter
uint32_t CSITX_SetVirtualChannelConfig ( const CSITX_PrivateData *  pD,
const CSITX_VirtualChannelConfig *  config,
CSITX_VcNumber  number 
)

"Writes a virtual channel configuration."

Parameters
[in]pD"Driver instance data."
[in]config"Virtual channel configuration."
[in]numberNumber of the Virtual channel to configure
Returns
CDN_EOK on success
CDN_EINVAL for invalid parameter
uint32_t CSITX_GetVirtualChannelConfig ( const CSITX_PrivateData *  pD,
CSITX_VirtualChannelConfig *  config,
CSITX_VcNumber  number 
)

"Reads a virtual channel configuration."

Parameters
[in]pD"Driver instance data."
[out]config"Virtual channel configuration."
[in]numberNumber of the virtual channel
Returns
CDN_EOK on success
CDN_EINVAL for invalid parameter
uint32_t CSITX_SetDataTypeConfig ( const CSITX_PrivateData *  pD,
const CSITX_DataTypeConfig *  config,
CSITX_DtNumber  number 
)

"Writes a data type configuration."

Parameters
[in]pD"Driver instance data."
[in]config"Data type configuration."
[in]numberNumber of the Data type to configure.
Returns
CDN_EOK on success
CDN_EINVAL for invalid parameter
uint32_t CSITX_GetDataTypeConfig ( const CSITX_PrivateData *  pD,
CSITX_DataTypeConfig *  config,
CSITX_DtNumber  number 
)

"Reads a data type configuration."

Parameters
[in]pD"Driver instance data."
[out]config"Data type configuration."
[in]numberNumber of the data type
Returns
CDN_EOK on success
CDN_EINVAL for invalid parameter
uint32_t CSITX_SetStreamConfig ( const CSITX_PrivateData *  pD,
const CSITX_StreamConfig *  config,
CSITX_IfNumber  number 
)

"Writes a stream configuration."

Parameters
[in]pD"Driver instance data."
[in]config"Stream configuration."
[in]numberPixel interface number.
Returns
CDN_EOK on success
CDN_EINVAL for invalid parameter
uint32_t CSITX_GetStreamConfig ( const CSITX_PrivateData *  pD,
CSITX_StreamConfig *  config,
CSITX_IfNumber  number 
)

"Reads a stream configuration."

Parameters
[in]pD"Driver instance data."
[out]config"Stream configuration."
[in]numberPixel interface number.
Returns
CDN_EOK on success
CDN_EINVAL for invalid parameter
uint32_t CSITX_SetBypassModeEnable ( CSITX_PrivateData *  pD,
bool  enable 
)

"Enables or disables Bypass Mode request."

Parameters
[in]pD"Driver instance data."
[in]enableTrue to enable Bypass mode, false to disable.
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetBypassModeEnable ( CSITX_PrivateData *  pD,
bool *  enable 
)

"Gets value of the Bypass Mode Enable request."

Parameters
[in]pD"Driver instance data."
[out]enable"'bypass_mode_enable' bit from the CONFIG register is tested. If enable Bypass Mode Enable is enabled, false otherwise."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_SetSoftResetRequest ( CSITX_PrivateData *  pD,
bool  enable 
)

"Enables or disables soft reset request."

Parameters
[in]pDDriver instance data
[in]enableTrue to enable soft reset request false to disable.
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetSoftResetRequest ( CSITX_PrivateData *  pD,
bool *  enable 
)

"Gets value of the soft reset request."

Parameters
[in]pDDriver instance data
[out]enable"'soft_reset_request' bit from the CONFIG register is tested. If enable soft reset request is enabled, false otherwise."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_SetInterruptsEnable ( CSITX_PrivateData *  pD,
bool  enable 
)

"Enables or disables interrupts. Note that in order to generate interrupts the IRQ_MASK register must be configured first. If in the driver initialization stage the 'CSITX_Config.enableInterrupts = true', then the IRQ_MASK is configured that all interrupts are generated."

Parameters
[in]pDDriver instance data
[in]enableTrue to enable interrupts, false to disable.
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetInterruptsEnable ( CSITX_PrivateData *  pD,
bool *  enable 
)

"Gets value of the interrupts."

Parameters
[in]pD"Driver instance data."
[out]enable"'irq_enable' bit from the CONFIG register If true interrupts are enabled, false otherwise."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetStatusRegister ( CSITX_PrivateData *  pD,
uint32_t *  value 
)

"Reads Status register value."

Parameters
[in]pD"Driver instance data."
[out]value"Contents of the STATUS register."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetDphyStatusRegister ( CSITX_PrivateData *  pD,
uint32_t *  value 
)

"Reads D-PHY Status register value."

Parameters
[in]pD"Driver instance data."
[out]value"Contents of the DPHY_STATUS register."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_SetRegWaitBurstTime ( CSITX_PrivateData *  pD,
CSITX_WaitBurstTimeConfig *  config 
)

"Writes DPHY Wait Time Configuration."

Parameters
[in]pD"Driver instance data."
[in]configDPHY Wait Time Configuration.
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetRegWaitBurstTime ( CSITX_PrivateData *  pD,
CSITX_WaitBurstTimeConfig *  config 
)

"Reads DPHY Wait Time Configuration."

Parameters
[in]pD"Driver instance data."
[out]config"DPHY Wait Time Configuration."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_SetDphyClkWakeup ( CSITX_PrivateData *  pD,
uint16_t  value 
)

"Writes DPHY_CLK_WAKEUP register with value."

Parameters
[in]pD"Driver instance data."
[in]valueValue to write to the DPHY_CLK_WAKEUP register.
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetDphyClkWakeup ( CSITX_PrivateData *  pD,
uint16_t *  value 
)

"Reads DPHY_CLK_WAKEUP register value."

Parameters
[in]pD"Driver instance data."
[out]value"Contents of the DPHY_CLK_WAKEUP register."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_SetDphyUlpsWakeup ( CSITX_PrivateData *  pD,
uint16_t  value 
)

"Writes DPHY_ULPS_WAKEUP register with value."

Parameters
[in]pD"Driver instance data."
[in]valueValue to write to the DPHY_ULPS_WAKEUP register.
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetDphyUlpsWakeup ( CSITX_PrivateData *  pD,
uint16_t *  value 
)

"Reads DPHY_ULPS_WAKEUP register value."

Parameters
[in]pD"Driver instance data."
[out]value"Contents of the DPHY_ULPS_WAKEUP register."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_SetDebugEnable ( CSITX_PrivateData *  pD,
bool  enable 
)

"Enables or disables CSITX debugging functionality."

Parameters
[in]pD"Driver instance data."
[in]enable"True to enable debugging functionality, false to disable."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetDebugEnable ( CSITX_PrivateData *  pD,
bool *  enable 
)

"Reads status of the core debug functionality."

Parameters
[in]pD"Driver instance data."
[out]enable"True if the the core debug functionality is enabled false otherwise."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetDebugProtFsm ( CSITX_PrivateData *  pD,
uint32_t *  value,
CSITX_IfNumber  number 
)

"Reads debug register for a given Pixel pixel interface."

Parameters
[in]pD"Driver instance data."
[out]value"Contents of the DEBUG_PROT_FSM register."
[in]numberNumber of the Pixel interface.
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetDebugLnFsm ( CSITX_PrivateData *  pD,
uint32_t *  value 
)

"Reads DEBUG_LN_FSM register register value."

Parameters
[in]pD"Driver instance data."
[out]value"Contents of the DEBUG_LN_FSM register."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetDebugClkLnFsm ( CSITX_PrivateData *  pD,
uint32_t *  value 
)

"Reads DEBUG_CLK_LN_FSM register register value."

Parameters
[in]pD"Driver instance data."
[out]value"Contents of the DEBUG_CLK_LN_FSM register."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetDebugDataLnFsm ( CSITX_PrivateData *  pD,
uint32_t *  value 
)

"Reads DEBUG_DATA_LN_FSM register register value."

Parameters
[in]pD"Driver instance data."
[out]value"Contents of the DEBUG_DATA_LN_FSM register."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_SetTestGenericCtrl ( CSITX_PrivateData *  pD,
uint16_t  value 
)

"Sets test_generic_ctrl field of the GENERIC Register."

Parameters
[in]pD"Driver instance data."
[in]value"Test generic_ctrl value."
Returns
CDN_EOK on success
CDN_EINVAL for invalid parameter
uint32_t CSITX_GetTestGenericCtrl ( CSITX_PrivateData *  pD,
uint16_t *  value 
)

"Gets test_generic_ctrl field of the GENERIC Register."

Parameters
[in]pD"Driver instance data."
[out]value"D-PHY config."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetTestGenericStatus ( CSITX_PrivateData *  pD,
uint16_t *  value 
)

"Reads test_generic_status field of the GENERIC register"

Parameters
[in]pD"Driver instance data."
[out]value"Contents of the test_generic_status field".
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetAsfInfo ( const CSITX_PrivateData *  pD,
CSITX_AsfInfo *  asfInfo 
)

Retrieves ASF information from CSITX controller.

Parameters
[in]pDPointer to driver's private data object.
[out]asfInfoPointer to ASF information structure.
Returns
CDN_EINVAL If pD or asfInfo is NULL.
CDN_EOK On success.
uint32_t CSITX_GetDeviceConfig ( const CSITX_PrivateData *  pD,
CSITX_DeviceConfig *  value 
)

"Getter for DeviceConfig."

Parameters
[in]pD"Pointer to the private data initialized by init".
[out]value"Output value."
Returns
CDN_EOK on success
CDN_EINVAL if any pointer parameters are NULL
uint32_t CSITX_SetEpdConfig ( CSITX_PrivateData *  pD,
const CSITX_EpdConfig *  config 
)

"Writes EPD configuration."

Parameters
[in]pD"Driver instance data."
[in]configEPD configuration.
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointers
uint32_t CSITX_GetEpdConfig ( CSITX_PrivateData *  pD,
CSITX_EpdConfig *  config 
)

"Reads EPD configuration."

Parameters
[in]pD"Driver instance data."
[out]configEPD configuration.
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointers
uint32_t CSITX_SetScramblerMode ( CSITX_PrivateData *  pD,
bool  enable 
)

"Enables or disables Scrambler mode."

Parameters
[in]pDDriver instance data
[in]enableTrue to enable scrambler mode, false to disable.
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetScramblerMode ( CSITX_PrivateData *  pD,
bool *  enable 
)

"Gets value of the scrambler mode."

Parameters
[in]pDDriver instance data
[out]enable"Scrambler mode status."
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_SetRxCompatibility ( CSITX_PrivateData *  pD,
CSITX_RxCompatibilityConfig *  config 
)

"Set CSIRX compatibility features."

Parameters
[in]pDDriver instance data
[in]configCSIRX compatibility configuration.
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer
uint32_t CSITX_GetRxCompatibility ( CSITX_PrivateData *  pD,
CSITX_RxCompatibilityConfig *  config 
)

"Get CSIRX compatibility features."

Parameters
[in]pDDriver instance data
[out]configCSIRX compatibility configuration.
Returns
CDN_EOK on success
CDN_EINVAL for invalid pointer