PDK API Guide for J742S2
csitx_if.h
Go to the documentation of this file.
1 /**********************************************************************
2 * Copyright (C) 2012-2019 Cadence Design Systems, Inc.
3 * Redistribution and use in source and binary forms, with or without
4 * modification, are permitted provided that the following conditions
5 * are met:
6 *
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * 3. Neither the name of the copyright holder nor the names of its
13 * contributors may be used to endorse or promote products derived from
14 * this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26 * POSSIBILITY OF SUCH DAMAGE.
27 **********************************************************************
28 * WARNING: This file is auto-generated using api-generator utility.
29 * api-generator: 13.04.5beed88
30 * Do not edit it manually.
31 **********************************************************************
32 * Cadence Core Driver for MIPI CSI Host Controller
33 **********************************************************************/
43 #ifndef CSITX_IF_H
44 #define CSITX_IF_H
45 
46 /* parasoft-begin-suppress MISRA2012-RULE-1_1_a_c90-2 "C90 - limits, DRV-3906" */
47 /* parasoft-begin-suppress MISRA2012-RULE-1_1_b_c90-2 "C90 - limits, DRV-3906" */
48 
49 
57 /**********************************************************************
58 * Defines
59 **********************************************************************/
64 #define CSITX_BPP_YUV_420_8_LEGACY (1.5)
65 
67 #define CSITX_BPP_YUV_420_8 (1U)
68 
70 #define CSITX_BPP_YUV_420_10 (1.25)
71 
73 #define CSITX_BPP_YUV422_8 (2U)
74 
76 #define CSITX_BPP_YUV422_10 (2.5)
77 
79 #define CSITX_BPP_RGB888 (3U)
80 
82 #define CSITX_BPP_RGB666 (2.25)
83 
85 #define CSITX_BPP_RGB565 (2U)
86 
88 #define CSITX_BPP_RGB555 (2U)
89 
91 #define CSITX_BPP_RGB444 (2U)
92 
94 #define CSITX_MAGIC_NUMBER 0x50250300U
95 
108 /**********************************************************************
109 * Forward declarations
110 **********************************************************************/
111 typedef struct CSITX_Config_s CSITX_Config;
112 typedef struct CSITX_DeviceConfig_s CSITX_DeviceConfig;
113 typedef struct CSITX_SysReq_s CSITX_SysReq;
114 typedef struct CSITX_DphyConfig1_s CSITX_DphyConfig1;
115 typedef struct CSITX_DphyConfig_s CSITX_DphyConfig;
116 typedef struct CSITX_DataTypeConfig_s CSITX_DataTypeConfig;
117 typedef struct CSITX_VirtualChannelConfig_s CSITX_VirtualChannelConfig;
118 typedef struct CSITX_WaitBurstTimeConfig_s CSITX_WaitBurstTimeConfig;
119 typedef struct CSITX_StreamConfig_s CSITX_StreamConfig;
120 typedef struct CSITX_RxCompatibilityConfig_s CSITX_RxCompatibilityConfig;
121 typedef struct CSITX_EpdConfig_s CSITX_EpdConfig;
122 typedef struct CSITX_Callbacks_s CSITX_Callbacks;
123 typedef struct CSITX_AsfInfo_s CSITX_AsfInfo;
124 
125 typedef struct CSITX_PrivateData_s CSITX_PrivateData;
126 
127 /**********************************************************************
128 * Enumerations
129 **********************************************************************/
131 typedef enum
132 {
142 
144 typedef enum
145 {
153 
155 typedef enum
156 {
162 
164 typedef enum
165 {
171 
173 typedef enum
174 {
175  CSITX_VC0 = 0U,
176  CSITX_VC1 = 1U,
177  CSITX_VC2 = 2U,
178  CSITX_VC3 = 3U,
179  CSITX_VC4 = 4U,
180  CSITX_VC5 = 5U,
181  CSITX_VC6 = 6U,
182  CSITX_VC7 = 7U,
183  CSITX_VC8 = 8U,
184  CSITX_VC9 = 9U,
185  CSITX_VC10 = 10U,
186  CSITX_VC11 = 11U,
187  CSITX_VC12 = 12U,
188  CSITX_VC13 = 13U,
189  CSITX_VC14 = 14U,
192 
194 typedef enum
195 {
196  CSITX_DT0 = 0U,
197  CSITX_DT1 = 1U,
198  CSITX_DT2 = 2U,
199  CSITX_DT3 = 3U,
200  CSITX_DT4 = 4U,
201  CSITX_DT5 = 5U,
202  CSITX_DT6 = 6U,
203  CSITX_DT7 = 7U,
204  CSITX_DT8 = 8U,
205  CSITX_DT9 = 9U,
206  CSITX_DT10 = 10U,
207  CSITX_DT11 = 11U,
208  CSITX_DT12 = 12U,
209  CSITX_DT13 = 13U,
210  CSITX_DT14 = 14U,
213 
220 typedef enum
221 {
249  CSITX_DFC_RAW6 = 0x28U,
251  CSITX_DFC_RAW7 = 0x29U,
253  CSITX_DFC_RAW8 = 0x2AU,
271 
272 /**********************************************************************
273 * Callbacks
274 **********************************************************************/
276 typedef void (*CSITX_Event)(CSITX_PrivateData* pD, uint32_t irq_event, uint32_t dphy_event);
277 
288 /**********************************************************************
289 * API methods
290 **********************************************************************/
291 
301 uint32_t CSITX_Probe(const CSITX_Config* config, CSITX_SysReq* memReq);
302 
313 uint32_t CSITX_Init(CSITX_PrivateData* pD, const CSITX_Config* config, const CSITX_Callbacks* callbacks);
314 
325 void CSITX_Isr(CSITX_PrivateData* pD);
326 
333 void CSITX_Start(CSITX_PrivateData* pD);
334 
339 void CSITX_Stop(CSITX_PrivateData* pD);
340 
344 void CSITX_Destroy(void);
345 
353 uint32_t CSITX_SetConfigurationMode(CSITX_PrivateData* pD, uint32_t enable);
354 
362 uint32_t CSITX_GetConfigurationMode(CSITX_PrivateData* pD, uint32_t* enable);
363 
371 uint32_t CSITX_SetDphyConfig(CSITX_PrivateData* pD, const CSITX_DphyConfig* config);
372 
380 uint32_t CSITX_GetDphyConfig(CSITX_PrivateData* pD, CSITX_DphyConfig* config);
381 
389 uint32_t CSITX_SetDphyConfig1(CSITX_PrivateData* pD, const CSITX_DphyConfig1* config);
390 
398 uint32_t CSITX_GetDphyConfig1(CSITX_PrivateData* pD, CSITX_DphyConfig1* config);
399 
408 uint32_t CSITX_SetVirtualChannelConfig(const CSITX_PrivateData* pD, const CSITX_VirtualChannelConfig* config, CSITX_VcNumber number);
409 
418 uint32_t CSITX_GetVirtualChannelConfig(const CSITX_PrivateData* pD, CSITX_VirtualChannelConfig* config, CSITX_VcNumber number);
419 
428 uint32_t CSITX_SetDataTypeConfig(const CSITX_PrivateData* pD, const CSITX_DataTypeConfig* config, CSITX_DtNumber number);
429 
438 uint32_t CSITX_GetDataTypeConfig(const CSITX_PrivateData* pD, CSITX_DataTypeConfig* config, CSITX_DtNumber number);
439 
448 uint32_t CSITX_SetStreamConfig(const CSITX_PrivateData* pD, const CSITX_StreamConfig* config, CSITX_IfNumber number);
449 
458 uint32_t CSITX_GetStreamConfig(const CSITX_PrivateData* pD, CSITX_StreamConfig* config, CSITX_IfNumber number);
459 
467 uint32_t CSITX_SetBypassModeEnable(CSITX_PrivateData* pD, bool enable);
468 
476 uint32_t CSITX_GetBypassModeEnable(CSITX_PrivateData* pD, bool* enable);
477 
485 uint32_t CSITX_SetSoftResetRequest(CSITX_PrivateData* pD, bool enable);
486 
494 uint32_t CSITX_GetSoftResetRequest(CSITX_PrivateData* pD, bool* enable);
495 
507 uint32_t CSITX_SetInterruptsEnable(CSITX_PrivateData* pD, bool enable);
508 
516 uint32_t CSITX_GetInterruptsEnable(CSITX_PrivateData* pD, bool* enable);
517 
525 uint32_t CSITX_GetStatusRegister(CSITX_PrivateData* pD, uint32_t* value);
526 
534 uint32_t CSITX_GetDphyStatusRegister(CSITX_PrivateData* pD, uint32_t* value);
535 
543 uint32_t CSITX_SetRegWaitBurstTime(CSITX_PrivateData* pD, CSITX_WaitBurstTimeConfig* config);
544 
552 uint32_t CSITX_GetRegWaitBurstTime(CSITX_PrivateData* pD, CSITX_WaitBurstTimeConfig* config);
553 
561 uint32_t CSITX_SetDphyClkWakeup(CSITX_PrivateData* pD, uint16_t value);
562 
570 uint32_t CSITX_GetDphyClkWakeup(CSITX_PrivateData* pD, uint16_t* value);
571 
579 uint32_t CSITX_SetDphyUlpsWakeup(CSITX_PrivateData* pD, uint16_t value);
580 
588 uint32_t CSITX_GetDphyUlpsWakeup(CSITX_PrivateData* pD, uint16_t* value);
589 
597 uint32_t CSITX_SetDebugEnable(CSITX_PrivateData* pD, bool enable);
598 
606 uint32_t CSITX_GetDebugEnable(CSITX_PrivateData* pD, bool* enable);
607 
616 uint32_t CSITX_GetDebugProtFsm(CSITX_PrivateData* pD, uint32_t* value, CSITX_IfNumber number);
617 
625 uint32_t CSITX_GetDebugLnFsm(CSITX_PrivateData* pD, uint32_t* value);
626 
634 uint32_t CSITX_GetDebugClkLnFsm(CSITX_PrivateData* pD, uint32_t* value);
635 
643 uint32_t CSITX_GetDebugDataLnFsm(CSITX_PrivateData* pD, uint32_t* value);
644 
652 uint32_t CSITX_SetTestGenericCtrl(CSITX_PrivateData* pD, uint16_t value);
653 
661 uint32_t CSITX_GetTestGenericCtrl(CSITX_PrivateData* pD, uint16_t* value);
662 
670 uint32_t CSITX_GetTestGenericStatus(CSITX_PrivateData* pD, uint16_t* value);
671 
679 uint32_t CSITX_GetAsfInfo(const CSITX_PrivateData* pD, CSITX_AsfInfo* asfInfo);
680 
688 uint32_t CSITX_GetDeviceConfig(const CSITX_PrivateData* pD, CSITX_DeviceConfig* value);
689 
697 uint32_t CSITX_SetEpdConfig(CSITX_PrivateData* pD, const CSITX_EpdConfig* config);
698 
706 uint32_t CSITX_GetEpdConfig(CSITX_PrivateData* pD, CSITX_EpdConfig* config);
707 
715 uint32_t CSITX_SetScramblerMode(CSITX_PrivateData* pD, bool enable);
716 
724 uint32_t CSITX_GetScramblerMode(CSITX_PrivateData* pD, bool* enable);
725 
733 uint32_t CSITX_SetRxCompatibility(CSITX_PrivateData* pD, CSITX_RxCompatibilityConfig* config);
734 
742 uint32_t CSITX_GetRxCompatibility(CSITX_PrivateData* pD, CSITX_RxCompatibilityConfig* config);
743 
748 /* parasoft-end-suppress MISRA2012-RULE-1_1_b_c90-2 */
749 /* parasoft-end-suppress MISRA2012-RULE-1_1_a_c90-2 */
750 
751 #endif /* CSITX_IF_H */
752 
uint32_t CSITX_GetDphyConfig1(CSITX_PrivateData *pD, CSITX_DphyConfig1 *config)
uint32_t CSITX_GetRegWaitBurstTime(CSITX_PrivateData *pD, CSITX_WaitBurstTimeConfig *config)
uint32_t CSITX_SetInterruptsEnable(CSITX_PrivateData *pD, bool enable)
Definition: csitx_if.h:210
Definition: csitx_if.h:269
uint32_t CSITX_SetRxCompatibility(CSITX_PrivateData *pD, CSITX_RxCompatibilityConfig *config)
uint32_t CSITX_SetBypassModeEnable(CSITX_PrivateData *pD, bool enable)
Definition: csitx_if.h:247
uint32_t CSITX_SetDphyClkWakeup(CSITX_PrivateData *pD, uint16_t value)
uint32_t CSITX_Init(CSITX_PrivateData *pD, const CSITX_Config *config, const CSITX_Callbacks *callbacks)
uint32_t CSITX_GetStatusRegister(CSITX_PrivateData *pD, uint32_t *value)
uint32_t CSITX_SetDphyConfig(CSITX_PrivateData *pD, const CSITX_DphyConfig *config)
Definition: csitx_if.h:239
Definition: csitx_if.h:267
Definition: csitx_if.h:140
Definition: csitx_structs_if.h:60
Definition: csitx_if.h:265
Definition: csitx_structs_if.h:93
Definition: csitx_if.h:233
Definition: csitx_if.h:190
uint32_t CSITX_GetSoftResetRequest(CSITX_PrivateData *pD, bool *enable)
uint32_t CSITX_SetSoftResetRequest(CSITX_PrivateData *pD, bool enable)
Definition: csitx_if.h:168
Definition: csitx_if.h:197
Definition: csitx_if.h:229
Definition: csitx_if.h:199
Definition: csitx_if.h:167
uint32_t CSITX_GetBypassModeEnable(CSITX_PrivateData *pD, bool *enable)
uint32_t value
Definition: tisci_otp_revision.h:72
uint32_t CSITX_GetDphyStatusRegister(CSITX_PrivateData *pD, uint32_t *value)
Definition: csitx_if.h:201
Definition: csitx_if.h:253
Definition: csitx_structs_if.h:213
Definition: csitx_if.h:151
Definition: csitx_if.h:255
uint32_t CSITX_GetDataTypeConfig(const CSITX_PrivateData *pD, CSITX_DataTypeConfig *config, CSITX_DtNumber number)
CSITX_IfNumber
Definition: csitx_if.h:164
Definition: csitx_if.h:227
Definition: csitx_structs_if.h:196
uint32_t CSITX_GetDphyClkWakeup(CSITX_PrivateData *pD, uint16_t *value)
Definition: csitx_if.h:205
Definition: csitx_if.h:181
Definition: csitx_if.h:231
Definition: csitx_if.h:175
Definition: csitx_if.h:257
Definition: csitx_if.h:149
Definition: csitx_structs_if.h:219
Definition: csitx_if.h:209
Definition: csitx_if.h:198
uint32_t CSITX_GetRxCompatibility(CSITX_PrivateData *pD, CSITX_RxCompatibilityConfig *config)
uint32_t CSITX_GetInterruptsEnable(CSITX_PrivateData *pD, bool *enable)
Definition: csitx_if.h:223
Definition: csitx_structs_if.h:171
Definition: csitx_structs_if.h:68
Definition: csitx_if.h:189
void CSITX_Stop(CSITX_PrivateData *pD)
Definition: csitx_if.h:202
Definition: csitx_if.h:186
Definition: csitx_if.h:147
Definition: csitx_if.h:138
uint32_t CSITX_GetAsfInfo(const CSITX_PrivateData *pD, CSITX_AsfInfo *asfInfo)
uint32_t CSITX_SetVirtualChannelConfig(const CSITX_PrivateData *pD, const CSITX_VirtualChannelConfig *config, CSITX_VcNumber number)
Definition: csitx_if.h:180
uint32_t CSITX_GetEpdConfig(CSITX_PrivateData *pD, CSITX_EpdConfig *config)
Definition: csitx_if.h:176
uint32_t CSITX_SetConfigurationMode(CSITX_PrivateData *pD, uint32_t enable)
Definition: csitx_if.h:166
Definition: csitx_if.h:203
Definition: csitx_if.h:185
CSITX_DphyMode
Definition: csitx_if.h:144
Definition: csitx_if.h:237
void CSITX_Destroy(void)
Definition: csitx_if.h:204
Definition: csitx_if.h:235
Definition: csitx_if.h:211
uint32_t CSITX_GetDphyUlpsWakeup(CSITX_PrivateData *pD, uint16_t *value)
Definition: csitx_if.h:196
Definition: csitx_if.h:178
uint32_t CSITX_GetDebugDataLnFsm(CSITX_PrivateData *pD, uint32_t *value)
Definition: csitx_if.h:251
uint32_t CSITX_SetRegWaitBurstTime(CSITX_PrivateData *pD, CSITX_WaitBurstTimeConfig *config)
CSITX_DataFormatCode
Definition: csitx_if.h:220
Definition: csitx_if.h:169
uint32_t CSITX_GetDebugEnable(CSITX_PrivateData *pD, bool *enable)
Definition: csitx_structs_if.h:100
uint32_t CSITX_GetTestGenericStatus(CSITX_PrivateData *pD, uint16_t *value)
uint32_t CSITX_GetDebugClkLnFsm(CSITX_PrivateData *pD, uint32_t *value)
void CSITX_Isr(CSITX_PrivateData *pD)
Definition: csitx_if.h:177
Definition: csitx_structs_if.h:188
uint32_t CSITX_SetStreamConfig(const CSITX_PrivateData *pD, const CSITX_StreamConfig *config, CSITX_IfNumber number)
Definition: csitx_if.h:200
Definition: csitx_if.h:241
uint32_t CSITX_GetVirtualChannelConfig(const CSITX_PrivateData *pD, CSITX_VirtualChannelConfig *config, CSITX_VcNumber number)
Definition: csitx_if.h:243
uint32_t CSITX_SetDphyConfig1(CSITX_PrivateData *pD, const CSITX_DphyConfig1 *config)
Definition: csitx_if.h:208
Definition: csitx_if.h:245
Definition: csitx_if.h:183
Definition: csitx_if.h:249
uint32_t CSITX_GetDphyConfig(CSITX_PrivateData *pD, CSITX_DphyConfig *config)
Definition: csitx_if.h:206
Definition: csitx_if.h:259
uint32_t CSITX_SetScramblerMode(CSITX_PrivateData *pD, bool enable)
uint32_t CSITX_SetDphyUlpsWakeup(CSITX_PrivateData *pD, uint16_t value)
Definition: csitx_if.h:261
CSITX_DphyClockMode
Definition: csitx_if.h:155
Definition: csitx_if.h:160
CSITX_DtNumber
Definition: csitx_if.h:194
Definition: csitx_if.h:182
uint32_t CSITX_GetScramblerMode(CSITX_PrivateData *pD, bool *enable)
Definition: csitx_if.h:184
uint32_t CSITX_SetEpdConfig(CSITX_PrivateData *pD, const CSITX_EpdConfig *config)
Definition: csitx_structs_if.h:123
void CSITX_Start(CSITX_PrivateData *pD)
uint32_t CSITX_GetDebugProtFsm(CSITX_PrivateData *pD, uint32_t *value, CSITX_IfNumber number)
CSITX_VcNumber
Definition: csitx_if.h:173
uint32_t CSITX_Probe(const CSITX_Config *config, CSITX_SysReq *memReq)
Definition: csitx_if.h:263
Definition: csitx_if.h:188
Definition: csitx_structs_if.h:145
uint32_t CSITX_SetDataTypeConfig(const CSITX_PrivateData *pD, const CSITX_DataTypeConfig *config, CSITX_DtNumber number)
Definition: csitx_if.h:158
Definition: csitx_if.h:207
Definition: csitx_structs_if.h:179
Definition: csitx_if.h:134
uint32_t CSITX_GetDeviceConfig(const CSITX_PrivateData *pD, CSITX_DeviceConfig *value)
uint32_t CSITX_GetTestGenericCtrl(CSITX_PrivateData *pD, uint16_t *value)
Definition: csitx_structs_if.h:163
Definition: csitx_structs_if.h:226
uint32_t CSITX_GetStreamConfig(const CSITX_PrivateData *pD, CSITX_StreamConfig *config, CSITX_IfNumber number)
uint32_t CSITX_SetTestGenericCtrl(CSITX_PrivateData *pD, uint16_t value)
uint32_t CSITX_SetDebugEnable(CSITX_PrivateData *pD, bool enable)
void(* CSITX_Event)(CSITX_PrivateData *pD, uint32_t irq_event, uint32_t dphy_event)
Definition: csitx_if.h:276
Definition: csitx_if.h:179
uint8_t enable
Definition: tisci_pm_clock.h:129
Definition: csitx_if.h:136
Definition: csitx_if.h:225
Definition: csitx_if.h:187
uint32_t CSITX_GetConfigurationMode(CSITX_PrivateData *pD, uint32_t *enable)
CSITX_DataLane
Definition: csitx_if.h:131
uint32_t CSITX_GetDebugLnFsm(CSITX_PrivateData *pD, uint32_t *value)