diff options
-rw-r--r-- | drivers/gpu/host1x/mipi.c | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/drivers/gpu/host1x/mipi.c b/drivers/gpu/host1x/mipi.c index b07e793c1d5b..0989b8151b4c 100644 --- a/drivers/gpu/host1x/mipi.c +++ b/drivers/gpu/host1x/mipi.c | |||
@@ -47,6 +47,7 @@ | |||
47 | #define MIPI_CAL_CONFIG_CSIC 0x07 | 47 | #define MIPI_CAL_CONFIG_CSIC 0x07 |
48 | #define MIPI_CAL_CONFIG_CSID 0x08 | 48 | #define MIPI_CAL_CONFIG_CSID 0x08 |
49 | #define MIPI_CAL_CONFIG_CSIE 0x09 | 49 | #define MIPI_CAL_CONFIG_CSIE 0x09 |
50 | #define MIPI_CAL_CONFIG_CSIF 0x0a | ||
50 | #define MIPI_CAL_CONFIG_DSIA 0x0e | 51 | #define MIPI_CAL_CONFIG_DSIA 0x0e |
51 | #define MIPI_CAL_CONFIG_DSIB 0x0f | 52 | #define MIPI_CAL_CONFIG_DSIB 0x0f |
52 | #define MIPI_CAL_CONFIG_DSIC 0x10 | 53 | #define MIPI_CAL_CONFIG_DSIC 0x10 |
@@ -55,7 +56,9 @@ | |||
55 | #define MIPI_CAL_CONFIG_DSIA_CLK 0x19 | 56 | #define MIPI_CAL_CONFIG_DSIA_CLK 0x19 |
56 | #define MIPI_CAL_CONFIG_DSIB_CLK 0x1a | 57 | #define MIPI_CAL_CONFIG_DSIB_CLK 0x1a |
57 | #define MIPI_CAL_CONFIG_CSIAB_CLK 0x1b | 58 | #define MIPI_CAL_CONFIG_CSIAB_CLK 0x1b |
59 | #define MIPI_CAL_CONFIG_DSIC_CLK 0x1c | ||
58 | #define MIPI_CAL_CONFIG_CSICD_CLK 0x1c | 60 | #define MIPI_CAL_CONFIG_CSICD_CLK 0x1c |
61 | #define MIPI_CAL_CONFIG_DSID_CLK 0x1d | ||
59 | #define MIPI_CAL_CONFIG_CSIE_CLK 0x1d | 62 | #define MIPI_CAL_CONFIG_CSIE_CLK 0x1d |
60 | 63 | ||
61 | /* for data and clock lanes */ | 64 | /* for data and clock lanes */ |
@@ -262,7 +265,7 @@ int tegra_mipi_calibrate(struct tegra_mipi_device *device) | |||
262 | 265 | ||
263 | tegra_mipi_writel(device->mipi, data, soc->pads[i].data); | 266 | tegra_mipi_writel(device->mipi, data, soc->pads[i].data); |
264 | 267 | ||
265 | if (soc->has_clk_lane) | 268 | if (soc->has_clk_lane && soc->pads[i].clk != 0) |
266 | tegra_mipi_writel(device->mipi, clk, soc->pads[i].clk); | 269 | tegra_mipi_writel(device->mipi, clk, soc->pads[i].clk); |
267 | } | 270 | } |
268 | 271 | ||
@@ -369,10 +372,41 @@ static const struct tegra_mipi_soc tegra132_mipi_soc = { | |||
369 | .hsclkpuos = 0x2, | 372 | .hsclkpuos = 0x2, |
370 | }; | 373 | }; |
371 | 374 | ||
375 | static const struct tegra_mipi_pad tegra210_mipi_pads[] = { | ||
376 | { .data = MIPI_CAL_CONFIG_CSIA, .clk = 0 }, | ||
377 | { .data = MIPI_CAL_CONFIG_CSIB, .clk = 0 }, | ||
378 | { .data = MIPI_CAL_CONFIG_CSIC, .clk = 0 }, | ||
379 | { .data = MIPI_CAL_CONFIG_CSID, .clk = 0 }, | ||
380 | { .data = MIPI_CAL_CONFIG_CSIE, .clk = 0 }, | ||
381 | { .data = MIPI_CAL_CONFIG_CSIF, .clk = 0 }, | ||
382 | { .data = MIPI_CAL_CONFIG_DSIA, .clk = MIPI_CAL_CONFIG_DSIA_CLK }, | ||
383 | { .data = MIPI_CAL_CONFIG_DSIB, .clk = MIPI_CAL_CONFIG_DSIB_CLK }, | ||
384 | { .data = MIPI_CAL_CONFIG_DSIC, .clk = MIPI_CAL_CONFIG_DSIC_CLK }, | ||
385 | { .data = MIPI_CAL_CONFIG_DSID, .clk = MIPI_CAL_CONFIG_DSID_CLK }, | ||
386 | }; | ||
387 | |||
388 | static const struct tegra_mipi_soc tegra210_mipi_soc = { | ||
389 | .has_clk_lane = true, | ||
390 | .pads = tegra210_mipi_pads, | ||
391 | .num_pads = ARRAY_SIZE(tegra210_mipi_pads), | ||
392 | .clock_enable_override = true, | ||
393 | .needs_vclamp_ref = false, | ||
394 | .pad_drive_down_ref = 0x0, | ||
395 | .pad_drive_up_ref = 0x3, | ||
396 | .pad_vclamp_level = 0x1, | ||
397 | .pad_vauxp_level = 0x1, | ||
398 | .hspdos = 0x0, | ||
399 | .hspuos = 0x2, | ||
400 | .termos = 0x0, | ||
401 | .hsclkpdos = 0x0, | ||
402 | .hsclkpuos = 0x2, | ||
403 | }; | ||
404 | |||
372 | static const struct of_device_id tegra_mipi_of_match[] = { | 405 | static const struct of_device_id tegra_mipi_of_match[] = { |
373 | { .compatible = "nvidia,tegra114-mipi", .data = &tegra114_mipi_soc }, | 406 | { .compatible = "nvidia,tegra114-mipi", .data = &tegra114_mipi_soc }, |
374 | { .compatible = "nvidia,tegra124-mipi", .data = &tegra124_mipi_soc }, | 407 | { .compatible = "nvidia,tegra124-mipi", .data = &tegra124_mipi_soc }, |
375 | { .compatible = "nvidia,tegra132-mipi", .data = &tegra132_mipi_soc }, | 408 | { .compatible = "nvidia,tegra132-mipi", .data = &tegra132_mipi_soc }, |
409 | { .compatible = "nvidia,tegra210-mipi", .data = &tegra210_mipi_soc }, | ||
376 | { }, | 410 | { }, |
377 | }; | 411 | }; |
378 | 412 | ||