* [PATCH 0/5] add super device node support
@ 2014-04-18 6:41 Inki Dae
2014-04-18 6:41 ` [PATCH v6 1/5] drm/exynos: add super device support Inki Dae
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Inki Dae @ 2014-04-18 6:41 UTC (permalink / raw)
To: airlied, dri-devel
Cc: mark.rutland, devicetree, linux-samsung-soc, linux, pawel.moll,
ijc+devicetree, sw0312.kim, a.hajda, kyungmin.park, robh+dt,
galak, kgene.kim
This patch series adds super device node approach and relevant
dt bindings, and rebased on top of below patch series,
http://www.spinics.net/lists/dri-devel/msg57673.html
Thanks,
Inki Dae
Inki Dae (5):
drm/exynos: add super device support
ARM: dts: exynos4210-universal: add super device node for exynos drm
ARM: dts: exynos4210-trats: add super device node for exynos drm
ARM: dts: exynos4412-trats2: add super device node for exynos drm
exynos/drm: add DT bindings for super device node
.../bindings/drm/exynos/samsung-exynos-drm.txt | 32 ++++++
arch/arm/boot/dts/exynos4210-trats.dts | 5 +
arch/arm/boot/dts/exynos4210-universal_c210.dts | 5 +
arch/arm/boot/dts/exynos4412-trats2.dts | 5 +
drivers/gpu/drm/exynos/exynos_dp_core.c | 4 +-
drivers/gpu/drm/exynos/exynos_drm_drv.c | 119 ++++++++++----------
drivers/gpu/drm/exynos/exynos_drm_drv.h | 7 --
drivers/gpu/drm/exynos/exynos_drm_dsi.c | 4 +-
drivers/gpu/drm/exynos/exynos_drm_fimd.c | 4 +-
drivers/gpu/drm/exynos/exynos_hdmi.c | 4 +-
drivers/gpu/drm/exynos/exynos_mixer.c | 4 +-
11 files changed, 116 insertions(+), 77 deletions(-)
create mode 100644 Documentation/devicetree/bindings/drm/exynos/samsung-exynos-drm.txt
--
1.7.9.5
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v6 1/5] drm/exynos: add super device support
2014-04-18 6:41 [PATCH 0/5] add super device node support Inki Dae
@ 2014-04-18 6:41 ` Inki Dae
2014-04-18 6:41 ` [PATCH 2/5] ARM: dts: exynos4210-universal: add super device node for exynos drm Inki Dae
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Inki Dae @ 2014-04-18 6:41 UTC (permalink / raw)
To: airlied, dri-devel
Cc: devicetree, robh+dt, pawel.moll, mark.rutland, ijc+devicetree,
galak, linux-samsung-soc, kyungmin.park, inki.dae, linux, a.hajda,
kgene.kim, jy0922.shim, sw0312.kim
This patch adds super device support to bind sub drivers
using device tree.
For this, you should add a super device node to each machine dt files
like belows,
In case of using MIPI-DSI,
display-subsystem {
compatible = "samsung,exynos-display-subsystem";
ports = <&fimd>, <&dsi>;
};
In case of using DisplayPort,
display-subsystem {
compatible = "samsung,exynos-display-subsystem";
ports = <&fimd>, <&dp>;
};
In case of using Parallel panel,
display-subsystem {
compatible = "samsung,exynos-display-subsystem";
ports = <&fimd>;
};
And if you don't add connector device node to ports property,
default parallel panel driver, exynos_drm_dpi module, will be used.
ports property can have the following device nodes,
fimd, mixer, Image Enhancer, MIPI-DSI, eDP, LVDS Bridge, or HDMI
With this patch, we can resolve the probing order issue without
some global lists. So this patch also removes the unnecessary lists and
stuff related to these lists.
Previous RFC patch,
http://www.spinics.net/lists/dri-devel/msg54671.html
Changelog since RFC patch:
- Register sub drivers and probe them at load(). In case of non sub
drivers, sub driver probe is needed.
- Enable runtime pm at fimd_probe() instead of fimd_bind(). runtime pm
should be enabled before iommu device is attached to fimd device.
- Do not return an error with component_master_add fail.
- Remove super device support from mipi dsi driver which was in RFC.
- Add super device support to parallel driver.
Changelog v2:
- Add super device support to mipi dsi driver.
- Bind fimd driver only in case that a drm_panel for parallel panel driver
is added to panel_list of drm_panel module.
- Change super node name to 'display-subsystem'
. 'exynos-drm' is specific to Linux so change it to generic name.
- Change propery name of super node to 'ports'
. crtcs and connectors propery names are also specific to Linux so
change them to generic name.
Changlog v3:
- Do not probe/remove dpi module if fimd node has no port node.
Changelog v4:
- Move some codes for getting resources from each bind function to
each probe function.
. if -EPROBE_DEFER is returned at bind context, components will be
bound and unbound repeatedly by deferred probe feature.
Changelog v5:
- Return error only in case that there is no any compoment attached
to master.
- Add legacy dt binding support
- Probe vidi driver in exynos_drm_init(), and release vidi driver
correctly.
- Remove duplicated coherent_dma_mask setting.
Changelog v6:
- Add super device support, and remove existing specific codes.
- Re-based on top of below patch series,
http://www.spinics.net/lists/dri-devel/msg57673.html
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
---
drivers/gpu/drm/exynos/exynos_dp_core.c | 4 +-
drivers/gpu/drm/exynos/exynos_drm_drv.c | 119 +++++++++++++++---------------
drivers/gpu/drm/exynos/exynos_drm_drv.h | 7 --
drivers/gpu/drm/exynos/exynos_drm_dsi.c | 4 +-
drivers/gpu/drm/exynos/exynos_drm_fimd.c | 4 +-
drivers/gpu/drm/exynos/exynos_hdmi.c | 4 +-
drivers/gpu/drm/exynos/exynos_mixer.c | 4 +-
7 files changed, 69 insertions(+), 77 deletions(-)
diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c b/drivers/gpu/drm/exynos/exynos_dp_core.c
index a97840c..1cc3981 100644
--- a/drivers/gpu/drm/exynos/exynos_dp_core.c
+++ b/drivers/gpu/drm/exynos/exynos_dp_core.c
@@ -1313,12 +1313,12 @@ static const struct component_ops exynos_dp_ops = {
static int exynos_dp_probe(struct platform_device *pdev)
{
- return exynos_drm_component_add(&pdev->dev, &exynos_dp_ops);
+ return component_add(&pdev->dev, &exynos_dp_ops);
}
static int exynos_dp_remove(struct platform_device *pdev)
{
- exynos_drm_component_del(&pdev->dev, &exynos_dp_ops);
+ component_del(&pdev->dev, &exynos_dp_ops);
return 0;
}
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index ab8ffbb..1d653f8 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -43,14 +43,6 @@
static struct platform_device *exynos_drm_pdev;
-static DEFINE_MUTEX(drm_component_lock);
-static LIST_HEAD(drm_component_list);
-
-struct component_dev {
- struct list_head list;
- struct device *dev;
-};
-
static int exynos_drm_load(struct drm_device *dev, unsigned long flags)
{
struct exynos_drm_private *private;
@@ -382,78 +374,72 @@ static const struct dev_pm_ops exynos_drm_pm_ops = {
SET_SYSTEM_SLEEP_PM_OPS(exynos_drm_sys_suspend, exynos_drm_sys_resume)
};
-int exynos_drm_component_add(struct device *dev,
- const struct component_ops *ops)
+static int compare_of(struct device *dev, void *data)
{
- struct component_dev *cdev;
- int ret;
-
- cdev = kzalloc(sizeof(*cdev), GFP_KERNEL);
- if (!cdev)
- return -ENOMEM;
-
- ret = component_add(dev, ops);
- if (ret) {
- kfree(cdev);
- return ret;
- }
+ return dev->of_node == data;
+}
- cdev->dev = dev;
+static int exynos_drm_bind_lagacy_dt(struct device *dev, struct master *m)
+{
+ const char *compatible_tbls[] = {
+ "samsung,exynos4210-fimd",
+ "samsung,exynos5250-fimd",
+ "samsung,exynos4210-mipi-dsi",
+ "samsung,exynos5-dp",
+ "samsung,exynos4212-hdmi",
+ "samsung,exynos5250-mixer",
+ "samsung,exynos5420-mixer", };
+ unsigned int attached_cnt = 0;
+ unsigned int i;
- mutex_lock(&drm_component_lock);
- list_add_tail(&cdev->list, &drm_component_list);
- mutex_unlock(&drm_component_lock);
+ for (i = 0; i < ARRAY_SIZE(compatible_tbls); i++) {
+ struct device_node *node;
+ int ret;
- return 0;
-}
+ node = of_find_compatible_node(NULL, NULL,
+ compatible_tbls[i]);
-void exynos_drm_component_del(struct device *dev,
- const struct component_ops *ops)
-{
- struct component_dev *cdev, *next;
+ ret = of_device_is_available(node);
+ if (!ret)
+ continue;
- mutex_lock(&drm_component_lock);
+ ret = component_master_add_child(m, compare_of, node);
+ of_node_put(node);
- list_for_each_entry_safe(cdev, next, &drm_component_list, list) {
- if (dev == cdev->dev) {
- list_del(&cdev->list);
- kfree(cdev);
- mutex_unlock(&drm_component_lock);
- break;
- }
+ if (!ret)
+ attached_cnt++;
}
- mutex_unlock(&drm_component_lock);
-
- component_del(dev, ops);
-}
+ if (!attached_cnt)
+ return -ENXIO;
-static int compare_of(struct device *dev, void *data)
-{
- return dev == (struct device *)data;
+ return 0;
}
static int exynos_drm_add_components(struct device *dev, struct master *m)
{
+ struct device_node *np = dev->of_node;
unsigned int attached_cnt = 0;
- struct component_dev *cdev;
+ unsigned int i;
- mutex_lock(&drm_component_lock);
+ if (!dev->of_node)
+ return exynos_drm_bind_lagacy_dt(dev, m);
- list_for_each_entry(cdev, &drm_component_list, list) {
+ for (i = 0;; i++) {
+ struct device_node *node;
int ret;
- mutex_unlock(&drm_component_lock);
+ node = of_parse_phandle(np, "ports", i);
+ if (!node)
+ break;
+
+ ret = component_master_add_child(m, compare_of, node);
+ of_node_put(node);
- ret = component_master_add_child(m, compare_of, cdev->dev);
if (!ret)
attached_cnt++;
-
- mutex_lock(&drm_component_lock);
}
- mutex_unlock(&drm_component_lock);
-
if (!attached_cnt)
return -ENXIO;
@@ -642,6 +628,13 @@ static int exynos_drm_platform_remove(struct platform_device *pdev)
return 0;
}
+static const struct of_device_id exynos_drm_dt_match[] = {
+ { .compatible = "samsung,exynos-display-subsystem", },
+ {},
+};
+
+MODULE_DEVICE_TABLE(of, exynos_drm_dt_match);
+
static struct platform_driver exynos_drm_platform_driver = {
.probe = exynos_drm_platform_probe,
.remove = exynos_drm_platform_remove,
@@ -649,17 +642,23 @@ static struct platform_driver exynos_drm_platform_driver = {
.owner = THIS_MODULE,
.name = "exynos-drm",
.pm = &exynos_drm_pm_ops,
+ .of_match_table = exynos_drm_dt_match,
},
};
static int exynos_drm_init(void)
{
+ const char *name = "samsung,exynos-display-subsystem";
+ struct device_node *node;
int ret;
- exynos_drm_pdev = platform_device_register_simple("exynos-drm", -1,
- NULL, 0);
- if (IS_ERR(exynos_drm_pdev))
- return PTR_ERR(exynos_drm_pdev);
+ node = of_find_compatible_node(NULL, NULL, name);
+ if (!node) {
+ exynos_drm_pdev = platform_device_register_simple("exynos-drm",
+ -1, NULL, 0);
+ if (IS_ERR(exynos_drm_pdev))
+ return PTR_ERR(exynos_drm_pdev);
+ }
#ifdef CONFIG_DRM_EXYNOS_VIDI
ret = exynos_drm_probe_vidi();
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.h b/drivers/gpu/drm/exynos/exynos_drm_drv.h
index d955f60..fc15fe6 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.h
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.h
@@ -356,13 +356,6 @@ void exynos_drm_remove_vidi(void);
int exynos_drm_create_enc_conn(struct drm_device *dev,
struct exynos_drm_display *display);
-struct component_ops;
-int exynos_drm_component_add(struct device *dev,
- const struct component_ops *ops);
-
-void exynos_drm_component_del(struct device *dev,
- const struct component_ops *ops);
-
extern struct platform_driver fimd_driver;
extern struct platform_driver dp_driver;
extern struct platform_driver dsi_driver;
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
index ae81124..6a90855 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
@@ -1495,12 +1495,12 @@ static int exynos_dsi_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, &exynos_dsi_display);
- return exynos_drm_component_add(&pdev->dev, &exynos_dsi_component_ops);
+ return component_add(&pdev->dev, &exynos_dsi_component_ops);
}
static int exynos_dsi_remove(struct platform_device *pdev)
{
- exynos_drm_component_del(&pdev->dev, &exynos_dsi_component_ops);
+ component_del(&pdev->dev, &exynos_dsi_component_ops);
return 0;
}
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
index a6d6386..dd8637b 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
@@ -958,14 +958,14 @@ static int fimd_probe(struct platform_device *pdev)
pm_runtime_enable(&pdev->dev);
- return exynos_drm_component_add(&pdev->dev, &fimd_component_ops);
+ return component_add(&pdev->dev, &fimd_component_ops);
}
static int fimd_remove(struct platform_device *pdev)
{
pm_runtime_disable(&pdev->dev);
- exynos_drm_component_del(&pdev->dev, &fimd_component_ops);
+ component_del(&pdev->dev, &fimd_component_ops);
return 0;
}
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
index 675996a..de23090 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -2168,7 +2168,7 @@ static int hdmi_probe(struct platform_device *pdev)
pm_runtime_enable(dev);
hdmi_display.ctx = hdata;
- return exynos_drm_component_add(&pdev->dev, &hdmi_component_ops);
+ return component_add(&pdev->dev, &hdmi_component_ops);
err_hdmiphy:
put_device(&hdata->hdmiphy_port->dev);
@@ -2186,7 +2186,7 @@ static int hdmi_remove(struct platform_device *pdev)
pm_runtime_disable(&pdev->dev);
- exynos_drm_component_del(&pdev->dev, &hdmi_component_ops);
+ component_del(&pdev->dev, &hdmi_component_ops);
return 0;
}
diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c
index 483d7c0..d46a262 100644
--- a/drivers/gpu/drm/exynos/exynos_mixer.c
+++ b/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -1273,12 +1273,12 @@ static const struct component_ops mixer_component_ops = {
static int mixer_probe(struct platform_device *pdev)
{
- return exynos_drm_component_add(&pdev->dev, &mixer_component_ops);
+ return component_add(&pdev->dev, &mixer_component_ops);
}
static int mixer_remove(struct platform_device *pdev)
{
- exynos_drm_component_del(&pdev->dev, &mixer_component_ops);
+ component_del(&pdev->dev, &mixer_component_ops);
return 0;
}
--
1.7.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/5] ARM: dts: exynos4210-universal: add super device node for exynos drm
2014-04-18 6:41 [PATCH 0/5] add super device node support Inki Dae
2014-04-18 6:41 ` [PATCH v6 1/5] drm/exynos: add super device support Inki Dae
@ 2014-04-18 6:41 ` Inki Dae
2014-04-18 6:41 ` [PATCH 3/5] ARM: dts: exynos4210-trats: " Inki Dae
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Inki Dae @ 2014-04-18 6:41 UTC (permalink / raw)
To: airlied, dri-devel
Cc: devicetree, robh+dt, pawel.moll, mark.rutland, ijc+devicetree,
galak, linux-samsung-soc, kyungmin.park, inki.dae, linux, a.hajda,
kgene.kim, jy0922.shim, sw0312.kim
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
---
arch/arm/boot/dts/exynos4210-universal_c210.dts | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/boot/dts/exynos4210-universal_c210.dts b/arch/arm/boot/dts/exynos4210-universal_c210.dts
index 0a80a72..5351ac4 100644
--- a/arch/arm/boot/dts/exynos4210-universal_c210.dts
+++ b/arch/arm/boot/dts/exynos4210-universal_c210.dts
@@ -409,6 +409,11 @@
};
};
+ display-subsystem {
+ compatible = "samsung,exynos-display-subsystem";
+ ports = <&fimd>;
+ };
+
pwm@139D0000 {
compatible = "samsung,s5p6440-pwm";
status = "okay";
--
1.7.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/5] ARM: dts: exynos4210-trats: add super device node for exynos drm
2014-04-18 6:41 [PATCH 0/5] add super device node support Inki Dae
2014-04-18 6:41 ` [PATCH v6 1/5] drm/exynos: add super device support Inki Dae
2014-04-18 6:41 ` [PATCH 2/5] ARM: dts: exynos4210-universal: add super device node for exynos drm Inki Dae
@ 2014-04-18 6:41 ` Inki Dae
2014-04-18 6:41 ` [PATCH 4/5] ARM: dts: exynos4412-trats2: " Inki Dae
2014-04-18 6:41 ` [PATCH 5/5] exynos/drm: add DT bindings for super device node Inki Dae
4 siblings, 0 replies; 6+ messages in thread
From: Inki Dae @ 2014-04-18 6:41 UTC (permalink / raw)
To: airlied, dri-devel
Cc: mark.rutland, devicetree, linux-samsung-soc, linux, pawel.moll,
ijc+devicetree, sw0312.kim, a.hajda, kyungmin.park, robh+dt,
galak, kgene.kim
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
---
arch/arm/boot/dts/exynos4210-trats.dts | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts
index 02c6768..a41c109 100644
--- a/arch/arm/boot/dts/exynos4210-trats.dts
+++ b/arch/arm/boot/dts/exynos4210-trats.dts
@@ -414,6 +414,11 @@
status = "okay";
};
+ display-subsystem {
+ compatible = "samsung,exynos-display-subsystem";
+ ports = <&fimd>, <&dsi_0>;
+ };
+
camera {
pinctrl-names = "default";
pinctrl-0 = <>;
--
1.7.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 4/5] ARM: dts: exynos4412-trats2: add super device node for exynos drm
2014-04-18 6:41 [PATCH 0/5] add super device node support Inki Dae
` (2 preceding siblings ...)
2014-04-18 6:41 ` [PATCH 3/5] ARM: dts: exynos4210-trats: " Inki Dae
@ 2014-04-18 6:41 ` Inki Dae
2014-04-18 6:41 ` [PATCH 5/5] exynos/drm: add DT bindings for super device node Inki Dae
4 siblings, 0 replies; 6+ messages in thread
From: Inki Dae @ 2014-04-18 6:41 UTC (permalink / raw)
To: airlied, dri-devel
Cc: mark.rutland, devicetree, linux-samsung-soc, linux, pawel.moll,
ijc+devicetree, sw0312.kim, a.hajda, kyungmin.park, robh+dt,
galak, kgene.kim
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
---
arch/arm/boot/dts/exynos4412-trats2.dts | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm/boot/dts/exynos4412-trats2.dts b/arch/arm/boot/dts/exynos4412-trats2.dts
index 53c717b..115b9ed 100644
--- a/arch/arm/boot/dts/exynos4412-trats2.dts
+++ b/arch/arm/boot/dts/exynos4412-trats2.dts
@@ -581,6 +581,11 @@
status = "okay";
};
+ display-subsystem {
+ compatible = "samsung,exynos-display-subsystem";
+ ports = <&fimd>, <&dsi_0>;
+ };
+
camera {
pinctrl-0 = <&cam_port_b_clk_active>;
pinctrl-names = "default";
--
1.7.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 5/5] exynos/drm: add DT bindings for super device node
2014-04-18 6:41 [PATCH 0/5] add super device node support Inki Dae
` (3 preceding siblings ...)
2014-04-18 6:41 ` [PATCH 4/5] ARM: dts: exynos4412-trats2: " Inki Dae
@ 2014-04-18 6:41 ` Inki Dae
4 siblings, 0 replies; 6+ messages in thread
From: Inki Dae @ 2014-04-18 6:41 UTC (permalink / raw)
To: airlied, dri-devel
Cc: mark.rutland, devicetree, linux-samsung-soc, linux, pawel.moll,
ijc+devicetree, sw0312.kim, a.hajda, kyungmin.park, robh+dt,
galak, kgene.kim
This patch adds bindings for Exynos drm display subsystem.
The bindings describes ports containing a list of phandles
pointing to display controller, image enhancer, and display
interfaces nodes.
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
---
.../bindings/drm/exynos/samsung-exynos-drm.txt | 32 ++++++++++++++++++++
1 file changed, 32 insertions(+)
create mode 100644 Documentation/devicetree/bindings/drm/exynos/samsung-exynos-drm.txt
diff --git a/Documentation/devicetree/bindings/drm/exynos/samsung-exynos-drm.txt b/Documentation/devicetree/bindings/drm/exynos/samsung-exynos-drm.txt
new file mode 100644
index 0000000..6f7fae0
--- /dev/null
+++ b/Documentation/devicetree/bindings/drm/exynos/samsung-exynos-drm.txt
@@ -0,0 +1,32 @@
+Samsung Exynos DRM master device
+================================
+
+The Samsung Exynos DRM master device is a virtual device needed to list all
+display controller, image enhancer, and display interface nodes that comprise
+the graphics subsystem.
+
+Required properties:
+- compatible: Should be "samsung,exynos-display-subsystem"
+- ports: Should contain a list of phandles pointing to display controller,
+ image enhancer, and display interface ports.
+
+Examples:
+
+In case of using MIPI-DSI,
+display-subsystem {
+ compatible = "samsung,exynos-display-subsystem";
+ ports = <&fimd>, <&dsi>;
+};
+
+
+In case of using DisplayPort,
+display-subsystem {
+ compatible = "samsung,exynos-display-subsystem";
+ ports = <&fimd>, <&dp>;
+};
+
+In case of using parallel panel,
+display-subsystem {
+ compatible = "samsung,exynos-display-subsystem";
+ ports = <&fimd>;
+};
--
1.7.9.5
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-04-18 6:41 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-04-18 6:41 [PATCH 0/5] add super device node support Inki Dae
2014-04-18 6:41 ` [PATCH v6 1/5] drm/exynos: add super device support Inki Dae
2014-04-18 6:41 ` [PATCH 2/5] ARM: dts: exynos4210-universal: add super device node for exynos drm Inki Dae
2014-04-18 6:41 ` [PATCH 3/5] ARM: dts: exynos4210-trats: " Inki Dae
2014-04-18 6:41 ` [PATCH 4/5] ARM: dts: exynos4412-trats2: " Inki Dae
2014-04-18 6:41 ` [PATCH 5/5] exynos/drm: add DT bindings for super device node Inki Dae
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).