Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/rockchip: dsi2: add support rk3576

Add the necessary specific bits to support the rk3576-variant of the
DW-DSI2 controller.

Signed-off-by: Guochun Huang <hero.huang@rock-chips.com>
[adapted from the vendor-kernel for mainline]
Reviewed-by: Andy Yan <andy.yan@rock-chips.com>
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Link: https://lore.kernel.org/r/20250707164906.1445288-10-heiko@sntech.de

authored by

Guochun Huang and committed by
Heiko Stuebner
b6f11f11 f05530bd

+21
+21
drivers/gpu/drm/rockchip/dw-mipi-dsi2-rockchip.c
··· 437 437 dw_mipi_dsi2_remove(dsi2->dmd); 438 438 } 439 439 440 + static const struct dsigrf_reg rk3576_dsi_grf_reg_fields[MAX_FIELDS] = { 441 + [TXREQCLKHS_EN] = { 0x0028, 1, 1 }, 442 + [GATING_EN] = { 0x0028, 0, 0 }, 443 + [IPI_SHUTDN] = { 0x0028, 3, 3 }, 444 + [IPI_COLORM] = { 0x0028, 2, 2 }, 445 + [IPI_COLOR_DEPTH] = { 0x0028, 8, 11 }, 446 + [IPI_FORMAT] = { 0x0028, 4, 7 }, 447 + }; 448 + 440 449 static const struct dsigrf_reg rk3588_dsi0_grf_reg_fields[MAX_FIELDS] = { 441 450 [TXREQCLKHS_EN] = { 0x0000, 11, 11 }, 442 451 [GATING_EN] = { 0x0000, 10, 10 }, ··· 464 455 [IPI_FORMAT] = { 0x0004, 0, 3 }, 465 456 }; 466 457 458 + static const struct rockchip_dw_dsi2_chip_data rk3576_chip_data[] = { 459 + { 460 + .reg = 0x27d80000, 461 + .grf_regs = rk3576_dsi_grf_reg_fields, 462 + .max_bit_rate_per_lane = 2500000ULL, 463 + }, 464 + { /* sentinel */ } 465 + }; 466 + 467 467 static const struct rockchip_dw_dsi2_chip_data rk3588_chip_data[] = { 468 468 { 469 469 .reg = 0xfde20000, ··· 488 470 489 471 static const struct of_device_id dw_mipi_dsi2_rockchip_dt_ids[] = { 490 472 { 473 + .compatible = "rockchip,rk3576-mipi-dsi2", 474 + .data = &rk3576_chip_data, 475 + }, { 491 476 .compatible = "rockchip,rk3588-mipi-dsi2", 492 477 .data = &rk3588_chip_data, 493 478 },