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: Loic Poulain <loic.poulain@oss.qualcomm.com>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Bryan O'Donoghue <bod@kernel.org>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>
This commit is contained in:
Loic Poulain 2025-07-08 10:32:19 +02:00 committed by Mauro Carvalho Chehab
parent f0fc808a46
commit ce63fbdf84
2 changed files with 90 additions and 0 deletions

View File

@ -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];

View File

@ -78,6 +78,7 @@ enum pm_domain {
enum camss_version {
CAMSS_660,
CAMSS_2290,
CAMSS_7280,
CAMSS_8x16,
CAMSS_8x53,