video/drm: dsi: add support for rv1126

also update GRF_REG_FIELD for support some chip
(like rv1126) GRF's register offset over 0x10000

Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
Change-Id: Iedb281dae00f85375166915c39663e92d990b0d3
This commit is contained in:
Nickey Yang 2020-07-06 21:18:41 +08:00 committed by Jianhong Chen
parent 8f1f6d607b
commit efcb7be134
1 changed files with 27 additions and 4 deletions

View File

@ -196,7 +196,7 @@
#define FEEDBACK_DIV_LO(x) UPDATE(x, 4, 0)
#define FEEDBACK_DIV_HI(x) (BIT(7) | UPDATE(x, 3, 0))
#define GRF_REG_FIELD(reg, lsb, msb) ((reg << 16) | (lsb << 8) | (msb))
#define GRF_REG_FIELD(reg, lsb, msb) (((reg) << 10) | ((lsb) << 5) | (msb))
enum grf_reg_fields {
DPIUPDATECFG,
@ -280,9 +280,9 @@ static void grf_field_write(struct dw_mipi_dsi *dsi, enum grf_reg_fields index,
if (!field)
return;
reg = (field >> 16) & 0xffff;
lsb = (field >> 8) & 0xff;
msb = (field >> 0) & 0xff;
reg = (field >> 10) & 0x3ffff;
lsb = (field >> 5) & 0x1f;
msb = (field >> 0) & 0x1f;
rk_clrsetreg(dsi->grf + reg, GENMASK(msb, lsb), val << lsb);
}
@ -1500,6 +1500,25 @@ static const struct rockchip_connector rv1108_mipi_dsi_driver_data = {
.data = &rv1108_mipi_dsi_plat_data,
};
static const u32 rv1126_dsi_grf_reg_fields[MAX_FIELDS] = {
[DPIUPDATECFG] = GRF_REG_FIELD(0x0008, 5, 5),
[DPISHUTDN] = GRF_REG_FIELD(0x0008, 4, 4),
[DPICOLORM] = GRF_REG_FIELD(0x0008, 3, 3),
[FORCETXSTOPMODE] = GRF_REG_FIELD(0x10220, 4, 7),
[TURNDISABLE] = GRF_REG_FIELD(0x10220, 2, 2),
[FORCERXMODE] = GRF_REG_FIELD(0x10220, 0, 0),
};
static const struct dw_mipi_dsi_plat_data rv1126_mipi_dsi_plat_data = {
.dsi0_grf_reg_fields = rv1126_dsi_grf_reg_fields,
.max_bit_rate_per_lane = 1000000000UL,
};
static const struct rockchip_connector rv1126_mipi_dsi_driver_data = {
.funcs = &dw_mipi_dsi_connector_funcs,
.data = &rv1126_mipi_dsi_plat_data,
};
static const struct udevice_id dw_mipi_dsi_ids[] = {
{
.compatible = "rockchip,px30-mipi-dsi",
@ -1533,6 +1552,10 @@ static const struct udevice_id dw_mipi_dsi_ids[] = {
.compatible = "rockchip,rv1108-mipi-dsi",
.data = (ulong)&rv1108_mipi_dsi_driver_data,
},
{
.compatible = "rockchip,rv1126-mipi-dsi",
.data = (ulong)&rv1126_mipi_dsi_driver_data,
},
{}
};