Commit ce63fbdf authored by Loic Poulain's avatar Loic Poulain Committed by Mauro Carvalho Chehab
Browse files

media: qcom: camss: csiphy-3ph: Add CSIPHY 2ph DPHY v2.0.1 init sequence



This is the CSI PHY version found in QCS2290/QCM2290 SoCs.
The table is extracted from downstream camera driver.

Signed-off-by: default avatarLoic Poulain <loic.poulain@oss.qualcomm.com>
Reviewed-by: default avatarBryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: default avatarBryan O'Donoghue <bod@kernel.org>
Signed-off-by: default avatarHans Verkuil <hverkuil+cisco@kernel.org>
parent f0fc808a
Loading
Loading
Loading
Loading
+89 −0
Original line number Diff line number Diff line
@@ -319,6 +319,90 @@ csiphy_lane_regs lane_regs_sm8250[] = {
	{0x0884, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
};

/* 14nm 2PH v 2.0.1 2p5Gbps 4 lane DPHY mode */
static const struct
csiphy_lane_regs lane_regs_qcm2290[] = {
	{0x0030, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x002c, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0034, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0028, 0x04, 0x00, CSIPHY_DNP_PARAMS},
	{0x003c, 0xb8, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x001c, 0x0a, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0000, 0xd7, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0004, 0x08, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0020, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0008, 0x04, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE},
	{0x000c, 0xff, 0x00, CSIPHY_DNP_PARAMS},
	{0x0010, 0x50, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0038, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0060, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0064, 0x3f, 0x00, CSIPHY_DEFAULT_PARAMS},

	{0x0730, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x072c, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0734, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0728, 0x04, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x073c, 0xb8, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x071c, 0x0a, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0700, 0xc0, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0704, 0x08, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0720, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0708, 0x04, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE},
	{0x070c, 0xff, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0710, 0x50, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0738, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0760, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0764, 0x3f, 0x00, CSIPHY_DEFAULT_PARAMS},

	{0x0230, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x022c, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0234, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0228, 0x04, 0x00, CSIPHY_DNP_PARAMS},
	{0x023c, 0xb8, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x021c, 0x0a, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0200, 0xd7, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0204, 0x08, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0220, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0208, 0x04, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE},
	{0x020c, 0xff, 0x00, CSIPHY_DNP_PARAMS},
	{0x0210, 0x50, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0238, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0260, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0264, 0x3f, 0x00, CSIPHY_DEFAULT_PARAMS},

	{0x0430, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x042c, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0434, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0428, 0x04, 0x00, CSIPHY_DNP_PARAMS},
	{0x043c, 0xb8, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x041c, 0x0a, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0400, 0xd7, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0404, 0x08, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0420, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0408, 0x04, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE},
	{0x040C, 0xff, 0x00, CSIPHY_DNP_PARAMS},
	{0x0410, 0x50, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0438, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0460, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0464, 0x3f, 0x00, CSIPHY_DEFAULT_PARAMS},

	{0x0630, 0x02, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x062c, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0634, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0628, 0x04, 0x00, CSIPHY_DNP_PARAMS},
	{0x063c, 0xb8, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x061c, 0x0a, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0600, 0xd7, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0604, 0x08, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0620, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0608, 0x04, 0x00, CSIPHY_SETTLE_CNT_LOWER_BYTE},
	{0x060C, 0xff, 0x00, CSIPHY_DNP_PARAMS},
	{0x0610, 0x50, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0638, 0x01, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0660, 0x00, 0x00, CSIPHY_DEFAULT_PARAMS},
	{0x0664, 0x3f, 0x00, CSIPHY_DEFAULT_PARAMS},
};

/* GEN2 2.1.2 2PH DPHY mode */
static const struct
csiphy_lane_regs lane_regs_sm8550[] = {
@@ -744,6 +828,7 @@ static bool csiphy_is_gen2(u32 version)
	bool ret = false;

	switch (version) {
	case CAMSS_2290:
	case CAMSS_7280:
	case CAMSS_8250:
	case CAMSS_8280XP:
@@ -829,6 +914,10 @@ static int csiphy_init(struct csiphy_device *csiphy)
		regs->lane_regs = &lane_regs_sdm845[0];
		regs->lane_array_size = ARRAY_SIZE(lane_regs_sdm845);
		break;
	case CAMSS_2290:
		regs->lane_regs = &lane_regs_qcm2290[0];
		regs->lane_array_size = ARRAY_SIZE(lane_regs_qcm2290);
		break;
	case CAMSS_7280:
	case CAMSS_8250:
		regs->lane_regs = &lane_regs_sm8250[0];
+1 −0
Original line number Diff line number Diff line
@@ -78,6 +78,7 @@ enum pm_domain {

enum camss_version {
	CAMSS_660,
	CAMSS_2290,
	CAMSS_7280,
	CAMSS_8x16,
	CAMSS_8x53,