drm/msm/mdp5: Add MDP5 configuration for SDM630
authorKonrad Dybcio <konradybcio@gmail.com>
Sun, 26 Jul 2020 11:12:02 +0000 (13:12 +0200)
committerRob Clark <robdclark@chromium.org>
Fri, 31 Jul 2020 13:46:17 +0000 (06:46 -0700)
This commit adds support for the MDP5 IP on Snapdragon
630. The configuration is different from SDM660's, as
the latter one has two DSI outputs.

Signed-off-by: Konrad Dybcio <konradybcio@gmail.com>
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/disp/mdp5/mdp5_cfg.c

index 25a13a2..2e02de8 100644 (file)
@@ -910,6 +910,98 @@ static const struct mdp5_cfg_hw msm8998_config = {
        .max_clk = 412500000,
 };
 
+static const struct mdp5_cfg_hw sdm630_config = {
+       .name = "sdm630",
+       .mdp = {
+               .count = 1,
+               .caps = MDP_CAP_CDM |
+                       MDP_CAP_SRC_SPLIT |
+                       0,
+       },
+       .ctl = {
+               .count = 5,
+               .base = { 0x01000, 0x01200, 0x01400, 0x01600, 0x01800 },
+               .flush_hw_mask = 0xf4ffffff,
+       },
+       .pipe_vig = {
+               .count = 1,
+               .base = { 0x04000 },
+               .caps = MDP_PIPE_CAP_HFLIP      |
+                       MDP_PIPE_CAP_VFLIP      |
+                       MDP_PIPE_CAP_SCALE      |
+                       MDP_PIPE_CAP_CSC        |
+                       MDP_PIPE_CAP_DECIMATION |
+                       MDP_PIPE_CAP_SW_PIX_EXT |
+                       0,
+       },
+       .pipe_rgb = {
+               .count = 4,
+               .base = { 0x14000, 0x16000, 0x18000, 0x1a000 },
+               .caps = MDP_PIPE_CAP_HFLIP      |
+                       MDP_PIPE_CAP_VFLIP      |
+                       MDP_PIPE_CAP_SCALE      |
+                       MDP_PIPE_CAP_DECIMATION |
+                       MDP_PIPE_CAP_SW_PIX_EXT |
+                       0,
+       },
+       .pipe_dma = {
+               .count = 2, /* driver supports max of 2 currently */
+               .base = { 0x24000, 0x26000, 0x28000 },
+               .caps = MDP_PIPE_CAP_HFLIP      |
+                       MDP_PIPE_CAP_VFLIP      |
+                       MDP_PIPE_CAP_SW_PIX_EXT |
+                       0,
+       },
+       .pipe_cursor = {
+               .count = 1,
+               .base = { 0x34000 },
+               .caps = MDP_PIPE_CAP_HFLIP      |
+                       MDP_PIPE_CAP_VFLIP      |
+                       MDP_PIPE_CAP_SW_PIX_EXT |
+                       MDP_PIPE_CAP_CURSOR     |
+                       0,
+       },
+
+       .lm = {
+               .count = 2,
+               .base = { 0x44000, 0x46000 },
+               .instances = {
+                               { .id = 0, .pp = 0, .dspp = 0,
+                                 .caps = MDP_LM_CAP_DISPLAY |
+                                         MDP_LM_CAP_PAIR, },
+                               { .id = 1, .pp = 1, .dspp = -1,
+                                 .caps = MDP_LM_CAP_WB, },
+                               },
+               .nb_stages = 8,
+               .max_width = 2048,
+               .max_height = 0xFFFF,
+       },
+       .dspp = {
+               .count = 1,
+               .base = { 0x54000 },
+       },
+       .ad = {
+               .count = 2,
+               .base = { 0x78000, 0x78800 },
+       },
+       .pp = {
+               .count = 3,
+               .base = { 0x70000, 0x71000, 0x72000 },
+       },
+       .cdm = {
+               .count = 1,
+               .base = { 0x79200 },
+       },
+       .intf = {
+               .base = { 0x6a000, 0x6a800 },
+               .connect = {
+                       [0] = INTF_DISABLED,
+                       [1] = INTF_DSI,
+               },
+       },
+       .max_clk = 412500000,
+};
+
 static const struct mdp5_cfg_handler cfg_handlers_v1[] = {
        { .revision = 0, .config = { .hw = &msm8x74v1_config } },
        { .revision = 2, .config = { .hw = &msm8x74v2_config } },
@@ -924,6 +1016,7 @@ static const struct mdp5_cfg_handler cfg_handlers_v1[] = {
 
 static const struct mdp5_cfg_handler cfg_handlers_v3[] = {
        { .revision = 0, .config = { .hw = &msm8998_config } },
+       { .revision = 3, .config = { .hw = &sdm630_config } },
 };
 
 static struct mdp5_cfg_platform *mdp5_get_config(struct platform_device *dev);