Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ddf032ea authored by Shravan Nevatia's avatar Shravan Nevatia
Browse files

msm: camera: csiphy: Support multiple data rates in CSIPHY for sm6150



Dynamically set the csiphy settings using CDR mask registers
for multiple data rates.

Change-Id: I39ff8099468bb308f109c02115a93006fae93ab3
Signed-off-by: default avatarShravan Nevatia <snevatia@codeaurora.org>
parent 7c77bf0f
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -272,7 +272,7 @@ int32_t cam_csiphy_parse_dt_info(struct platform_device *pdev,
		csiphy_dev->hw_version = CSIPHY_VERSION_V12;
		csiphy_dev->clk_lane = 0;
		csiphy_dev->ctrl_reg->data_rates_settings_table =
			&data_rate_delta_table;
			&data_rate_delta_table_1_2;
	} else if (of_device_is_compatible(soc_info->dev->of_node,
		"qcom,csiphy-v2.0")) {
		csiphy_dev->ctrl_reg->csiphy_2ph_reg = csiphy_2ph_v2_0_reg;
@@ -288,7 +288,8 @@ int32_t cam_csiphy_parse_dt_info(struct platform_device *pdev,
		csiphy_dev->hw_version = CSIPHY_VERSION_V20;
		csiphy_dev->is_csiphy_3phase_hw = CSI_3PHASE_HW;
		csiphy_dev->clk_lane = 0;
		csiphy_dev->ctrl_reg->data_rates_settings_table = NULL;
		csiphy_dev->ctrl_reg->data_rates_settings_table =
			&data_rate_delta_table_2_0;
	} else {
		CAM_ERR(CAM_CSIPHY, "invalid hw version : 0x%x",
			csiphy_dev->hw_version);
+1 −1
Original line number Diff line number Diff line
@@ -430,7 +430,7 @@ csiphy_reg_t csiphy_3ph_v1_2_reg[MAX_LANES][MAX_SETTINGS_PER_LANE] = {
	},
};

struct data_rate_settings_t data_rate_delta_table = {
struct data_rate_settings_t data_rate_delta_table_1_2 = {
	.num_data_rate_settings = 3,
	.data_rate_settings = {
		{
+28 −0
Original line number Diff line number Diff line
@@ -297,4 +297,32 @@ struct csiphy_reg_t csiphy_3ph_v2_0_reg[MAX_LANES][MAX_SETTINGS_PER_LANE] = {
	},
};

struct data_rate_settings_t data_rate_delta_table_2_0 = {
	.num_data_rate_settings = 2,
	.data_rate_settings = {
		{
			// data rate <= 2 Gsps
			// max bandwidth = 2 * 2.28 * (10**3) Mbps
			.bandwidth = 4560000000,
			.data_rate_reg_array_size = 3,
			.csiphy_data_rate_regs = {
				{0x0164, 0x50, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x0364, 0x50, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x0564, 0x50, 0x00, CSIPHY_DEFAULT_PARAMS}
			}
		},
		{
			// 2 Gsps <= data rate <= 2.5 Gsps
			// max bandwidth = 2.5 * 2.28 * (10**3) Mbps
			.bandwidth = 5700000000,
			.data_rate_reg_array_size = 3,
			.csiphy_data_rate_regs = {
				{0x0164, 0x40, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x0364, 0x40, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x0564, 0x40, 0x00, CSIPHY_DEFAULT_PARAMS}
			}
		}
	}
};

#endif /* _CAM_CSIPHY_2_0_HWREG_H_ */