Commit 6d817880 authored by Tomi Valkeinen's avatar Tomi Valkeinen

OMAPDSS: DSS: Add DRA7xx base support

Add base support for DRA7xx to DSS core.
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 6761a8f6
...@@ -605,6 +605,26 @@ static int dss_dpi_select_source_omap5(int port, enum omap_channel channel) ...@@ -605,6 +605,26 @@ static int dss_dpi_select_source_omap5(int port, enum omap_channel channel)
return 0; return 0;
} }
static int dss_dpi_select_source_dra7xx(int port, enum omap_channel channel)
{
switch (port) {
case 0:
return dss_dpi_select_source_omap5(port, channel);
case 1:
if (channel != OMAP_DSS_CHANNEL_LCD2)
return -EINVAL;
break;
case 2:
if (channel != OMAP_DSS_CHANNEL_LCD3)
return -EINVAL;
break;
default:
return -EINVAL;
}
return 0;
}
int dss_dpi_select_source(int port, enum omap_channel channel) int dss_dpi_select_source(int port, enum omap_channel channel)
{ {
return dss.feat->dpi_select_source(port, channel); return dss.feat->dpi_select_source(port, channel);
...@@ -686,6 +706,12 @@ static const enum omap_display_type omap34xx_ports[] = { ...@@ -686,6 +706,12 @@ static const enum omap_display_type omap34xx_ports[] = {
OMAP_DISPLAY_TYPE_SDI, OMAP_DISPLAY_TYPE_SDI,
}; };
static const enum omap_display_type dra7xx_ports[] = {
OMAP_DISPLAY_TYPE_DPI,
OMAP_DISPLAY_TYPE_DPI,
OMAP_DISPLAY_TYPE_DPI,
};
static const struct dss_features omap24xx_dss_feats __initconst = { static const struct dss_features omap24xx_dss_feats __initconst = {
/* /*
* fck div max is really 16, but the divider range has gaps. The range * fck div max is really 16, but the divider range has gaps. The range
...@@ -744,6 +770,15 @@ static const struct dss_features am43xx_dss_feats __initconst = { ...@@ -744,6 +770,15 @@ static const struct dss_features am43xx_dss_feats __initconst = {
.num_ports = ARRAY_SIZE(omap2plus_ports), .num_ports = ARRAY_SIZE(omap2plus_ports),
}; };
static const struct dss_features dra7xx_dss_feats __initconst = {
.fck_div_max = 64,
.dss_fck_multiplier = 1,
.parent_clk_name = "dpll_per_x2_ck",
.dpi_select_source = &dss_dpi_select_source_dra7xx,
.ports = dra7xx_ports,
.num_ports = ARRAY_SIZE(dra7xx_ports),
};
static int __init dss_init_features(struct platform_device *pdev) static int __init dss_init_features(struct platform_device *pdev)
{ {
const struct dss_features *src; const struct dss_features *src;
...@@ -784,6 +819,10 @@ static int __init dss_init_features(struct platform_device *pdev) ...@@ -784,6 +819,10 @@ static int __init dss_init_features(struct platform_device *pdev)
src = &am43xx_dss_feats; src = &am43xx_dss_feats;
break; break;
case OMAPDSS_VER_DRA7xx:
src = &dra7xx_dss_feats;
break;
default: default:
return -ENODEV; return -ENODEV;
} }
...@@ -1003,6 +1042,7 @@ static const struct of_device_id dss_of_match[] = { ...@@ -1003,6 +1042,7 @@ static const struct of_device_id dss_of_match[] = {
{ .compatible = "ti,omap3-dss", }, { .compatible = "ti,omap3-dss", },
{ .compatible = "ti,omap4-dss", }, { .compatible = "ti,omap4-dss", },
{ .compatible = "ti,omap5-dss", }, { .compatible = "ti,omap5-dss", },
{ .compatible = "ti,dra7-dss", },
{}, {},
}; };
......
...@@ -104,6 +104,8 @@ enum dss_pll_id { ...@@ -104,6 +104,8 @@ enum dss_pll_id {
DSS_PLL_DSI1, DSS_PLL_DSI1,
DSS_PLL_DSI2, DSS_PLL_DSI2,
DSS_PLL_HDMI, DSS_PLL_HDMI,
DSS_PLL_VIDEO1,
DSS_PLL_VIDEO2,
}; };
struct dss_pll; struct dss_pll;
......
...@@ -943,6 +943,7 @@ void dss_features_init(enum omapdss_version version) ...@@ -943,6 +943,7 @@ void dss_features_init(enum omapdss_version version)
break; break;
case OMAPDSS_VER_OMAP5: case OMAPDSS_VER_OMAP5:
case OMAPDSS_VER_DRA7xx:
omap_current_dss_features = &omap5_dss_features; omap_current_dss_features = &omap5_dss_features;
break; break;
......
...@@ -186,6 +186,7 @@ static const struct of_device_id omapdss_of_match[] __initconst = { ...@@ -186,6 +186,7 @@ static const struct of_device_id omapdss_of_match[] __initconst = {
{ .compatible = "ti,omap3-dss", }, { .compatible = "ti,omap3-dss", },
{ .compatible = "ti,omap4-dss", }, { .compatible = "ti,omap4-dss", },
{ .compatible = "ti,omap5-dss", }, { .compatible = "ti,omap5-dss", },
{ .compatible = "ti,dra7-dss", },
{}, {},
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment