media: ti-vpe: cal: Add DRA76x support
authorBenoit Parrot <bparrot@ti.com>
Tue, 12 Nov 2019 14:53:40 +0000 (15:53 +0100)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Mon, 9 Dec 2019 10:30:08 +0000 (11:30 +0100)
Add the needed control module register bit layout to support
the DRA76x family of devices.

Signed-off-by: Benoit Parrot <bparrot@ti.com>
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/platform/ti-vpe/cal.c

index 8d9c1569c05a571ccb0a1142142966e412c85dc1..0ed517b3c00d20dd9bb9478b6e9f930246377cb2 100644 (file)
@@ -287,6 +287,36 @@ static const struct cal_data dra72x_es1_cal_data = {
        .flags = DRA72_CAL_PRE_ES2_LDO_DISABLE,
 };
 
+static struct reg_field dra76x_ctrl_core_csi0_reg_fields[F_MAX_FIELDS] = {
+       [F_CTRLCLKEN] = REG_FIELD(0, 8, 8),
+       [F_CAMMODE] = REG_FIELD(0, 9, 10),
+       [F_CSI_MODE] = REG_FIELD(0, 11, 11),
+       [F_LANEENABLE] = REG_FIELD(0, 27, 31),
+};
+
+static struct reg_field dra76x_ctrl_core_csi1_reg_fields[F_MAX_FIELDS] = {
+       [F_CTRLCLKEN] = REG_FIELD(0, 0, 0),
+       [F_CAMMODE] = REG_FIELD(0, 1, 2),
+       [F_CSI_MODE] = REG_FIELD(0, 3, 3),
+       [F_LANEENABLE] = REG_FIELD(0, 24, 26),
+};
+
+static struct cal_csi2_phy dra76x_cal_csi_phy[] = {
+       {
+               .base_fields = dra76x_ctrl_core_csi0_reg_fields,
+               .num_lanes = 5,
+       },
+       {
+               .base_fields = dra76x_ctrl_core_csi1_reg_fields,
+               .num_lanes = 3,
+       },
+};
+
+static const struct cal_data dra76x_cal_data = {
+       .csi2_phy_core = dra76x_cal_csi_phy,
+       .num_csi2_phy = ARRAY_SIZE(dra76x_cal_csi_phy),
+};
+
 /*
  * there is one cal_dev structure in the driver, it is shared by
  * all instances.
@@ -2287,6 +2317,10 @@ static const struct of_device_id cal_of_match[] = {
                .compatible = "ti,dra72-pre-es2-cal",
                .data = (void *)&dra72x_es1_cal_data,
        },
+       {
+               .compatible = "ti,dra76-cal",
+               .data = (void *)&dra76x_cal_data,
+       },
        {},
 };
 MODULE_DEVICE_TABLE(of, cal_of_match);