no-OS
Loading...
Searching...
No Matches
gmsl_common.h File Reference
#include <stdint.h>
#include <stdbool.h>
#include "gmsl_reg_access.h"
Include dependency graph for gmsl_common.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  gmsl_dev
 Structure representing a GMSL device handle, containing configuration parameters and diagnostic operations. This is common device structure for all gmsl devices. It contains device attributes/capabilities. More...
 
struct  gmsl_link_fec_cfg
 Structure for configuring GMSL fec settings. More...
 
struct  gmsl_link_cable_type_cfg
 Structure for configuring GMSL tx-link rate settings. More...
 
struct  gmsl_link_rate_cfg
 Structure for configuring GMSL tx-link rate settings. More...
 
struct  gmsl_link_mode_cfg
 Structure for configuring GMSL settings. More...
 
struct  gmsl_link_enable_cfg
 Structure for configuring GMSL settings. More...
 
struct  gmsl_dev_diag_ops
 A structure that contains diagnostic operation function pointers for a GMSL device. More...
 

Macros

#define FLAG_DIAG_ERR(err_cond, current_diag_err, diag_err)
 
#define VALBITFIELD(reg_val, bitfield)
 
#define BIT(x)
 
#define ARRAY_SIZE(X)
 
#define BITS_PER_LONG   (64U)
 
#define UL(v)
 
#define GENMASK(high, low)
 
#define MASK_0xFF   0xFFU
 

Enumerations

enum  gmsl_link {
  GMSL_LINK_A = 0U ,
  GMSL_LINK_B = 1U ,
  GMSL_LINK_C = 2U ,
  GMSL_LINK_D = 3U
}
 Enumerates GMSL Camera Deserializer Phy/Link. More...
 
enum  gmsl_lf_enable {
  GMSL_LF0_ENABLE = 0x1u ,
  GMSL_LF1_ENABLE = 0x2u ,
  GMSL_LF2_ENABLE = 0x4u ,
  GMSL_LF3_ENABLE = 0x8u ,
  GMSL_LF_ALL_ENABLE = 0xFu
}
 Enumerates the line fault monitor enable options for the GMSL device. More...
 
enum  gmsl_pipe {
  GMSL_PIPE_X = 0u ,
  GMSL_PIPE_Y = 1u ,
  GMSL_PIPE_Z = 2u ,
  GMSL_PIPE_U = 3u
}
 Enumerates the video pipes for the GMSL device. More...
 
enum  gmsl_link_mipi_csi_controller {
  GMSL_LINK_MIPI_CSI_CTRLR_0 = 0u ,
  GMSL_LINK_MIPI_CSI_CTRLR_1 = 1u ,
  GMSL_LINK_MIPI_CSI_CTRLR_2 = 2u ,
  GMSL_LINK_MIPI_CSI_CTRLR_3 = 3u
}
 Enumerates the CSI controllers for the GMSL device. More...
 
enum  gmsl_link_mipi_phy {
  GMSL_LINK_MIPI_CSI_PHY_0 = 0u ,
  GMSL_LINK_MIPI_CSI_PHY_1 = 1u ,
  GMSL_LINK_MIPI_CSI_PHY_2 = 2u ,
  GMSL_LINK_MIPI_CSI_PHY_3 = 3u
}
 Enumerates the MIPI PHYs for the GMSL device. More...
 
enum  gmsl_part_num {
  GMSL_PART_NUM_MAX96724 = 0u ,
  GMSL_PART_NUM_MAX96714 = 1u ,
  GMSL_PART_NUM_MAX96981 = 2u ,
  GMSL_PART_NUM_MAX96793 = 3u ,
  GMSL_PART_NUM_MAX96762 = 4u
}
 Enumerates the part numbers for the GMSL device. More...
 
enum  gmsl_link_cfg {
  GMSL_LINK_A_LINK_CFG = 1 ,
  GMSL_LINK_B_LINK_CFG = 2 ,
  GMSL_BOTH_LINKS_CFG = 3
}
 Enumerates the link configuration options for the GMSL device. More...
 
enum  gmsl_link_cable_type {
  GMSL_LINK_CABLE_TYPE_STP = 0U ,
  GMSL_LINK_CABLE_TYPE_COAX = 1U
}
 
enum  gmsl_link_phy_rate {
  GMSL_LINK_PHY_RATE_187M5 = 0U ,
  GMSL_LINK_PHY_RATE_3G = 1U ,
  GMSL_LINK_PHY_RATE_6G = 2U ,
  GMSL_LINK_PHY_RATE_12G = 3U
}
 Enumerates PHY rate of SerDes. More...
 
enum  gmsl_link_mode {
  GMSL_LINK_MODE_GMSL2_NRZ = 0U ,
  GMSL_LINK_MODE_GMSL3_PAM4 = 1U
}
 Enumerates GMSL link mode. More...
 

Macro Definition Documentation

◆ ARRAY_SIZE

#define ARRAY_SIZE ( X)
Value:
(sizeof(X) / sizeof((X)[0]))

◆ BIT

#define BIT ( x)
Value:
(1U << (x))

◆ BITS_PER_LONG

#define BITS_PER_LONG   (64U)

◆ FLAG_DIAG_ERR

#define FLAG_DIAG_ERR ( err_cond,
current_diag_err,
diag_err )
Value:
{\
if(err_cond) {\
diag_err = true;\
current_diag_err = true;\
}\
else {\
current_diag_err = false;\
}\
}

◆ GENMASK

#define GENMASK ( high,
low )
Value:
(((1 << ((high) - (low) + 1)) - 1) << (low))

◆ MASK_0xFF

#define MASK_0xFF   0xFFU

◆ UL

#define UL ( v)
Value:
v##UL
#define UL(v)
Definition gmsl_common.h:67

◆ VALBITFIELD

#define VALBITFIELD ( reg_val,
bitfield )
Value:
((reg_val) & bitfield##_MASK) >> bitfield##_POS

Enumeration Type Documentation

◆ gmsl_lf_enable

Enumerates the line fault monitor enable options for the GMSL device.

Enumerator
GMSL_LF0_ENABLE 

Enable Line fault monitor 0

GMSL_LF1_ENABLE 

Enable Line fault monitor 1

GMSL_LF2_ENABLE 

Enable Line fault monitor 2

GMSL_LF3_ENABLE 

Enable Line fault monitor 3

GMSL_LF_ALL_ENABLE 

Enable All Line fault monitors

◆ gmsl_link

enum gmsl_link

Enumerates GMSL Camera Deserializer Phy/Link.

Enumerator
GMSL_LINK_A 

GMSL Camera Deserializer Link-A

GMSL_LINK_B 

GMSL Camera Deserializer Link-B

GMSL_LINK_C 

GMSL Camera Deserializer Link-C

GMSL_LINK_D 

GMSL Camera Deserializer Link-D

◆ gmsl_link_cable_type

enum gmsl_link_cable_type
Enumerator
GMSL_LINK_CABLE_TYPE_STP 
GMSL_LINK_CABLE_TYPE_COAX 

◆ gmsl_link_cfg

Enumerates the link configuration options for the GMSL device.

Enumerator
GMSL_LINK_A_LINK_CFG 
GMSL_LINK_B_LINK_CFG 
GMSL_BOTH_LINKS_CFG 

◆ gmsl_link_mipi_csi_controller

Enumerates the CSI controllers for the GMSL device.

Enumerator
GMSL_LINK_MIPI_CSI_CTRLR_0 

CSI Controller 0

GMSL_LINK_MIPI_CSI_CTRLR_1 

CSI Controller 1

GMSL_LINK_MIPI_CSI_CTRLR_2 

CSI Controller 2

GMSL_LINK_MIPI_CSI_CTRLR_3 

CSI Controller 3

◆ gmsl_link_mipi_phy

Enumerates the MIPI PHYs for the GMSL device.

Enumerator
GMSL_LINK_MIPI_CSI_PHY_0 

MIPI PHY 0

GMSL_LINK_MIPI_CSI_PHY_1 

MIPI PHY 1

GMSL_LINK_MIPI_CSI_PHY_2 

MIPI PHY 2

GMSL_LINK_MIPI_CSI_PHY_3 

MIPI PHY 3

◆ gmsl_link_mode

Enumerates GMSL link mode.

Enumerator
GMSL_LINK_MODE_GMSL2_NRZ 

GMSL Link Mode GMSL2

GMSL_LINK_MODE_GMSL3_PAM4 

GMSL Link Mode GMSL3

◆ gmsl_link_phy_rate

Enumerates PHY rate of SerDes.

Enumerator
GMSL_LINK_PHY_RATE_187M5 

GMSL PHY Rate 187.5 Mbps

GMSL_LINK_PHY_RATE_3G 

GMSL PHY Rate 3 Gbps

GMSL_LINK_PHY_RATE_6G 

GMSL PHY Rate 6 Gbps

GMSL_LINK_PHY_RATE_12G 

GMSL PHY Rate 12 Gbps

◆ gmsl_part_num

Enumerates the part numbers for the GMSL device.

Enumerator
GMSL_PART_NUM_MAX96724 

MAX96724

GMSL_PART_NUM_MAX96714 

MAX96714

GMSL_PART_NUM_MAX96981 

MAX96981

GMSL_PART_NUM_MAX96793 

MAX96793

GMSL_PART_NUM_MAX96762 

MAX96762

◆ gmsl_pipe

enum gmsl_pipe

Enumerates the video pipes for the GMSL device.

Enumerator
GMSL_PIPE_X 

Video Pipe X

GMSL_PIPE_Y 

Video Pipe Y

GMSL_PIPE_Z 

Video Pipe Z

GMSL_PIPE_U 

Video Pipe U