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

Commit 6d50cef7 authored by Shravan Nevatia's avatar Shravan Nevatia Committed by Gerrit - the friendly Code Review server
Browse files

msm: camera: csiphy: Update CPHY settings for atoll



Update the CSIPHY power-up sequence and CPHY 3-phase
sequence for atoll (csiphy-v1.2.2) as per the latest
HPG (rev. Q).

Change-Id: I547b23146af0a54b7a452d191fdd00cee4ed912c
Signed-off-by: default avatarShravan Nevatia <snevatia@codeaurora.org>
parent f2bef363
Loading
Loading
Loading
Loading
+37 −72
Original line number Diff line number Diff line
/* Copyright (c) 2019, The Linux Foundation. All rights reserved.
/* Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -19,7 +19,7 @@ struct csiphy_reg_parms_t csiphy_v1_2_2 = {
	.mipi_csiphy_interrupt_status0_addr = 0x8B0,
	.mipi_csiphy_interrupt_clear0_addr = 0x858,
	.mipi_csiphy_glbl_irq_cmd_addr = 0x828,
	.csiphy_common_array_size = 6,
	.csiphy_common_array_size = 7,
	.csiphy_reset_array_size = 5,
	.csiphy_2ph_config_array_size = 22,
	.csiphy_3ph_config_array_size = 38,
@@ -32,6 +32,7 @@ struct csiphy_reg_t csiphy_common_reg_1_2_2[] = {
	{0x0818, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x081C, 0x02, 0x00, CSIPHY_2PH_REGS},
	{0x081C, 0x52, 0x00, CSIPHY_3PH_REGS},
	{0x0800, 0x03, 0x01, CSIPHY_DEFAULT_PARAMS},
	{0x0800, 0x02, 0x00, CSIPHY_2PH_REGS},
	{0x0800, 0x0E, 0x00, CSIPHY_3PH_REGS},
};
@@ -309,7 +310,7 @@ struct csiphy_reg_t
struct
csiphy_reg_t csiphy_3ph_v1_2_2_reg[MAX_LANES][MAX_SETTINGS_PER_LANE] = {
	{
		{0x015C, 0x66, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x015C, 0x46, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0990, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0994, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0998, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
@@ -317,8 +318,8 @@ csiphy_reg_t csiphy_3ph_v1_2_2_reg[MAX_LANES][MAX_SETTINGS_PER_LANE] = {
		{0x0994, 0x08, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0998, 0x1A, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x098C, 0xAF, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0168, 0xAC, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x016C, 0xAD, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0168, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x016C, 0x25, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0104, 0x06, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x010C, 0x07, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE},
		{0x0108, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE},
@@ -341,24 +342,24 @@ csiphy_reg_t csiphy_3ph_v1_2_2_reg[MAX_LANES][MAX_SETTINGS_PER_LANE] = {
		{0x09C0, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x09C4, 0x7D, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x09C8, 0x7F, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0984, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0984, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0988, 0x05, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0980, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x09B0, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x09B4, 0x03, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x09B4, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0800, 0x0E, 0x00, CSIPHY_DEFAULT_PARAMS},
	},
	{
		{0x035C, 0x66, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x035C, 0x46, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0A90, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0A94, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0A98, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0A90, 0x08, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0A94, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0A94, 0x08, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0A98, 0x1F, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0A8C, 0xBF, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0368, 0xAC, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x036C, 0xAD, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0368, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x036C, 0x25, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0304, 0x06, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x030C, 0x07, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE},
		{0x0308, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE},
@@ -381,15 +382,15 @@ csiphy_reg_t csiphy_3ph_v1_2_2_reg[MAX_LANES][MAX_SETTINGS_PER_LANE] = {
		{0x0AC0, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0AC4, 0x7D, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0AC8, 0x7F, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0A84, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0A84, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0A88, 0x05, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0A80, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0AB0, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0AB4, 0x03, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0AB4, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0800, 0x0E, 0x00, CSIPHY_DEFAULT_PARAMS},
	},
	{
		{0x055C, 0x66, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x055C, 0x46, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0B90, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0B94, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0B98, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
@@ -397,8 +398,8 @@ csiphy_reg_t csiphy_3ph_v1_2_2_reg[MAX_LANES][MAX_SETTINGS_PER_LANE] = {
		{0x0B94, 0x08, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0B98, 0x1A, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0B8C, 0xAF, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0568, 0xAC, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x056C, 0xAD, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0568, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x056C, 0x25, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0504, 0x06, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x050C, 0x07, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE},
		{0x0508, 0x00, 0x00, CSIPHY_SETTLE_CNT_HIGHER_BYTE},
@@ -421,11 +422,11 @@ csiphy_reg_t csiphy_3ph_v1_2_2_reg[MAX_LANES][MAX_SETTINGS_PER_LANE] = {
		{0x0BC0, 0x80, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0BC4, 0x7D, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0BC8, 0x7F, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0B84, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0B84, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0B88, 0x05, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0B80, 0x60, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0BB0, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0BB4, 0x03, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0BB4, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS},
		{0x0800, 0x0E, 0x00, CSIPHY_DEFAULT_PARAMS},
	},
};
@@ -436,82 +437,46 @@ struct data_rate_settings_t data_rate_delta_table_1_2_2 = {
		{
			/* (2.5 * 10**3 * 2.28) rounded value*/
			.bandwidth = 5700000000,
			.data_rate_reg_array_size = 12,
			.data_rate_reg_array_size = 8,
			.csiphy_data_rate_regs = {
				{0x15C, 0x66, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x35C, 0x66, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x55C, 0x66, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x9B4, 0x03, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0xAB4, 0x03, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0xBB4, 0x03, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x144, 0x22, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x344, 0x22, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x544, 0x22, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x16C, 0xAD, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x36C, 0xAD, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x56C, 0xAD, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x984, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0xA84, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0xB84, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x0A98, 0x1F, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x0A8C, 0xBF, 0x00, CSIPHY_DEFAULT_PARAMS},
			}
		},
		{
			/* (3.5 * 10**3 * 2.28) rounded value */
			.bandwidth = 7980000000,
			.data_rate_reg_array_size = 24,
			.data_rate_reg_array_size = 8,
			.csiphy_data_rate_regs = {
				{0x15C, 0x46, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x35C, 0x46, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x55C, 0x46, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x9B4, 0x03, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0xAB4, 0x03, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0xBB4, 0x03, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x9B0, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0xAB0, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0xBB0, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x144, 0xA2, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x344, 0xA2, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x544, 0xA2, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x13C, 0x10, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x33C, 0x10, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x53C, 0x10, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x140, 0x81, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x340, 0x81, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x540, 0x81, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x168, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x368, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x568, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x16C, 0x25, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x36C, 0x25, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x56C, 0x25, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x984, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0xA84, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0xB84, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x0A98, 0x1A, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x0A8C, 0xAF, 0x00, CSIPHY_DEFAULT_PARAMS},
			},
		},
		{
			/* (4.5 * 10**3 * 2.28) rounded value */
			.bandwidth = 10260000000,
			.data_rate_reg_array_size = 24,
			.data_rate_reg_array_size = 8,
			.csiphy_data_rate_regs = {
				{0x15C, 0x46, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x35C, 0x46, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x55C, 0x46, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x9B4, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0xAB4, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0xBB4, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x9B0, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0xAB0, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0xBB0, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x144, 0xA2, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x344, 0xA2, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x544, 0xA2, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x13C, 0x10, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x33C, 0x10, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x53C, 0x10, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x140, 0x81, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x340, 0x81, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x540, 0x81, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x168, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x368, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x568, 0xA0, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x16C, 0x1D, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x36C, 0x1D, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x56C, 0x1D, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x984, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0xA84, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0xB84, 0x20, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x0A98, 0x1A, 0x00, CSIPHY_DEFAULT_PARAMS},
				{0x0A8C, 0xAF, 0x00, CSIPHY_DEFAULT_PARAMS},
			},
		}
	}