Explorar o código

msm: camera: csiphy: Add Support for datarate config per csiphy

Tough sensor data rate is same for multiple camera sensors
still it'll depend up the mounting distance from sensor
to CSIPHY or SOC. Hence update datarate setting based on
CSIPHY instance.

CRs-Fixed: 3420314
Change-Id: Ie098b121394e241f360f9ae775bfd83b6bace15b
Signed-off-by: Lokesh Kumar Aakulu <[email protected]>
Lokesh Kumar Aakulu %!s(int64=2) %!d(string=hai) anos
pai
achega
1d7db3ca45

+ 11 - 2
drivers/cam_sensor_module/cam_csiphy/cam_csiphy_core.c

@@ -1058,6 +1058,7 @@ static int cam_csiphy_cphy_data_rate_config(struct csiphy_device *csiphy_device,
 	uint8_t  skew_cal_enable;
 	int32_t  delay;
 	struct csiphy_reg_t *config_params;
+	uint8_t csiphy_index = 0;
 
 	if ((csiphy_device == NULL) || (csiphy_device->ctrl_reg == NULL)) {
 		CAM_ERR(CAM_CSIPHY, "Device is NULL");
@@ -1070,6 +1071,12 @@ static int cam_csiphy_cphy_data_rate_config(struct csiphy_device *csiphy_device,
 		return 0;
 	}
 
+	if (csiphy_device->soc_info.index >= MAX_CSIPHY) {
+		CAM_ERR(CAM_CSIPHY, "soc_info.index:%d >= MAX_CSIPHY:%d ",
+			csiphy_device->soc_info.index, MAX_CSIPHY);
+		return -EINVAL;
+	}
+
 	required_phy_data_rate = csiphy_device->csiphy_info[idx].data_rate;
 	csiphybase = csiphy_device->soc_info.reg_map[0].mem_base;
 	settings_table = csiphy_device->ctrl_reg->data_rates_settings_table;
@@ -1079,12 +1086,15 @@ static int cam_csiphy_cphy_data_rate_config(struct csiphy_device *csiphy_device,
 	do_div(intermediate_var, 200000000);
 	settle_cnt = intermediate_var;
 	skew_cal_enable = csiphy_device->csiphy_info[idx].mipi_flags;
+	csiphy_index = csiphy_device->soc_info.index;
 
 	CAM_DBG(CAM_CSIPHY, "required data rate : %llu", required_phy_data_rate);
 	for (data_rate_idx = 0; data_rate_idx < num_data_rates; data_rate_idx++) {
 		struct data_rate_reg_info_t *drate_settings = settings_table->data_rate_settings;
 		uint64_t supported_phy_bw = drate_settings[data_rate_idx].bandwidth;
 		ssize_t  num_reg_entries = drate_settings[data_rate_idx].data_rate_reg_array_size;
+		struct csiphy_reg_t **drate_reg_array =
+			drate_settings[data_rate_idx].data_rate_reg_array[csiphy_index];
 
 		if ((required_phy_data_rate > supported_phy_bw) &&
 			(data_rate_idx < (num_data_rates - 1))) {
@@ -1103,8 +1113,7 @@ static int cam_csiphy_cphy_data_rate_config(struct csiphy_device *csiphy_device,
 			return -EINVAL;
 		}
 
-		config_params =
-			drate_settings[data_rate_idx].data_rate_reg_array[datarate_variant_idx];
+		config_params = drate_reg_array[datarate_variant_idx];
 		if (!config_params) {
 			CAM_ERR(CAM_CSIPHY, "Datarate settings are null. datarate variant idx: %u",
 				datarate_variant_idx);

+ 1 - 1
drivers/cam_sensor_module/cam_csiphy/cam_csiphy_dev.h

@@ -227,7 +227,7 @@ struct csiphy_device;
 struct data_rate_reg_info_t {
 	uint64_t bandwidth;
 	ssize_t  data_rate_reg_array_size;
-	struct csiphy_reg_t *data_rate_reg_array[CAM_CSIPHY_MAX_DATARATE_VARIANTS];
+	struct csiphy_reg_t *data_rate_reg_array[MAX_CSIPHY][CAM_CSIPHY_MAX_DATARATE_VARIANTS];
 };
 
 /**

+ 97 - 13
drivers/cam_sensor_module/cam_csiphy/include/cam_csiphy_2_1_0_hwreg.h

@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
  * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
- * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2022-2023, Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #ifndef _CAM_CSIPHY_2_1_0_HWREG_H_
@@ -740,73 +740,157 @@ static struct data_rate_reg_info_t data_rate_settings_2_1_0[] = {
 		/* ((1.2 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 2736000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_210_1p2Gsps),
-		.data_rate_reg_array[0] = datarate_210_1p2Gsps
+		.data_rate_reg_array[0][0] = datarate_210_1p2Gsps,
+		.data_rate_reg_array[1][0] = datarate_210_1p2Gsps,
+		.data_rate_reg_array[2][0] = datarate_210_1p2Gsps,
+		.data_rate_reg_array[3][0] = datarate_210_1p2Gsps,
+		.data_rate_reg_array[4][0] = datarate_210_1p2Gsps,
+		.data_rate_reg_array[5][0] = datarate_210_1p2Gsps,
+		.data_rate_reg_array[6][0] = datarate_210_1p2Gsps,
+		.data_rate_reg_array[7][0] = datarate_210_1p2Gsps,
 	},
 	{
 		/* ((1.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 3420000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_210_1p5Gsps),
-		.data_rate_reg_array[0] = datarate_210_1p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_210_1p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_210_1p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_210_1p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_210_1p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_210_1p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_210_1p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_210_1p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_210_1p5Gsps,
 	},
 	{
 		/* ((1.7 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 3876000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_210_1p7Gsps),
-		.data_rate_reg_array[0] = datarate_210_1p7Gsps,
+		.data_rate_reg_array[0][0] = datarate_210_1p7Gsps,
+		.data_rate_reg_array[1][0] = datarate_210_1p7Gsps,
+		.data_rate_reg_array[2][0] = datarate_210_1p7Gsps,
+		.data_rate_reg_array[3][0] = datarate_210_1p7Gsps,
+		.data_rate_reg_array[4][0] = datarate_210_1p7Gsps,
+		.data_rate_reg_array[5][0] = datarate_210_1p7Gsps,
+		.data_rate_reg_array[6][0] = datarate_210_1p7Gsps,
+		.data_rate_reg_array[7][0] = datarate_210_1p7Gsps,
 	},
 	{
 		/* ((2.1 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 4788000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_210_2p1Gsps),
-		.data_rate_reg_array[0] = datarate_210_2p1Gsps,
+		.data_rate_reg_array[0][0] = datarate_210_2p1Gsps,
+		.data_rate_reg_array[1][0] = datarate_210_2p1Gsps,
+		.data_rate_reg_array[2][0] = datarate_210_2p1Gsps,
+		.data_rate_reg_array[3][0] = datarate_210_2p1Gsps,
+		.data_rate_reg_array[4][0] = datarate_210_2p1Gsps,
+		.data_rate_reg_array[5][0] = datarate_210_2p1Gsps,
+		.data_rate_reg_array[6][0] = datarate_210_2p1Gsps,
+		.data_rate_reg_array[7][0] = datarate_210_2p1Gsps,
 	},
 	{
 		/* ((2.35 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 5358000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_210_2p35Gsps),
-		.data_rate_reg_array[0] = datarate_210_2p35Gsps,
+		.data_rate_reg_array[0][0] = datarate_210_2p35Gsps,
+		.data_rate_reg_array[1][0] = datarate_210_2p35Gsps,
+		.data_rate_reg_array[2][0] = datarate_210_2p35Gsps,
+		.data_rate_reg_array[3][0] = datarate_210_2p35Gsps,
+		.data_rate_reg_array[4][0] = datarate_210_2p35Gsps,
+		.data_rate_reg_array[5][0] = datarate_210_2p35Gsps,
+		.data_rate_reg_array[6][0] = datarate_210_2p35Gsps,
+		.data_rate_reg_array[7][0] = datarate_210_2p35Gsps,
 	},
 	{
 		/* ((2.6 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 5928000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_210_2p6Gsps),
-		.data_rate_reg_array[0] = datarate_210_2p6Gsps,
+		.data_rate_reg_array[0][0] = datarate_210_2p6Gsps,
+		.data_rate_reg_array[1][0] = datarate_210_2p6Gsps,
+		.data_rate_reg_array[2][0] = datarate_210_2p6Gsps,
+		.data_rate_reg_array[3][0] = datarate_210_2p6Gsps,
+		.data_rate_reg_array[4][0] = datarate_210_2p6Gsps,
+		.data_rate_reg_array[5][0] = datarate_210_2p6Gsps,
+		.data_rate_reg_array[6][0] = datarate_210_2p6Gsps,
+		.data_rate_reg_array[7][0] = datarate_210_2p6Gsps,
 	},
 	{
 		/* ((2.8 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 6384000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_210_2p8Gsps),
-		.data_rate_reg_array[0] = datarate_210_2p8Gsps,
+		.data_rate_reg_array[0][0] = datarate_210_2p8Gsps,
+		.data_rate_reg_array[1][0] = datarate_210_2p8Gsps,
+		.data_rate_reg_array[2][0] = datarate_210_2p8Gsps,
+		.data_rate_reg_array[3][0] = datarate_210_2p8Gsps,
+		.data_rate_reg_array[4][0] = datarate_210_2p8Gsps,
+		.data_rate_reg_array[5][0] = datarate_210_2p8Gsps,
+		.data_rate_reg_array[6][0] = datarate_210_2p8Gsps,
+		.data_rate_reg_array[7][0] = datarate_210_2p8Gsps,
 	},
 	{
 		/* ((3.3 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 7524000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_210_3p3Gsps),
-		.data_rate_reg_array[0] = datarate_210_3p3Gsps,
+		.data_rate_reg_array[0][0] = datarate_210_3p3Gsps,
+		.data_rate_reg_array[1][0] = datarate_210_3p3Gsps,
+		.data_rate_reg_array[2][0] = datarate_210_3p3Gsps,
+		.data_rate_reg_array[3][0] = datarate_210_3p3Gsps,
+		.data_rate_reg_array[4][0] = datarate_210_3p3Gsps,
+		.data_rate_reg_array[5][0] = datarate_210_3p3Gsps,
+		.data_rate_reg_array[6][0] = datarate_210_3p3Gsps,
+		.data_rate_reg_array[7][0] = datarate_210_3p3Gsps,
 	},
 	{
 		/* ((3.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 7980000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_210_3p5Gsps),
-		.data_rate_reg_array[0] = datarate_210_3p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_210_3p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_210_3p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_210_3p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_210_3p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_210_3p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_210_3p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_210_3p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_210_3p5Gsps,
 	},
 	{
 		/* ((4 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 9120000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_210_4Gsps),
-		.data_rate_reg_array[0] = datarate_210_4Gsps,
+		.data_rate_reg_array[0][0] = datarate_210_4Gsps,
+		.data_rate_reg_array[1][0] = datarate_210_4Gsps,
+		.data_rate_reg_array[2][0] = datarate_210_4Gsps,
+		.data_rate_reg_array[3][0] = datarate_210_4Gsps,
+		.data_rate_reg_array[4][0] = datarate_210_4Gsps,
+		.data_rate_reg_array[5][0] = datarate_210_4Gsps,
+		.data_rate_reg_array[6][0] = datarate_210_4Gsps,
+		.data_rate_reg_array[7][0] = datarate_210_4Gsps,
 	},
 	{
 		/* ((4.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 10260000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_210_4p5Gsps),
-		.data_rate_reg_array[0] = datarate_210_4p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_210_4p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_210_4p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_210_4p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_210_4p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_210_4p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_210_4p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_210_4p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_210_4p5Gsps,
 	},
 	{
 		/* ((5.0 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 11400000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_210_5Gsps),
-		.data_rate_reg_array[0] = datarate_210_5Gsps,
+		.data_rate_reg_array[0][0] = datarate_210_5Gsps,
+		.data_rate_reg_array[1][0] = datarate_210_5Gsps,
+		.data_rate_reg_array[2][0] = datarate_210_5Gsps,
+		.data_rate_reg_array[3][0] = datarate_210_5Gsps,
+		.data_rate_reg_array[4][0] = datarate_210_5Gsps,
+		.data_rate_reg_array[5][0] = datarate_210_5Gsps,
+		.data_rate_reg_array[6][0] = datarate_210_5Gsps,
+		.data_rate_reg_array[7][0] = datarate_210_5Gsps,
 	},
 };
 

+ 97 - 13
drivers/cam_sensor_module/cam_csiphy/include/cam_csiphy_2_1_1_hwreg.h

@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
  * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
- * Copyright (c) 2021-2022, Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021-2023, Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #ifndef _CAM_CSIPHY_2_1_1_HWREG_H_
@@ -729,73 +729,157 @@ static struct data_rate_reg_info_t data_rate_settings_2_1_1[] = {
 		/* ((1.2 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 2736000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_211_1p2Gsps),
-		.data_rate_reg_array[0] = datarate_211_1p2Gsps,
+		.data_rate_reg_array[0][0] = datarate_211_1p2Gsps,
+		.data_rate_reg_array[1][0] = datarate_211_1p2Gsps,
+		.data_rate_reg_array[2][0] = datarate_211_1p2Gsps,
+		.data_rate_reg_array[3][0] = datarate_211_1p2Gsps,
+		.data_rate_reg_array[4][0] = datarate_211_1p2Gsps,
+		.data_rate_reg_array[5][0] = datarate_211_1p2Gsps,
+		.data_rate_reg_array[6][0] = datarate_211_1p2Gsps,
+		.data_rate_reg_array[7][0] = datarate_211_1p2Gsps,
 	},
 	{
 		/* ((1.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 3420000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_211_1p5Gsps),
-		.data_rate_reg_array[0] = datarate_211_1p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_211_1p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_211_1p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_211_1p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_211_1p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_211_1p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_211_1p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_211_1p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_211_1p5Gsps,
 	},
 	{
 		/* ((1.7 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 3876000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_211_1p7Gsps),
-		.data_rate_reg_array[0] = datarate_211_1p7Gsps,
+		.data_rate_reg_array[0][0] = datarate_211_1p7Gsps,
+		.data_rate_reg_array[1][0] = datarate_211_1p7Gsps,
+		.data_rate_reg_array[2][0] = datarate_211_1p7Gsps,
+		.data_rate_reg_array[3][0] = datarate_211_1p7Gsps,
+		.data_rate_reg_array[4][0] = datarate_211_1p7Gsps,
+		.data_rate_reg_array[5][0] = datarate_211_1p7Gsps,
+		.data_rate_reg_array[6][0] = datarate_211_1p7Gsps,
+		.data_rate_reg_array[7][0] = datarate_211_1p7Gsps,
 	},
 	{
 		/* ((2.1 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 4788000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_211_2p1Gsps),
-		.data_rate_reg_array[0] = datarate_211_2p1Gsps,
+		.data_rate_reg_array[0][0] = datarate_211_2p1Gsps,
+		.data_rate_reg_array[1][0] = datarate_211_2p1Gsps,
+		.data_rate_reg_array[2][0] = datarate_211_2p1Gsps,
+		.data_rate_reg_array[3][0] = datarate_211_2p1Gsps,
+		.data_rate_reg_array[4][0] = datarate_211_2p1Gsps,
+		.data_rate_reg_array[5][0] = datarate_211_2p1Gsps,
+		.data_rate_reg_array[6][0] = datarate_211_2p1Gsps,
+		.data_rate_reg_array[7][0] = datarate_211_2p1Gsps,
 	},
 	{
 		/* ((2.35 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 5358000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_211_2p35Gsps),
-		.data_rate_reg_array[0] = datarate_211_2p35Gsps,
+		.data_rate_reg_array[0][0] = datarate_211_2p35Gsps,
+		.data_rate_reg_array[1][0] = datarate_211_2p35Gsps,
+		.data_rate_reg_array[2][0] = datarate_211_2p35Gsps,
+		.data_rate_reg_array[3][0] = datarate_211_2p35Gsps,
+		.data_rate_reg_array[4][0] = datarate_211_2p35Gsps,
+		.data_rate_reg_array[5][0] = datarate_211_2p35Gsps,
+		.data_rate_reg_array[6][0] = datarate_211_2p35Gsps,
+		.data_rate_reg_array[7][0] = datarate_211_2p35Gsps,
 	},
 	{
 		/* ((2.6 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 5928000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_211_2p6Gsps),
-		.data_rate_reg_array[0] = datarate_211_2p6Gsps,
+		.data_rate_reg_array[0][0] = datarate_211_2p6Gsps,
+		.data_rate_reg_array[1][0] = datarate_211_2p6Gsps,
+		.data_rate_reg_array[2][0] = datarate_211_2p6Gsps,
+		.data_rate_reg_array[3][0] = datarate_211_2p6Gsps,
+		.data_rate_reg_array[4][0] = datarate_211_2p6Gsps,
+		.data_rate_reg_array[5][0] = datarate_211_2p6Gsps,
+		.data_rate_reg_array[6][0] = datarate_211_2p6Gsps,
+		.data_rate_reg_array[7][0] = datarate_211_2p6Gsps,
 	},
 	{
 		/* ((2.8 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 6384000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_211_2p8Gsps),
-		.data_rate_reg_array[0] = datarate_211_2p8Gsps,
+		.data_rate_reg_array[0][0] = datarate_211_2p8Gsps,
+		.data_rate_reg_array[1][0] = datarate_211_2p8Gsps,
+		.data_rate_reg_array[2][0] = datarate_211_2p8Gsps,
+		.data_rate_reg_array[3][0] = datarate_211_2p8Gsps,
+		.data_rate_reg_array[4][0] = datarate_211_2p8Gsps,
+		.data_rate_reg_array[5][0] = datarate_211_2p8Gsps,
+		.data_rate_reg_array[6][0] = datarate_211_2p8Gsps,
+		.data_rate_reg_array[7][0] = datarate_211_2p8Gsps,
 	},
 	{
 		/* ((3.3 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 7524000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_211_3p3Gsps),
-		.data_rate_reg_array[0] = datarate_211_3p3Gsps,
+		.data_rate_reg_array[0][0] = datarate_211_3p3Gsps,
+		.data_rate_reg_array[1][0] = datarate_211_3p3Gsps,
+		.data_rate_reg_array[2][0] = datarate_211_3p3Gsps,
+		.data_rate_reg_array[3][0] = datarate_211_3p3Gsps,
+		.data_rate_reg_array[4][0] = datarate_211_3p3Gsps,
+		.data_rate_reg_array[5][0] = datarate_211_3p3Gsps,
+		.data_rate_reg_array[6][0] = datarate_211_3p3Gsps,
+		.data_rate_reg_array[7][0] = datarate_211_3p3Gsps,
 	},
 	{
 		/* ((3.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 7980000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_211_3p5Gsps),
-		.data_rate_reg_array[0] = datarate_211_3p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_211_3p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_211_3p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_211_3p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_211_3p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_211_3p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_211_3p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_211_3p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_211_3p5Gsps,
 	},
 	{
 		/* ((4 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 9120000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_211_4Gsps),
-		.data_rate_reg_array[0] = datarate_211_4Gsps,
+		.data_rate_reg_array[0][0] = datarate_211_4Gsps,
+		.data_rate_reg_array[1][0] = datarate_211_4Gsps,
+		.data_rate_reg_array[2][0] = datarate_211_4Gsps,
+		.data_rate_reg_array[3][0] = datarate_211_4Gsps,
+		.data_rate_reg_array[4][0] = datarate_211_4Gsps,
+		.data_rate_reg_array[5][0] = datarate_211_4Gsps,
+		.data_rate_reg_array[6][0] = datarate_211_4Gsps,
+		.data_rate_reg_array[7][0] = datarate_211_4Gsps,
 	},
 	{
 		/* ((4.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 10260000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_211_4p5Gsps),
-		.data_rate_reg_array[0] = datarate_211_4p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_211_4p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_211_4p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_211_4p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_211_4p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_211_4p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_211_4p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_211_4p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_211_4p5Gsps,
 	},
 	{
 		/* ((5.0 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 11400000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_211_5Gsps),
-		.data_rate_reg_array[0] = datarate_211_5Gsps,
+		.data_rate_reg_array[0][0] = datarate_211_5Gsps,
+		.data_rate_reg_array[1][0] = datarate_211_5Gsps,
+		.data_rate_reg_array[2][0] = datarate_211_5Gsps,
+		.data_rate_reg_array[3][0] = datarate_211_5Gsps,
+		.data_rate_reg_array[4][0] = datarate_211_5Gsps,
+		.data_rate_reg_array[5][0] = datarate_211_5Gsps,
+		.data_rate_reg_array[6][0] = datarate_211_5Gsps,
+		.data_rate_reg_array[7][0] = datarate_211_5Gsps,
 	},
 };
 

+ 225 - 29
drivers/cam_sensor_module/cam_csiphy/include/cam_csiphy_2_1_2_hwreg.h

@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
- * Copyright (c) 2021-2022, Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021-2023, Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #ifndef _CAM_CSIPHY_2_1_2_HWREG_H_
@@ -1493,169 +1493,365 @@ static struct data_rate_reg_info_t data_rate_settings_2_1_2[] = {
 	{
 		/* ((100 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 228000000,
-		.data_rate_reg_array[0] = datarate_212_100Msps,
+		.data_rate_reg_array[0][0] = datarate_212_100Msps,
+		.data_rate_reg_array[1][0] = datarate_212_100Msps,
+		.data_rate_reg_array[2][0] = datarate_212_100Msps,
+		.data_rate_reg_array[3][0] = datarate_212_100Msps,
+		.data_rate_reg_array[4][0] = datarate_212_100Msps,
+		.data_rate_reg_array[5][0] = datarate_212_100Msps,
+		.data_rate_reg_array[6][0] = datarate_212_100Msps,
+		.data_rate_reg_array[7][0] = datarate_212_100Msps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_100Msps),
 	},
 	{
 		/* ((200 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 456000000,
-		.data_rate_reg_array[0] = datarate_212_200Msps,
+		.data_rate_reg_array[0][0] = datarate_212_200Msps,
+		.data_rate_reg_array[1][0] = datarate_212_200Msps,
+		.data_rate_reg_array[2][0] = datarate_212_200Msps,
+		.data_rate_reg_array[3][0] = datarate_212_200Msps,
+		.data_rate_reg_array[4][0] = datarate_212_200Msps,
+		.data_rate_reg_array[5][0] = datarate_212_200Msps,
+		.data_rate_reg_array[6][0] = datarate_212_200Msps,
+		.data_rate_reg_array[7][0] = datarate_212_200Msps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_200Msps),
 	},
 	{
 		/* ((300 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 684000000,
-		.data_rate_reg_array[0] = datarate_212_300Msps,
+		.data_rate_reg_array[0][0] = datarate_212_300Msps,
+		.data_rate_reg_array[1][0] = datarate_212_300Msps,
+		.data_rate_reg_array[2][0] = datarate_212_300Msps,
+		.data_rate_reg_array[3][0] = datarate_212_300Msps,
+		.data_rate_reg_array[4][0] = datarate_212_300Msps,
+		.data_rate_reg_array[5][0] = datarate_212_300Msps,
+		.data_rate_reg_array[6][0] = datarate_212_300Msps,
+		.data_rate_reg_array[7][0] = datarate_212_300Msps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_300Msps),
 	},
 	{
 		/* ((350 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 798000000,
-		.data_rate_reg_array[0] = datarate_212_350Msps,
+		.data_rate_reg_array[0][0] = datarate_212_350Msps,
+		.data_rate_reg_array[1][0] = datarate_212_350Msps,
+		.data_rate_reg_array[2][0] = datarate_212_350Msps,
+		.data_rate_reg_array[3][0] = datarate_212_350Msps,
+		.data_rate_reg_array[4][0] = datarate_212_350Msps,
+		.data_rate_reg_array[5][0] = datarate_212_350Msps,
+		.data_rate_reg_array[6][0] = datarate_212_350Msps,
+		.data_rate_reg_array[7][0] = datarate_212_350Msps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_350Msps),
 	},
 	{
 		/* ((400 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 912000000,
-		.data_rate_reg_array[0] = datarate_212_400Msps,
+		.data_rate_reg_array[0][0] = datarate_212_400Msps,
+		.data_rate_reg_array[1][0] = datarate_212_400Msps,
+		.data_rate_reg_array[2][0] = datarate_212_400Msps,
+		.data_rate_reg_array[3][0] = datarate_212_400Msps,
+		.data_rate_reg_array[4][0] = datarate_212_400Msps,
+		.data_rate_reg_array[5][0] = datarate_212_400Msps,
+		.data_rate_reg_array[6][0] = datarate_212_400Msps,
+		.data_rate_reg_array[7][0] = datarate_212_400Msps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_400Msps),
 	},
 	{
 		/* ((500 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 1140000000,
-		.data_rate_reg_array[0] = datarate_212_500Msps,
+		.data_rate_reg_array[0][0] = datarate_212_500Msps,
+		.data_rate_reg_array[1][0] = datarate_212_500Msps,
+		.data_rate_reg_array[2][0] = datarate_212_500Msps,
+		.data_rate_reg_array[3][0] = datarate_212_500Msps,
+		.data_rate_reg_array[4][0] = datarate_212_500Msps,
+		.data_rate_reg_array[5][0] = datarate_212_500Msps,
+		.data_rate_reg_array[6][0] = datarate_212_500Msps,
+		.data_rate_reg_array[7][0] = datarate_212_500Msps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_500Msps),
 	},
 	{
 		/* ((600 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 1368000000,
-		.data_rate_reg_array[0] = datarate_212_600Msps,
+		.data_rate_reg_array[0][0] = datarate_212_600Msps,
+		.data_rate_reg_array[1][0] = datarate_212_600Msps,
+		.data_rate_reg_array[2][0] = datarate_212_600Msps,
+		.data_rate_reg_array[3][0] = datarate_212_600Msps,
+		.data_rate_reg_array[4][0] = datarate_212_600Msps,
+		.data_rate_reg_array[5][0] = datarate_212_600Msps,
+		.data_rate_reg_array[6][0] = datarate_212_600Msps,
+		.data_rate_reg_array[7][0] = datarate_212_600Msps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_600Msps),
 	},
 	{
 		/* ((700 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 1596000000,
-		.data_rate_reg_array[0] = datarate_212_700Msps,
+		.data_rate_reg_array[0][0] = datarate_212_700Msps,
+		.data_rate_reg_array[1][0] = datarate_212_700Msps,
+		.data_rate_reg_array[2][0] = datarate_212_700Msps,
+		.data_rate_reg_array[3][0] = datarate_212_700Msps,
+		.data_rate_reg_array[4][0] = datarate_212_700Msps,
+		.data_rate_reg_array[5][0] = datarate_212_700Msps,
+		.data_rate_reg_array[6][0] = datarate_212_700Msps,
+		.data_rate_reg_array[7][0] = datarate_212_700Msps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_700Msps),
 	},
 	{
 		/* ((800 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 1824000000,
-		.data_rate_reg_array[0] = datarate_212_800Msps,
+		.data_rate_reg_array[0][0] = datarate_212_800Msps,
+		.data_rate_reg_array[1][0] = datarate_212_800Msps,
+		.data_rate_reg_array[2][0] = datarate_212_800Msps,
+		.data_rate_reg_array[3][0] = datarate_212_800Msps,
+		.data_rate_reg_array[4][0] = datarate_212_800Msps,
+		.data_rate_reg_array[5][0] = datarate_212_800Msps,
+		.data_rate_reg_array[6][0] = datarate_212_800Msps,
+		.data_rate_reg_array[7][0] = datarate_212_800Msps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_800Msps),
 	},
 	{
 		/* ((900 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 2052000000,
-		.data_rate_reg_array[0] = datarate_212_900Msps,
+		.data_rate_reg_array[0][0] = datarate_212_900Msps,
+		.data_rate_reg_array[1][0] = datarate_212_900Msps,
+		.data_rate_reg_array[2][0] = datarate_212_900Msps,
+		.data_rate_reg_array[3][0] = datarate_212_900Msps,
+		.data_rate_reg_array[4][0] = datarate_212_900Msps,
+		.data_rate_reg_array[5][0] = datarate_212_900Msps,
+		.data_rate_reg_array[6][0] = datarate_212_900Msps,
+		.data_rate_reg_array[7][0] = datarate_212_900Msps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_900Msps),
 	},
 	{
 		/* ((1000 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 2280000000,
-		.data_rate_reg_array[0] = datarate_212_1p0Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_1p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_1p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_1p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_1p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_1p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_1p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_1p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_1p0Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_1p0Gsps),
 	},
 	{
 		/* ((1.2 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 2736000000,
-		.data_rate_reg_array[0] = datarate_212_1p2Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_1p2Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_1p2Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_1p2Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_1p2Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_1p2Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_1p2Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_1p2Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_1p2Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_1p2Gsps),
 	},
 	{
 		/* ((1.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 3420000000,
-		.data_rate_reg_array[0] = datarate_212_1p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_1p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_1p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_1p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_1p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_1p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_1p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_1p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_1p5Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_1p5Gsps),
 	},
 	{
 		/* ((1.7 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 3876000000,
-		.data_rate_reg_array[0] = datarate_212_1p7Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_1p7Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_1p7Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_1p7Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_1p7Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_1p7Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_1p7Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_1p7Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_1p7Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_1p7Gsps),
 	},
 	{
 		/* ((2.0 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 4560000000,
-		.data_rate_reg_array[0] = datarate_212_2p0Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_2p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_2p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_2p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_2p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_2p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_2p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_2p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_2p0Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_2p0Gsps),
 	},
 	{
 		/* ((2.1 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 4788000000,
-		.data_rate_reg_array[0] = datarate_212_2p1Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_2p1Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_2p1Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_2p1Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_2p1Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_2p1Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_2p1Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_2p1Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_2p1Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_2p1Gsps),
 	},
 	{
 		/* ((2.35 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 5358000000,
-		.data_rate_reg_array[0] = datarate_212_2p35Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_2p35Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_2p35Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_2p35Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_2p35Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_2p35Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_2p35Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_2p35Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_2p35Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_2p35Gsps),
 	},
 	{
 		/* ((2.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 5700000000,
-		.data_rate_reg_array[0] = datarate_212_2p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_2p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_2p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_2p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_2p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_2p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_2p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_2p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_2p5Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_2p5Gsps),
 	},
 	{
 		/* ((2.6 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 5928000000,
-		.data_rate_reg_array[0] = datarate_212_2p6Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_2p6Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_2p6Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_2p6Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_2p6Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_2p6Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_2p6Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_2p6Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_2p6Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_2p6Gsps),
 	},
 	{
 		/* ((2.8 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 6384000000,
-		.data_rate_reg_array[0] = datarate_212_2p8Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_2p8Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_2p8Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_2p8Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_2p8Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_2p8Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_2p8Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_2p8Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_2p8Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_2p8Gsps),
 	},
 	{
 		/* ((3.0 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 6840000000,
-		.data_rate_reg_array[0] = datarate_212_3p0Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_3p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_3p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_3p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_3p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_3p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_3p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_3p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_3p0Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_3p0Gsps),
 	},
 	{
 		/* ((3.3 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 7524000000,
-		.data_rate_reg_array[0] = datarate_212_3p3Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_3p3Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_3p3Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_3p3Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_3p3Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_3p3Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_3p3Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_3p3Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_3p3Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_3p3Gsps),
 	},
 	{
 		/* ((3.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 7980000000,
-		.data_rate_reg_array[0] = datarate_212_3p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_3p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_3p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_3p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_3p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_3p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_3p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_3p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_3p5Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_3p5Gsps),
 	},
 	{
 		/* ((4 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 9120000000,
-		.data_rate_reg_array[0] = datarate_212_4p0Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_4p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_4p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_4p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_4p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_4p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_4p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_4p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_4p0Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_4p0Gsps),
 	},
 	{
 		/* ((4.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 10260000000,
-		.data_rate_reg_array[0] = datarate_212_4p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_4p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_4p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_4p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_4p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_4p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_4p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_4p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_4p5Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_4p5Gsps),
 	},
 	{
 		/* ((5.0 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 11400000000,
-		.data_rate_reg_array[0] = datarate_212_5p0Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_5p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_5p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_5p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_5p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_5p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_5p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_5p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_5p0Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_5p0Gsps),
 	},
 	{
 		/* ((5.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 12540000000,
-		.data_rate_reg_array[0] = datarate_212_5p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_5p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_5p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_5p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_5p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_5p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_5p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_5p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_5p5Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_5p5Gsps),
 	},
 	{
 		/* ((6.0 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 13680000000,
-		.data_rate_reg_array[0] = datarate_212_6p0Gsps,
+		.data_rate_reg_array[0][0] = datarate_212_6p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_212_6p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_212_6p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_212_6p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_212_6p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_212_6p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_212_6p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_212_6p0Gsps,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_212_6p0Gsps),
 	},
 };

+ 201 - 26
drivers/cam_sensor_module/cam_csiphy/include/cam_csiphy_2_1_3_hwreg.h

@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
  * Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
- * Copyright (c) 2021-2022, Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021-2023, Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #ifndef _CAM_CSIPHY_2_1_3_HWREG_H_
@@ -1111,151 +1111,326 @@ static struct data_rate_reg_info_t data_rate_settings_2_1_3[] = {
 		/* ((100 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 228000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_100Msps),
-		.data_rate_reg_array[0] = datarate_213_100Msps
+		.data_rate_reg_array[0][0] = datarate_213_100Msps,
+		.data_rate_reg_array[1][0] = datarate_213_100Msps,
+		.data_rate_reg_array[2][0] = datarate_213_100Msps,
+		.data_rate_reg_array[3][0] = datarate_213_100Msps,
+		.data_rate_reg_array[4][0] = datarate_213_100Msps,
+		.data_rate_reg_array[5][0] = datarate_213_100Msps,
+		.data_rate_reg_array[6][0] = datarate_213_100Msps,
+		.data_rate_reg_array[7][0] = datarate_213_100Msps
 	},
 	{
 		/* ((200 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 456000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_200Msps),
-		.data_rate_reg_array[0] = datarate_213_200Msps
+		.data_rate_reg_array[0][0] = datarate_213_200Msps,
+		.data_rate_reg_array[1][0] = datarate_213_200Msps,
+		.data_rate_reg_array[2][0] = datarate_213_200Msps,
+		.data_rate_reg_array[3][0] = datarate_213_200Msps,
+		.data_rate_reg_array[4][0] = datarate_213_200Msps,
+		.data_rate_reg_array[5][0] = datarate_213_200Msps,
+		.data_rate_reg_array[6][0] = datarate_213_200Msps,
+		.data_rate_reg_array[7][0] = datarate_213_200Msps
 	},
 	{
 		/* ((300 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 684000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_300Msps),
-		.data_rate_reg_array[0] = datarate_213_300Msps
+		.data_rate_reg_array[0][0] = datarate_213_300Msps,
+		.data_rate_reg_array[1][0] = datarate_213_300Msps,
+		.data_rate_reg_array[2][0] = datarate_213_300Msps,
+		.data_rate_reg_array[3][0] = datarate_213_300Msps,
+		.data_rate_reg_array[4][0] = datarate_213_300Msps,
+		.data_rate_reg_array[5][0] = datarate_213_300Msps,
+		.data_rate_reg_array[6][0] = datarate_213_300Msps,
+		.data_rate_reg_array[7][0] = datarate_213_300Msps
 	},
 	{
 		/* ((400 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 912000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_400Msps),
-		.data_rate_reg_array[0] = datarate_213_400Msps
+		.data_rate_reg_array[0][0] = datarate_213_400Msps,
+		.data_rate_reg_array[1][0] = datarate_213_400Msps,
+		.data_rate_reg_array[2][0] = datarate_213_400Msps,
+		.data_rate_reg_array[3][0] = datarate_213_400Msps,
+		.data_rate_reg_array[4][0] = datarate_213_400Msps,
+		.data_rate_reg_array[5][0] = datarate_213_400Msps,
+		.data_rate_reg_array[6][0] = datarate_213_400Msps,
+		.data_rate_reg_array[7][0] = datarate_213_400Msps
 	},
 	{
 		/* ((500 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 1140000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_500Msps),
-		.data_rate_reg_array[0] = datarate_213_500Msps
+		.data_rate_reg_array[0][0] = datarate_213_500Msps,
+		.data_rate_reg_array[1][0] = datarate_213_500Msps,
+		.data_rate_reg_array[2][0] = datarate_213_500Msps,
+		.data_rate_reg_array[3][0] = datarate_213_500Msps,
+		.data_rate_reg_array[4][0] = datarate_213_500Msps,
+		.data_rate_reg_array[5][0] = datarate_213_500Msps,
+		.data_rate_reg_array[6][0] = datarate_213_500Msps,
+		.data_rate_reg_array[7][0] = datarate_213_500Msps
 	},
 	{
 		/* ((600 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 1368000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_600Msps),
-		.data_rate_reg_array[0] = datarate_213_600Msps
+		.data_rate_reg_array[0][0] = datarate_213_600Msps,
+		.data_rate_reg_array[1][0] = datarate_213_600Msps,
+		.data_rate_reg_array[2][0] = datarate_213_600Msps,
+		.data_rate_reg_array[3][0] = datarate_213_600Msps,
+		.data_rate_reg_array[4][0] = datarate_213_600Msps,
+		.data_rate_reg_array[5][0] = datarate_213_600Msps,
+		.data_rate_reg_array[6][0] = datarate_213_600Msps,
+		.data_rate_reg_array[7][0] = datarate_213_600Msps
 	},
 	{
 		/* ((700 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 1596000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_700Msps),
-		.data_rate_reg_array[0] = datarate_213_700Msps
+		.data_rate_reg_array[0][0] = datarate_213_700Msps,
+		.data_rate_reg_array[1][0] = datarate_213_700Msps,
+		.data_rate_reg_array[2][0] = datarate_213_700Msps,
+		.data_rate_reg_array[3][0] = datarate_213_700Msps,
+		.data_rate_reg_array[4][0] = datarate_213_700Msps,
+		.data_rate_reg_array[5][0] = datarate_213_700Msps,
+		.data_rate_reg_array[6][0] = datarate_213_700Msps,
+		.data_rate_reg_array[7][0] = datarate_213_700Msps
 	},
 	{
 		/* ((800 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 1824000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_800Msps),
-		.data_rate_reg_array[0] = datarate_213_800Msps
+		.data_rate_reg_array[0][0] = datarate_213_800Msps,
+		.data_rate_reg_array[1][0] = datarate_213_800Msps,
+		.data_rate_reg_array[2][0] = datarate_213_800Msps,
+		.data_rate_reg_array[3][0] = datarate_213_800Msps,
+		.data_rate_reg_array[4][0] = datarate_213_800Msps,
+		.data_rate_reg_array[5][0] = datarate_213_800Msps,
+		.data_rate_reg_array[6][0] = datarate_213_800Msps,
+		.data_rate_reg_array[7][0] = datarate_213_800Msps
 	},
 	{
 		/* ((900 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 2052000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_900Msps),
-		.data_rate_reg_array[0] = datarate_213_900Msps
+		.data_rate_reg_array[0][0] = datarate_213_900Msps,
+		.data_rate_reg_array[1][0] = datarate_213_900Msps,
+		.data_rate_reg_array[2][0] = datarate_213_900Msps,
+		.data_rate_reg_array[3][0] = datarate_213_900Msps,
+		.data_rate_reg_array[4][0] = datarate_213_900Msps,
+		.data_rate_reg_array[5][0] = datarate_213_900Msps,
+		.data_rate_reg_array[6][0] = datarate_213_900Msps,
+		.data_rate_reg_array[7][0] = datarate_213_900Msps
 	},
 	{
 		/* ((1000 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 2280000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_1p0Gsps),
-		.data_rate_reg_array[0] = datarate_213_1p0Gsps
+		.data_rate_reg_array[0][0] = datarate_213_1p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_213_1p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_213_1p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_213_1p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_213_1p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_213_1p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_213_1p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_213_1p0Gsps
 	},
 	{
 		/* ((1.2 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 2736000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_1p2Gsps),
-		.data_rate_reg_array[0] = datarate_213_1p2Gsps
+		.data_rate_reg_array[0][0] = datarate_213_1p2Gsps,
+		.data_rate_reg_array[1][0] = datarate_213_1p2Gsps,
+		.data_rate_reg_array[2][0] = datarate_213_1p2Gsps,
+		.data_rate_reg_array[3][0] = datarate_213_1p2Gsps,
+		.data_rate_reg_array[4][0] = datarate_213_1p2Gsps,
+		.data_rate_reg_array[5][0] = datarate_213_1p2Gsps,
+		.data_rate_reg_array[6][0] = datarate_213_1p2Gsps,
+		.data_rate_reg_array[7][0] = datarate_213_1p2Gsps
 	},
 	{
 		/* ((1.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 3420000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_1p5Gsps),
-		.data_rate_reg_array[0] = datarate_213_1p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_213_1p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_213_1p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_213_1p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_213_1p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_213_1p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_213_1p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_213_1p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_213_1p5Gsps
 	},
 	{
 		/* ((1.7 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 3876000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_1p7Gsps),
-		.data_rate_reg_array[0] = datarate_213_1p7Gsps,
+		.data_rate_reg_array[0][0] = datarate_213_1p7Gsps,
+		.data_rate_reg_array[1][0] = datarate_213_1p7Gsps,
+		.data_rate_reg_array[2][0] = datarate_213_1p7Gsps,
+		.data_rate_reg_array[3][0] = datarate_213_1p7Gsps,
+		.data_rate_reg_array[4][0] = datarate_213_1p7Gsps,
+		.data_rate_reg_array[5][0] = datarate_213_1p7Gsps,
+		.data_rate_reg_array[6][0] = datarate_213_1p7Gsps,
+		.data_rate_reg_array[7][0] = datarate_213_1p7Gsps
 	},
 	{
 		/* ((2.0 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 4560000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_2p0Gsps),
-		.data_rate_reg_array[0] = datarate_213_2p0Gsps
+		.data_rate_reg_array[0][0] = datarate_213_2p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_213_2p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_213_2p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_213_2p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_213_2p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_213_2p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_213_2p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_213_2p0Gsps
 	},
 	{
 		/* ((2.1 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 4788000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_2p1Gsps),
-		.data_rate_reg_array[0] = datarate_213_2p1Gsps,
+		.data_rate_reg_array[0][0] = datarate_213_2p1Gsps,
+		.data_rate_reg_array[1][0] = datarate_213_2p1Gsps,
+		.data_rate_reg_array[2][0] = datarate_213_2p1Gsps,
+		.data_rate_reg_array[3][0] = datarate_213_2p1Gsps,
+		.data_rate_reg_array[4][0] = datarate_213_2p1Gsps,
+		.data_rate_reg_array[5][0] = datarate_213_2p1Gsps,
+		.data_rate_reg_array[6][0] = datarate_213_2p1Gsps,
+		.data_rate_reg_array[7][0] = datarate_213_2p1Gsps
 	},
 	{
 		/* ((2.35 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 5358000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_2p35Gsps),
-		.data_rate_reg_array[0] = datarate_213_2p35Gsps,
+		.data_rate_reg_array[0][0] = datarate_213_2p35Gsps,
+		.data_rate_reg_array[1][0] = datarate_213_2p35Gsps,
+		.data_rate_reg_array[2][0] = datarate_213_2p35Gsps,
+		.data_rate_reg_array[3][0] = datarate_213_2p35Gsps,
+		.data_rate_reg_array[4][0] = datarate_213_2p35Gsps,
+		.data_rate_reg_array[5][0] = datarate_213_2p35Gsps,
+		.data_rate_reg_array[6][0] = datarate_213_2p35Gsps,
+		.data_rate_reg_array[7][0] = datarate_213_2p35Gsps
 	},
 	{
 		/* ((2.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 5700000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_2p5Gsps),
-		.data_rate_reg_array[0] = datarate_213_2p5Gsps
+		.data_rate_reg_array[0][0] = datarate_213_2p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_213_2p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_213_2p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_213_2p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_213_2p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_213_2p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_213_2p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_213_2p5Gsps
 	},
 	{
 		/* ((2.6 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 5928000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_2p6Gsps),
-		.data_rate_reg_array[0] = datarate_213_2p6Gsps,
+		.data_rate_reg_array[0][0] = datarate_213_2p6Gsps,
+		.data_rate_reg_array[1][0] = datarate_213_2p6Gsps,
+		.data_rate_reg_array[2][0] = datarate_213_2p6Gsps,
+		.data_rate_reg_array[3][0] = datarate_213_2p6Gsps,
+		.data_rate_reg_array[4][0] = datarate_213_2p6Gsps,
+		.data_rate_reg_array[5][0] = datarate_213_2p6Gsps,
+		.data_rate_reg_array[6][0] = datarate_213_2p6Gsps,
+		.data_rate_reg_array[7][0] = datarate_213_2p6Gsps,
 	},
 	{
 		/* ((2.8 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 6384000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_2p8Gsps),
-		.data_rate_reg_array[0] = datarate_213_2p8Gsps,
+		.data_rate_reg_array[0][0] = datarate_213_2p8Gsps,
+		.data_rate_reg_array[1][0] = datarate_213_2p8Gsps,
+		.data_rate_reg_array[2][0] = datarate_213_2p8Gsps,
+		.data_rate_reg_array[3][0] = datarate_213_2p8Gsps,
+		.data_rate_reg_array[4][0] = datarate_213_2p8Gsps,
+		.data_rate_reg_array[5][0] = datarate_213_2p8Gsps,
+		.data_rate_reg_array[6][0] = datarate_213_2p8Gsps,
+		.data_rate_reg_array[7][0] = datarate_213_2p8Gsps,
 	},
 	{
 		/* ((3.0 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 6840000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_3p0Gsps),
-		.data_rate_reg_array[0] = datarate_213_3p0Gsps
+		.data_rate_reg_array[0][0] = datarate_213_3p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_213_3p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_213_3p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_213_3p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_213_3p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_213_3p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_213_3p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_213_3p0Gsps,
 	},
 	{
 		/* ((3.3 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 7524000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_3p3Gsps),
-		.data_rate_reg_array[0] = datarate_213_3p3Gsps,
+		.data_rate_reg_array[0][0] = datarate_213_3p3Gsps,
+		.data_rate_reg_array[1][0] = datarate_213_3p3Gsps,
+		.data_rate_reg_array[2][0] = datarate_213_3p3Gsps,
+		.data_rate_reg_array[3][0] = datarate_213_3p3Gsps,
+		.data_rate_reg_array[4][0] = datarate_213_3p3Gsps,
+		.data_rate_reg_array[5][0] = datarate_213_3p3Gsps,
+		.data_rate_reg_array[6][0] = datarate_213_3p3Gsps,
+		.data_rate_reg_array[7][0] = datarate_213_3p3Gsps,
 	},
 	{
 		/* ((3.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 7980000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_3p5Gsps),
-		.data_rate_reg_array[0] = datarate_213_3p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_213_3p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_213_3p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_213_3p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_213_3p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_213_3p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_213_3p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_213_3p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_213_3p5Gsps,
 	},
 	{
 		/* ((4 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 9120000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_4Gsps),
-		.data_rate_reg_array[0] = datarate_213_4Gsps,
+		.data_rate_reg_array[0][0] = datarate_213_4Gsps,
+		.data_rate_reg_array[1][0] = datarate_213_4Gsps,
+		.data_rate_reg_array[2][0] = datarate_213_4Gsps,
+		.data_rate_reg_array[3][0] = datarate_213_4Gsps,
+		.data_rate_reg_array[4][0] = datarate_213_4Gsps,
+		.data_rate_reg_array[5][0] = datarate_213_4Gsps,
+		.data_rate_reg_array[6][0] = datarate_213_4Gsps,
+		.data_rate_reg_array[7][0] = datarate_213_4Gsps,
 	},
 	{
 		/* ((4.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 10260000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_4p5Gsps),
-		.data_rate_reg_array[0] = datarate_213_4p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_213_4p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_213_4p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_213_4p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_213_4p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_213_4p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_213_4p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_213_4p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_213_4p5Gsps,
 	},
 	{
 		/* ((5.0 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 11400000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_213_5Gsps),
-		.data_rate_reg_array[0] = datarate_213_5Gsps,
+		.data_rate_reg_array[0][0] = datarate_213_5Gsps,
+		.data_rate_reg_array[1][0] = datarate_213_5Gsps,
+		.data_rate_reg_array[2][0] = datarate_213_5Gsps,
+		.data_rate_reg_array[3][0] = datarate_213_5Gsps,
+		.data_rate_reg_array[4][0] = datarate_213_5Gsps,
+		.data_rate_reg_array[5][0] = datarate_213_5Gsps,
+		.data_rate_reg_array[6][0] = datarate_213_5Gsps,
+		.data_rate_reg_array[7][0] = datarate_213_5Gsps,
 	},
 };
 

+ 249 - 32
drivers/cam_sensor_module/cam_csiphy/include/cam_csiphy_2_2_0_hwreg.h

@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 /*
- * Copyright (c) 2021-2022, Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021-2023, Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #ifndef _CAM_CSIPHY_2_2_0_HWREG_H_
@@ -1621,187 +1621,404 @@ static struct data_rate_reg_info_t data_rate_settings_2_2_0[] = {
 		/* ((80 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 182400000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_80Msps),
-		.data_rate_reg_array[0] = datarate_220_80Msps
+		.data_rate_reg_array[0][0] = datarate_220_80Msps,
+		.data_rate_reg_array[1][0] = datarate_220_80Msps,
+		.data_rate_reg_array[2][0] = datarate_220_80Msps,
+		.data_rate_reg_array[3][0] = datarate_220_80Msps,
+		.data_rate_reg_array[4][0] = datarate_220_80Msps,
+		.data_rate_reg_array[5][0] = datarate_220_80Msps,
+		.data_rate_reg_array[6][0] = datarate_220_80Msps,
+		.data_rate_reg_array[7][0] = datarate_220_80Msps,
 	},
 	{
 		/* ((100 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 228000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_100Msps),
-		.data_rate_reg_array[0] = datarate_220_100Msps
+		.data_rate_reg_array[0][0] = datarate_220_100Msps,
+		.data_rate_reg_array[1][0] = datarate_220_100Msps,
+		.data_rate_reg_array[2][0] = datarate_220_100Msps,
+		.data_rate_reg_array[3][0] = datarate_220_100Msps,
+		.data_rate_reg_array[4][0] = datarate_220_100Msps,
+		.data_rate_reg_array[5][0] = datarate_220_100Msps,
+		.data_rate_reg_array[6][0] = datarate_220_100Msps,
+		.data_rate_reg_array[7][0] = datarate_220_100Msps,
 	},
 	{
 		/* ((200 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 456000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_200Msps),
-		.data_rate_reg_array[0] = datarate_220_200Msps
+		.data_rate_reg_array[0][0] = datarate_220_200Msps,
+		.data_rate_reg_array[1][0] = datarate_220_200Msps,
+		.data_rate_reg_array[2][0] = datarate_220_200Msps,
+		.data_rate_reg_array[3][0] = datarate_220_200Msps,
+		.data_rate_reg_array[4][0] = datarate_220_200Msps,
+		.data_rate_reg_array[5][0] = datarate_220_200Msps,
+		.data_rate_reg_array[6][0] = datarate_220_200Msps,
+		.data_rate_reg_array[7][0] = datarate_220_200Msps,
 	},
 	{
 		/* ((300 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 684000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_300Msps),
-		.data_rate_reg_array[0] = datarate_220_300Msps
+		.data_rate_reg_array[0][0] = datarate_220_300Msps,
+		.data_rate_reg_array[1][0] = datarate_220_300Msps,
+		.data_rate_reg_array[2][0] = datarate_220_300Msps,
+		.data_rate_reg_array[3][0] = datarate_220_300Msps,
+		.data_rate_reg_array[4][0] = datarate_220_300Msps,
+		.data_rate_reg_array[5][0] = datarate_220_300Msps,
+		.data_rate_reg_array[6][0] = datarate_220_300Msps,
+		.data_rate_reg_array[7][0] = datarate_220_300Msps,
 	},
 	{
 		/* ((350 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 798000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_350Msps),
-		.data_rate_reg_array[0] = datarate_220_350Msps
+		.data_rate_reg_array[0][0] = datarate_220_350Msps,
+		.data_rate_reg_array[1][0] = datarate_220_350Msps,
+		.data_rate_reg_array[2][0] = datarate_220_350Msps,
+		.data_rate_reg_array[3][0] = datarate_220_350Msps,
+		.data_rate_reg_array[4][0] = datarate_220_350Msps,
+		.data_rate_reg_array[5][0] = datarate_220_350Msps,
+		.data_rate_reg_array[6][0] = datarate_220_350Msps,
+		.data_rate_reg_array[7][0] = datarate_220_350Msps,
 	},
 	{
 		/* ((400 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 912000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_400Msps),
-		.data_rate_reg_array[0] = datarate_220_400Msps
+		.data_rate_reg_array[0][0] = datarate_220_400Msps,
+		.data_rate_reg_array[1][0] = datarate_220_400Msps,
+		.data_rate_reg_array[2][0] = datarate_220_400Msps,
+		.data_rate_reg_array[3][0] = datarate_220_400Msps,
+		.data_rate_reg_array[4][0] = datarate_220_400Msps,
+		.data_rate_reg_array[5][0] = datarate_220_400Msps,
+		.data_rate_reg_array[6][0] = datarate_220_400Msps,
+		.data_rate_reg_array[7][0] = datarate_220_400Msps,
 	},
 	{
 		/* ((500 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 1140000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_500Msps),
-		.data_rate_reg_array[0] = datarate_220_500Msps
+		.data_rate_reg_array[0][0] = datarate_220_500Msps,
+		.data_rate_reg_array[1][0] = datarate_220_500Msps,
+		.data_rate_reg_array[2][0] = datarate_220_500Msps,
+		.data_rate_reg_array[3][0] = datarate_220_500Msps,
+		.data_rate_reg_array[4][0] = datarate_220_500Msps,
+		.data_rate_reg_array[5][0] = datarate_220_500Msps,
+		.data_rate_reg_array[6][0] = datarate_220_500Msps,
+		.data_rate_reg_array[7][0] = datarate_220_500Msps,
 	},
 	{
 		/* ((600 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 1368000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_600Msps),
-		.data_rate_reg_array[0] = datarate_220_600Msps
+		.data_rate_reg_array[0][0] = datarate_220_600Msps,
+		.data_rate_reg_array[1][0] = datarate_220_600Msps,
+		.data_rate_reg_array[2][0] = datarate_220_600Msps,
+		.data_rate_reg_array[3][0] = datarate_220_600Msps,
+		.data_rate_reg_array[4][0] = datarate_220_600Msps,
+		.data_rate_reg_array[5][0] = datarate_220_600Msps,
+		.data_rate_reg_array[6][0] = datarate_220_600Msps,
+		.data_rate_reg_array[7][0] = datarate_220_600Msps,
 	},
 	{
 		/* ((700 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 1596000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_700Msps),
-		.data_rate_reg_array[0] = datarate_220_700Msps
+		.data_rate_reg_array[0][0] = datarate_220_700Msps,
+		.data_rate_reg_array[1][0] = datarate_220_700Msps,
+		.data_rate_reg_array[2][0] = datarate_220_700Msps,
+		.data_rate_reg_array[3][0] = datarate_220_700Msps,
+		.data_rate_reg_array[4][0] = datarate_220_700Msps,
+		.data_rate_reg_array[5][0] = datarate_220_700Msps,
+		.data_rate_reg_array[6][0] = datarate_220_700Msps,
+		.data_rate_reg_array[7][0] = datarate_220_700Msps,
 	},
 	{
 		/* ((800 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 1824000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_800Msps),
-		.data_rate_reg_array[0] = datarate_220_800Msps
+		.data_rate_reg_array[0][0] = datarate_220_800Msps,
+		.data_rate_reg_array[1][0] = datarate_220_800Msps,
+		.data_rate_reg_array[2][0] = datarate_220_800Msps,
+		.data_rate_reg_array[3][0] = datarate_220_800Msps,
+		.data_rate_reg_array[4][0] = datarate_220_800Msps,
+		.data_rate_reg_array[5][0] = datarate_220_800Msps,
+		.data_rate_reg_array[6][0] = datarate_220_800Msps,
+		.data_rate_reg_array[7][0] = datarate_220_800Msps,
 	},
 	{
 		/* ((900 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 2052000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_900Msps),
-		.data_rate_reg_array[0] = datarate_220_900Msps
+		.data_rate_reg_array[0][0] = datarate_220_900Msps,
+		.data_rate_reg_array[1][0] = datarate_220_900Msps,
+		.data_rate_reg_array[2][0] = datarate_220_900Msps,
+		.data_rate_reg_array[3][0] = datarate_220_900Msps,
+		.data_rate_reg_array[4][0] = datarate_220_900Msps,
+		.data_rate_reg_array[5][0] = datarate_220_900Msps,
+		.data_rate_reg_array[6][0] = datarate_220_900Msps,
+		.data_rate_reg_array[7][0] = datarate_220_900Msps,
 	},
 	{
 		/* ((1000 MSpS) * (10^6) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 2280000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_1p0Gsps),
-		.data_rate_reg_array[0] = datarate_220_1p0Gsps
+		.data_rate_reg_array[0][0] = datarate_220_1p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_1p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_1p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_1p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_1p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_1p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_1p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_1p0Gsps,
 	},
 	{
 		/* ((1.2 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 2736000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_1p2Gsps),
-		.data_rate_reg_array[0] = datarate_220_1p2Gsps
+		.data_rate_reg_array[0][0] = datarate_220_1p2Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_1p2Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_1p2Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_1p2Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_1p2Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_1p2Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_1p2Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_1p2Gsps,
 	},
 	{
 		/* ((1.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 3420000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_1p5Gsps),
-		.data_rate_reg_array[0] = datarate_220_1p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_220_1p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_1p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_1p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_1p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_1p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_1p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_1p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_1p5Gsps,
 	},
 	{
 		/* ((1.7 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 3876000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_1p7Gsps),
-		.data_rate_reg_array[0] = datarate_220_1p7Gsps,
+		.data_rate_reg_array[0][0] = datarate_220_1p7Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_1p7Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_1p7Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_1p7Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_1p7Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_1p7Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_1p7Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_1p7Gsps,
 	},
 	{
 		/* ((2.0 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 4560000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_2p0Gsps),
-		.data_rate_reg_array[0] = datarate_220_2p0Gsps
+		.data_rate_reg_array[0][0] = datarate_220_2p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_2p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_2p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_2p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_2p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_2p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_2p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_2p0Gsps,
 	},
 	{
 		/* ((2.1 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 4788000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_2p1Gsps),
-		.data_rate_reg_array[0] = datarate_220_2p1Gsps,
+		.data_rate_reg_array[0][0] = datarate_220_2p1Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_2p1Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_2p1Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_2p1Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_2p1Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_2p1Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_2p1Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_2p1Gsps,
 	},
 	{
 		/* ((2.35 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 5358000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_2p35Gsps),
-		.data_rate_reg_array[0] = datarate_220_2p35Gsps,
+		.data_rate_reg_array[0][0] = datarate_220_2p35Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_2p35Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_2p35Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_2p35Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_2p35Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_2p35Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_2p35Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_2p35Gsps,
 	},
 	{
 		/* ((2.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 5700000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_2p5Gsps),
-		.data_rate_reg_array[0] = datarate_220_2p5Gsps
+		.data_rate_reg_array[0][0] = datarate_220_2p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_2p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_2p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_2p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_2p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_2p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_2p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_2p5Gsps,
 	},
 	{
 		/* ((2.6 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value*/
 		.bandwidth = 5928000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_2p6Gsps),
-		.data_rate_reg_array[0] = datarate_220_2p6Gsps,
+		.data_rate_reg_array[0][0] = datarate_220_2p6Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_2p6Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_2p6Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_2p6Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_2p6Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_2p6Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_2p6Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_2p6Gsps,
 	},
 	{
 		/* ((2.8 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 6384000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_2p8Gsps),
-		.data_rate_reg_array[0] = datarate_220_2p8Gsps,
+		.data_rate_reg_array[0][0] = datarate_220_2p8Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_2p8Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_2p8Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_2p8Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_2p8Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_2p8Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_2p8Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_2p8Gsps,
 	},
 	{
 		/* ((3.0 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 6840000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_3p0Gsps),
-		.data_rate_reg_array[0] = datarate_220_3p0Gsps
+		.data_rate_reg_array[0][0] = datarate_220_3p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_3p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_3p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_3p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_3p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_3p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_3p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_3p0Gsps,
 	},
 	{
 		/* ((3.3 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 7524000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_3p3Gsps),
-		.data_rate_reg_array[0] = datarate_220_3p3Gsps,
+		.data_rate_reg_array[0][0] = datarate_220_3p3Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_3p3Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_3p3Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_3p3Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_3p3Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_3p3Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_3p3Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_3p3Gsps,
 	},
 	{
 		/* ((3.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 7980000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_3p5Gsps),
-		.data_rate_reg_array[0] = datarate_220_3p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_220_3p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_3p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_3p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_3p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_3p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_3p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_3p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_3p5Gsps,
 	},
 	{
 		/* ((4 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 9120000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_4p0Gsps),
-		.data_rate_reg_array[0] = datarate_220_4p0Gsps,
+		.data_rate_reg_array[0][0] = datarate_220_4p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_4p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_4p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_4p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_4p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_4p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_4p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_4p0Gsps,
 	},
 	{
 		/* ((4.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 10260000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_4p5Gsps),
-		.data_rate_reg_array[0] = datarate_220_4p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_220_4p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_4p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_4p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_4p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_4p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_4p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_4p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_4p5Gsps,
 	},
 	{
 		/* ((5.0 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 11400000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_5p0Gsps),
-		.data_rate_reg_array[0] = datarate_220_5p0Gsps,
+		.data_rate_reg_array[0][0] = datarate_220_5p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_5p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_5p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_5p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_5p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_5p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_5p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_5p0Gsps,
 	},
 	{
 		/* ((5.5 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 12540000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_5p5Gsps),
-		.data_rate_reg_array[0] = datarate_220_5p5Gsps,
+		.data_rate_reg_array[0][0] = datarate_220_5p5Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_5p5Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_5p5Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_5p5Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_5p5Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_5p5Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_5p5Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_5p5Gsps,
 	},
 	{
 		/* ((6.0 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 13680000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_6p0Gsps),
-		.data_rate_reg_array[0] = datarate_220_6p0Gsps,
+		.data_rate_reg_array[0][0] = datarate_220_6p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_6p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_6p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_6p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_6p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_6p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_6p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_6p0Gsps,
 	},
 	{
 		/* ((7.0 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 15960000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_7p0Gsps),
-		.data_rate_reg_array[0] = datarate_220_7p0Gsps,
+		.data_rate_reg_array[0][0] = datarate_220_7p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_7p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_7p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_7p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_7p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_7p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_7p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_7p0Gsps,
 	},
 	{
 		/* ((8.0 GSpS) * (10^9) * (2.28 bits/symbol)) rounded value */
 		.bandwidth = 18240000000,
 		.data_rate_reg_array_size = ARRAY_SIZE(datarate_220_8p0Gsps),
-		.data_rate_reg_array[0] = datarate_220_8p0Gsps,
+		.data_rate_reg_array[0][0] = datarate_220_8p0Gsps,
+		.data_rate_reg_array[1][0] = datarate_220_8p0Gsps,
+		.data_rate_reg_array[2][0] = datarate_220_8p0Gsps,
+		.data_rate_reg_array[3][0] = datarate_220_8p0Gsps,
+		.data_rate_reg_array[4][0] = datarate_220_8p0Gsps,
+		.data_rate_reg_array[5][0] = datarate_220_8p0Gsps,
+		.data_rate_reg_array[6][0] = datarate_220_8p0Gsps,
+		.data_rate_reg_array[7][0] = datarate_220_8p0Gsps,
 	},
 
 };