[PATCH] fbdev: fsl-diu-fb: optionally configure frame buffer depth in DT
From: Anatolij Gustschin <hidden>
Date: 2013-03-13 15:24:09
Add support for 'depth' property to configure default frame buffer color depth over device tree. Signed-off-by: Anatolij Gustschin <agust@denx.de> --- .../devicetree/bindings/powerpc/fsl/diu.txt | 2 ++ drivers/video/fsl-diu-fb.c | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/Documentation/devicetree/bindings/powerpc/fsl/diu.txt b/Documentation/devicetree/bindings/powerpc/fsl/diu.txt
index b66cb6d..502aae5 100644
--- a/Documentation/devicetree/bindings/powerpc/fsl/diu.txt
+++ b/Documentation/devicetree/bindings/powerpc/fsl/diu.txt@@ -12,6 +12,7 @@ Required properties: services interrupts for this device. Optional properties: +- depth : default frame buffer color depth - edid : verbatim EDID data block describing attached display. Data from the detailed timing descriptor will be used to program the display controller.
@@ -30,5 +31,6 @@ Example for MPC5121: reg = <0x2100 0x100>; interrupts = <64 0x8>; interrupt-parent = <&ipic>; + depth = <16>; edid = [edid-data]; };
diff --git a/drivers/video/fsl-diu-fb.c b/drivers/video/fsl-diu-fb.c
index 41fbd94..2287817 100644
--- a/drivers/video/fsl-diu-fb.c
+++ b/drivers/video/fsl-diu-fb.c@@ -1534,6 +1534,7 @@ static int fsl_diu_probe(struct platform_device *pdev) const void *prop; unsigned int i; int ret; + u32 depth; data = dmam_alloc_coherent(&pdev->dev, sizeof(struct fsl_diu_data), &dma_addr, GFP_DMA | __GFP_ZERO);
@@ -1584,6 +1585,21 @@ static int fsl_diu_probe(struct platform_device *pdev) data->has_edid = true; } + if (!of_property_read_u32(np, "depth", &depth)) { + switch (depth) { + case 32: + case 24: + case 16: + case 8: + default_bpp = depth; + break; + default: + dev_err(&pdev->dev, + "%s: invalid depth property\n", + np->full_name); + } + } + data->diu_reg = of_iomap(np, 0); if (!data->diu_reg) { dev_err(&pdev->dev, "cannot map DIU registers\n");
--
1.7.5.4