Commit 75c1437c authored by Konrad Dybcio's avatar Konrad Dybcio Committed by Rob Clark
Browse files

drm/msm/mdp5: Add MDP5 configuration for SDM630



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: default avatarKonrad Dybcio <konradybcio@gmail.com>
Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
parent 694dd304
Loading
Loading
Loading
Loading
+93 −0
Original line number Diff line number Diff line
@@ -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);