hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright (c) 2023 Rockchip Electronics Co., Ltd.
 *
 */
 
#ifndef __MAXIM4C_LINK_H__
#define __MAXIM4C_LINK_H__
 
#include "maxim4c_i2c.h"
 
/* Link cable */
enum maxim4c_link_cable {
   MAXIM4C_CABLE_COAX = 0,
   MAXIM4C_CABLE_STP,
};
 
/* Link Type */
enum maxim4c_link_type {
   MAXIM4C_GMSL1 = 0,
   MAXIM4C_GMSL2,
};
 
/* Link Mode */
enum maxim4c_link_mode {
   MAXIM4C_GMSL_PIXEL = 0,
   MAXIM4C_GMSL_TUNNEL,
};
 
/* I2C Remote Control Port */
enum {
   MAXIM4C_I2C_PORT0 = 0,
   MAXIM4C_I2C_PORT1,
   MAXIM4C_I2C_PORT2,
   MAXIM4C_I2C_PORT_MAX,
};
 
/* Link SIO ID: 0 ~ 3 */
enum {
   MAXIM4C_LINK_ID_A = 0,
   MAXIM4C_LINK_ID_B,
   MAXIM4C_LINK_ID_C,
   MAXIM4C_LINK_ID_D,
   MAXIM4C_LINK_ID_MAX,
};
 
/* Link Bit Mask: bit0 ~ bit3 */
#define MAXIM4C_LINK_MASK_A        BIT(MAXIM4C_LINK_ID_A)
#define MAXIM4C_LINK_MASK_B        BIT(MAXIM4C_LINK_ID_B)
#define MAXIM4C_LINK_MASK_C        BIT(MAXIM4C_LINK_ID_C)
#define MAXIM4C_LINK_MASK_D        BIT(MAXIM4C_LINK_ID_D)
 
#define MAXIM4C_LINK_MASK_ALL        GENMASK(MAXIM4C_LINK_ID_D, MAXIM4C_LINK_ID_A)
 
/* Link Receiver Rate */
enum maxim4c_link_rx_rate {
   MAXIM4C_LINK_RX_RATE_3GBPS = 0,
   MAXIM4C_LINK_RX_RATE_6GBPS,
};
 
/* Link Transmitter Rate */
enum maxim4c_link_tx_rate {
   MAXIM4C_LINK_TX_RATE_187_5MPS = 0,
};
 
struct maxim4c_link_cfg {
   u8 link_enable;
   u8 link_type;
   u8 link_rx_rate;
   u8 link_tx_rate;
 
   struct maxim4c_i2c_init_seq link_init_seq;
};
 
typedef struct maxim4c_gmsl_link {
   u8 link_enable_mask;
   u8 link_type_mask;
   u8 link_locked_mask;
   u8 link_vdd_ldo1_en;
   u8 link_vdd_ldo2_en;
   u8 i2c_ctrl_port;
 
   struct maxim4c_link_cfg link_cfg[MAXIM4C_LINK_ID_MAX];
} maxim4c_gmsl_link_t;
 
#endif /* __MAXIM4C_LINK_H__ */