Re: [PATCH] drm: renesas: Move RZ/G2L MIPI DSI driver to rz-du

2024-08-23 Thread Lad, Prabhakar
Hi Laurent,

On Wed, Jun 26, 2024 at 6:51 AM Laurent Pinchart
 wrote:
>
> Hi Prabhakar,
>
> Thank you for the patch.
>
> On Tue, Jun 25, 2024 at 01:32:44PM +0100, Prabhakar wrote:
> > From: Lad Prabhakar 
> >
> > All the RZ/G2L DU specific components are located under the rz-du folder,
> > so it makes sense to move the RZ/G2L MIPI DSI driver there instead of
> > keeping it in the rcar-du folder. This change improves the organization
> > and modularity of the driver configuration by grouping related settings 
> > together.
>
> I was thinking the same the other day. Thanks for beating me at sending
> a patch :-)
>
> Reviewed-by: Laurent Pinchart 
>
> Do you or Biju has committer rights to drm-misc to push this patch ?
>
We dont, can you please queue this patch via your tree?

Cheers,
Prabhakar


Re: [PATCH v5 5/7] media: platform: ti: use for_each_endpoint_of_node()

2024-07-01 Thread Lad, Prabhakar
On Mon, Jul 1, 2024 at 3:32 AM Kuninori Morimoto
 wrote:
>
> We already have for_each_endpoint_of_node(), don't use
> of_graph_get_next_endpoint() directly. Replace it.
>
> Signed-off-by: Kuninori Morimoto 
> Reviewed-by: Laurent Pinchart 
> ---
>  drivers/media/platform/ti/am437x/am437x-vpfe.c   | 12 +---
>  drivers/media/platform/ti/davinci/vpif_capture.c | 14 +++---
>  2 files changed, 12 insertions(+), 14 deletions(-)
>
Reviewed-by: Prabhakar 

Cheers,
Prabhakar


Re: [PATCH v3 5/6] ARM: dts: renesas: Use new media bus type macros

2022-11-18 Thread Lad, Prabhakar
Hi Laurent,

Thank you for the patch.

On Wed, Jun 15, 2022 at 11:21 PM Laurent Pinchart
 wrote:
>
> Now that a header exists with macros for the media interface bus-type
> values, replace hardcoding numerical constants with the corresponding
> macros in the DT sources.
>
> Signed-off-by: Laurent Pinchart 
> ---
>  arch/arm/boot/dts/r8a7742-iwg21d-q7-dbcm-ca.dts   | 11 +++
>  .../dts/r8a7742-iwg21d-q7-dbcm-ov5640-single.dtsi |  4 +++-
>  .../dts/r8a7742-iwg21d-q7-dbcm-ov7725-single.dtsi |  4 +++-
>  3 files changed, 13 insertions(+), 6 deletions(-)
>
Reviewed-by: Lad Prabhakar 

Cheers,
Prabhakar


[PATCH v2] dt-bindings: display: bridge: renesas, dw-hdmi: Add resets property

2022-08-31 Thread Lad Prabhakar
The DWC HDMI blocks on R-Car and RZ/G2 SoC's use resets, so to complete
the bindings include resets property.

This also fixes the below warning when running dtbs_check:
arch/arm64/boot/dts/renesas/r8a774b1-hihope-rzg2n-rev2-ex-idk-1110wr.dtb: 
hdmi@fead: Unevaluated properties are not allowed ('resets' was unexpected)
From schema: 
Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml

While at it mark resets property as required as all the DT sources
in the kernel specify resets and update the example node.

Signed-off-by: Lad Prabhakar 
Reviewed-by: Laurent Pinchart 
---
v1->v2
* Updated commit message
* Marked resets as required property
* Updated the example node
* Included RB tag from Laurent

v1: 
https://lore.kernel.org/lkml/20220829215816.6206-1-prabhakar.mahadev-lad...@bp.renesas.com/
---
 .../devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml  | 5 +
 1 file changed, 5 insertions(+)

diff --git 
a/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml 
b/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml
index 0c9785c8db51..e3ec697f89e7 100644
--- a/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml
@@ -38,6 +38,9 @@ properties:
   clock-names:
 maxItems: 2
 
+  resets:
+maxItems: 1
+
   ports:
 $ref: /schemas/graph.yaml#/properties/ports
 
@@ -67,6 +70,7 @@ required:
   - reg
   - clocks
   - clock-names
+  - resets
   - interrupts
   - ports
 
@@ -85,6 +89,7 @@ examples:
 clocks = <&cpg CPG_CORE R8A7795_CLK_S0D4>, <&cpg CPG_MOD 729>;
 clock-names = "iahb", "isfr";
 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
+resets = <&cpg 729>;
 
 ports {
 #address-cells = <1>;
-- 
2.25.1



Re: [PATCH] dt-bindings: display: bridge: renesas,dw-hdmi: Fix 'unevaluatedProperties' warnings

2022-08-30 Thread Lad, Prabhakar
Hi Krzysztof,

Thank you for the review.

On Tue, Aug 30, 2022 at 10:23 AM Krzysztof Kozlowski
 wrote:
>
> On 30/08/2022 00:58, Lad Prabhakar wrote:
> > With 'unevaluatedProperties' support implemented, there's a number of
> > warnings when running dtbs_check:
> >
> > arch/arm64/boot/dts/renesas/r8a774b1-hihope-rzg2n-rev2-ex-idk-1110wr.dtb: 
> > hdmi@fead: Unevaluated properties are not allowed ('resets' was 
> > unexpected)
> >   From schema: 
> > Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml
> >
> > The main problem is that SoC DTSI's are including resets property, whereas
> > the renesas,dw-hdmi.yaml has 'unevaluatedProperties: false'. So just add
> > optional resets property to the binding.
>
> This is not main problem. I already commented on two of your similar
> patches, so same applies here. Please describe real problem.
>
Sure will do that and send a v2 (and also for the reset of the patches).

Cheers,
Prabhakar


Re: [PATCH] dt-bindings: display: bridge: renesas,dw-hdmi: Fix 'unevaluatedProperties' warnings

2022-08-30 Thread Lad, Prabhakar
Hi Laurent,

On Tue, Aug 30, 2022 at 12:08 AM Laurent Pinchart
 wrote:
>
> Hi Prabhakar,
>
> Thank you for the patch.
>
> On Mon, Aug 29, 2022 at 10:58:16PM +0100, Lad Prabhakar wrote:
> > With 'unevaluatedProperties' support implemented, there's a number of
> > warnings when running dtbs_check:
> >
> > arch/arm64/boot/dts/renesas/r8a774b1-hihope-rzg2n-rev2-ex-idk-1110wr.dtb: 
> > hdmi@fead: Unevaluated properties are not allowed ('resets' was 
> > unexpected)
> >   From schema: 
> > Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml
> >
> > The main problem is that SoC DTSI's are including resets property, whereas
> > the renesas,dw-hdmi.yaml has 'unevaluatedProperties: false'. So just add
> > optional resets property to the binding.
>
> Given that all the DT sources in the kernel specify the resets property,
> how about making it mandatory ?
>
Agreed, will do that and send a v2.

Cheers,
Prabhakar


[PATCH] dt-bindings: display: bridge: renesas, dw-hdmi: Fix 'unevaluatedProperties' warnings

2022-08-29 Thread Lad Prabhakar
With 'unevaluatedProperties' support implemented, there's a number of
warnings when running dtbs_check:

arch/arm64/boot/dts/renesas/r8a774b1-hihope-rzg2n-rev2-ex-idk-1110wr.dtb: 
hdmi@fead: Unevaluated properties are not allowed ('resets' was unexpected)
From schema: 
Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml

The main problem is that SoC DTSI's are including resets property, whereas
the renesas,dw-hdmi.yaml has 'unevaluatedProperties: false'. So just add
optional resets property to the binding.

Signed-off-by: Lad Prabhakar 
---
 .../devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml| 3 +++
 1 file changed, 3 insertions(+)

diff --git 
a/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml 
b/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml
index 0c9785c8db51..a7e44e249dd3 100644
--- a/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml
+++ b/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml
@@ -38,6 +38,9 @@ properties:
   clock-names:
 maxItems: 2
 
+  resets:
+maxItems: 1
+
   ports:
 $ref: /schemas/graph.yaml#/properties/ports
 
-- 
2.25.1



[PATCH] dt-bindings: gpu: mali-bifrost: Document RZ/V2L SoC

2022-03-08 Thread Lad Prabhakar
The Renesas RZ/V2L SoC (a.k.a R9A07G054) has a Bifrost Mali-G31 GPU,
add a compatible string for it.

Signed-off-by: Lad Prabhakar 
Reviewed-by: Biju Das 
---
 Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml 
b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
index 4d6bfae0653c..85f8d4764740 100644
--- a/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
+++ b/Documentation/devicetree/bindings/gpu/arm,mali-bifrost.yaml
@@ -20,6 +20,7 @@ properties:
   - mediatek,mt8183-mali
   - realtek,rtd1619-mali
   - renesas,r9a07g044-mali
+  - renesas,r9a07g054-mali
   - rockchip,px30-mali
   - rockchip,rk3568-mali
   - const: arm,mali-bifrost # Mali Bifrost GPU model/revision is fully 
discoverable
@@ -109,7 +110,9 @@ allOf:
   properties:
 compatible:
   contains:
-const: renesas,r9a07g044-mali
+enum:
+  - renesas,r9a07g044-mali
+  - renesas,r9a07g054-mali
 then:
   properties:
 interrupts:
-- 
2.17.1



Re: [PATCH 2/5] drm/exynos: mixer: Use platform_get_irq() to get the interrupt

2022-01-17 Thread Lad, Prabhakar
Hi Inki,

On Fri, Jan 14, 2022 at 11:08 AM Inki Dae  wrote:
>
> Hi Lad Prabhakar,
>
> 21. 12. 23. 오전 4:01에 Lad Prabhakar 이(가) 쓴 글:
> > platform_get_resource(pdev, IORESOURCE_IRQ, ..) relies on static
> > allocation of IRQ resources in DT core code, this causes an issue
> > when using hierarchical interrupt domains using "interrupts" property
> > in the node as this bypassed the hierarchical setup and messed up the
> > irq chaining.
> >
> > In preparation for removal of static setup of IRQ resource from DT core
> > code use platform_get_irq().
> >
> > Signed-off-by: Lad Prabhakar 
> > ---
> > Hi,
> >
> > Ideally I would expect the mixer_resources_init() to be called from probe
> > instead from the bind callback. If platform_get_irq() returns -EPROBE_DEFER
> > the bind callback will fail :(
>
> If the bind callback failed then probe function of exynos drm driver will 
> call -EPROBE_DEFER like below so it must be no problem :),
> 
> in exynos_drm_platform_probe function
> component_master_add_with_match()
>
> in component_master_add_with_match function
> try_to_bring_up_master()
>
Thank you for the clarification.

Cheers,
Prabhakar


[PATCH 2/5] drm/exynos: mixer: Use platform_get_irq() to get the interrupt

2021-12-24 Thread Lad Prabhakar
platform_get_resource(pdev, IORESOURCE_IRQ, ..) relies on static
allocation of IRQ resources in DT core code, this causes an issue
when using hierarchical interrupt domains using "interrupts" property
in the node as this bypassed the hierarchical setup and messed up the
irq chaining.

In preparation for removal of static setup of IRQ resource from DT core
code use platform_get_irq().

Signed-off-by: Lad Prabhakar 
---
Hi,

Ideally I would expect the mixer_resources_init() to be called from probe
instead from the bind callback. If platform_get_irq() returns -EPROBE_DEFER
the bind callback will fail :(

Cheers,
Prabhakar
---
 drivers/gpu/drm/exynos/exynos_mixer.c | 14 ++
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c 
b/drivers/gpu/drm/exynos/exynos_mixer.c
index 41c54f1f60bc..e5204be86093 100644
--- a/drivers/gpu/drm/exynos/exynos_mixer.c
+++ b/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -809,19 +809,17 @@ static int mixer_resources_init(struct mixer_context 
*mixer_ctx)
return -ENXIO;
}
 
-   res = platform_get_resource(mixer_ctx->pdev, IORESOURCE_IRQ, 0);
-   if (res == NULL) {
-   dev_err(dev, "get interrupt resource failed.\n");
-   return -ENXIO;
-   }
+   ret = platform_get_irq(mixer_ctx->pdev, 0);
+   if (ret < 0)
+   return ret;
+   mixer_ctx->irq = ret;
 
-   ret = devm_request_irq(dev, res->start, mixer_irq_handler,
-   0, "drm_mixer", mixer_ctx);
+   ret = devm_request_irq(dev, mixer_ctx->irq, mixer_irq_handler,
+  0, "drm_mixer", mixer_ctx);
if (ret) {
dev_err(dev, "request interrupt failed.\n");
return ret;
}
-   mixer_ctx->irq = res->start;
 
return 0;
 }
-- 
2.17.1



[PATCH 0/5] drm/exynos: Use platform_get_irq*() variants to fetch IRQ's

2021-12-24 Thread Lad Prabhakar
Hi All,

This patch series aims to drop using platform_get_resource() for IRQ types
in preparation for removal of static setup of IRQ resource from DT core
code.

Dropping usage of platform_get_resource() was agreed based on
the discussion [0].

[0] https://patchwork.kernel.org/project/linux-renesas-soc/
patch/20211209001056.29774-1-prabhakar.mahadev-lad...@bp.renesas.com/

Cheers,
Prabhakar

Lad Prabhakar (5):
  drm/exynos/exynos7_drm_decon: Use platform_get_irq_byname() to get the
interrupt
  drm/exynos: mixer: Use platform_get_irq() to get the interrupt
  drm/exynos/exynos_drm_fimd: Use platform_get_irq_byname() to get the
interrupt
  drm/exynos/fimc: Use platform_get_irq() to get the interrupt
  drm/exynos: gsc: Use platform_get_irq() to get the interrupt

 drivers/gpu/drm/exynos/exynos7_drm_decon.c | 12 +++-
 drivers/gpu/drm/exynos/exynos_drm_fimc.c   | 13 +
 drivers/gpu/drm/exynos/exynos_drm_fimd.c   | 13 -
 drivers/gpu/drm/exynos/exynos_drm_gsc.c| 10 +++---
 drivers/gpu/drm/exynos/exynos_mixer.c  | 14 ++
 5 files changed, 21 insertions(+), 41 deletions(-)

-- 
2.17.1



[PATCH 3/5] drm/exynos/exynos_drm_fimd: Use platform_get_irq_byname() to get the interrupt

2021-12-24 Thread Lad Prabhakar
platform_get_resource_byname(pdev, IORESOURCE_IRQ, ..) relies on static
allocation of IRQ resources in DT core code, this causes an issue
when using hierarchical interrupt domains using "interrupts" property
in the node as this bypassed the hierarchical setup and messed up the
irq chaining.

In preparation for removal of static setup of IRQ resource from DT core
code use platform_get_irq_byname().

Signed-off-by: Lad Prabhakar 
---
 drivers/gpu/drm/exynos/exynos_drm_fimd.c | 13 -
 1 file changed, 4 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c 
b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
index c735e53939d8..7d5a483a54de 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
@@ -1133,7 +1133,6 @@ static int fimd_probe(struct platform_device *pdev)
struct device *dev = &pdev->dev;
struct fimd_context *ctx;
struct device_node *i80_if_timings;
-   struct resource *res;
int ret;
 
if (!dev->of_node)
@@ -1206,15 +1205,11 @@ static int fimd_probe(struct platform_device *pdev)
if (IS_ERR(ctx->regs))
return PTR_ERR(ctx->regs);
 
-   res = platform_get_resource_byname(pdev, IORESOURCE_IRQ,
-  ctx->i80_if ? "lcd_sys" : "vsync");
-   if (!res) {
-   dev_err(dev, "irq request failed.\n");
-   return -ENXIO;
-   }
+   ret = platform_get_irq_byname(pdev, ctx->i80_if ? "lcd_sys" : "vsync");
+   if (ret < 0)
+   return ret;
 
-   ret = devm_request_irq(dev, res->start, fimd_irq_handler,
-   0, "drm_fimd", ctx);
+   ret = devm_request_irq(dev, ret, fimd_irq_handler, 0, "drm_fimd", ctx);
if (ret) {
dev_err(dev, "irq request failed.\n");
return ret;
-- 
2.17.1



[PATCH 5/5] drm/exynos: gsc: Use platform_get_irq() to get the interrupt

2021-12-24 Thread Lad Prabhakar
platform_get_resource(pdev, IORESOURCE_IRQ, ..) relies on static
allocation of IRQ resources in DT core code, this causes an issue
when using hierarchical interrupt domains using "interrupts" property
in the node as this bypassed the hierarchical setup and messed up the
irq chaining.

In preparation for removal of static setup of IRQ resource from DT core
code use platform_get_irq().

Signed-off-by: Lad Prabhakar 
---
 drivers/gpu/drm/exynos/exynos_drm_gsc.c | 10 +++---
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_gsc.c 
b/drivers/gpu/drm/exynos/exynos_drm_gsc.c
index 166a80262896..964dceb28c1e 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_gsc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_gsc.c
@@ -1220,7 +1220,6 @@ static int gsc_probe(struct platform_device *pdev)
struct gsc_driverdata *driver_data;
struct exynos_drm_ipp_formats *formats;
struct gsc_context *ctx;
-   struct resource *res;
int num_formats, ret, i, j;
 
ctx = devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL);
@@ -1275,13 +1274,10 @@ static int gsc_probe(struct platform_device *pdev)
return PTR_ERR(ctx->regs);
 
/* resource irq */
-   res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
-   if (!res) {
-   dev_err(dev, "failed to request irq resource.\n");
-   return -ENOENT;
-   }
+   ctx->irq = platform_get_irq(pdev, 0);
+   if (ctx->irq < 0)
+   return ctx->irq;
 
-   ctx->irq = res->start;
ret = devm_request_irq(dev, ctx->irq, gsc_irq_handler, 0,
   dev_name(dev), ctx);
if (ret < 0) {
-- 
2.17.1



[PATCH 1/5] drm/exynos/exynos7_drm_decon: Use platform_get_irq_byname() to get the interrupt

2021-12-24 Thread Lad Prabhakar
platform_get_resource_byname(pdev, IORESOURCE_IRQ, ..) relies on static
allocation of IRQ resources in DT core code, this causes an issue
when using hierarchical interrupt domains using "interrupts" property
in the node as this bypassed the hierarchical setup and messed up the
irq chaining.

In preparation for removal of static setup of IRQ resource from DT core
code use platform_get_irq_byname().

Signed-off-by: Lad Prabhakar 
---
 drivers/gpu/drm/exynos/exynos7_drm_decon.c | 12 +++-
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos7_drm_decon.c 
b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
index 12571ac45540..c04264f70ad1 100644
--- a/drivers/gpu/drm/exynos/exynos7_drm_decon.c
+++ b/drivers/gpu/drm/exynos/exynos7_drm_decon.c
@@ -678,7 +678,6 @@ static int decon_probe(struct platform_device *pdev)
struct device *dev = &pdev->dev;
struct decon_context *ctx;
struct device_node *i80_if_timings;
-   struct resource *res;
int ret;
 
if (!dev->of_node)
@@ -728,16 +727,11 @@ static int decon_probe(struct platform_device *pdev)
goto err_iounmap;
}
 
-   res = platform_get_resource_byname(pdev, IORESOURCE_IRQ,
-  ctx->i80_if ? "lcd_sys" : "vsync");
-   if (!res) {
-   dev_err(dev, "irq request failed.\n");
-   ret = -ENXIO;
+   ret =  platform_get_irq_byname(pdev, ctx->i80_if ? "lcd_sys" : "vsync");
+   if (ret < 0)
goto err_iounmap;
-   }
 
-   ret = devm_request_irq(dev, res->start, decon_irq_handler,
-   0, "drm_decon", ctx);
+   ret = devm_request_irq(dev, ret, decon_irq_handler, 0, "drm_decon", 
ctx);
if (ret) {
dev_err(dev, "irq request failed.\n");
goto err_iounmap;
-- 
2.17.1



[PATCH 4/5] drm/exynos/fimc: Use platform_get_irq() to get the interrupt

2021-12-24 Thread Lad Prabhakar
platform_get_resource(pdev, IORESOURCE_IRQ, ..) relies on static
allocation of IRQ resources in DT core code, this causes an issue
when using hierarchical interrupt domains using "interrupts" property
in the node as this bypassed the hierarchical setup and messed up the
irq chaining.

In preparation for removal of static setup of IRQ resource from DT core
code use platform_get_irq().

Signed-off-by: Lad Prabhakar 
---
 drivers/gpu/drm/exynos/exynos_drm_fimc.c | 13 +
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimc.c 
b/drivers/gpu/drm/exynos/exynos_drm_fimc.c
index ecfd82d0afb7..dd806743e4de 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimc.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimc.c
@@ -1267,7 +1267,6 @@ static int fimc_probe(struct platform_device *pdev)
struct exynos_drm_ipp_formats *formats;
struct device *dev = &pdev->dev;
struct fimc_context *ctx;
-   struct resource *res;
int ret;
int i, j, num_limits, num_formats;
 
@@ -1330,14 +1329,12 @@ static int fimc_probe(struct platform_device *pdev)
return PTR_ERR(ctx->regs);
 
/* resource irq */
-   res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
-   if (!res) {
-   dev_err(dev, "failed to request irq resource.\n");
-   return -ENOENT;
-   }
+   ret = platform_get_irq(pdev, 0);
+   if (ret < 0)
+   return ret;
 
-   ret = devm_request_irq(dev, res->start, fimc_irq_handler,
-   0, dev_name(dev), ctx);
+   ret = devm_request_irq(dev, ret, fimc_irq_handler,
+  0, dev_name(dev), ctx);
if (ret < 0) {
dev_err(dev, "failed to request irq.\n");
return ret;
-- 
2.17.1



Re: [PATCH v2] ARM: dts: r8a7742-iwg21d-q7: Add LCD support

2020-09-28 Thread Lad, Prabhakar
Hi Laurent,

On Mon, Aug 24, 2020 at 1:48 AM Laurent Pinchart
 wrote:
>
> Hi Prabhakar,
>
> Thank you for the patch.
>
> On Thu, Aug 13, 2020 at 03:00:41PM +0100, Lad Prabhakar wrote:
> > The iwg21d comes with a 7" capacitive touch screen, therefore
> > add support for it.
> >
> > Signed-off-by: Lad Prabhakar 
> > Reviewed-by: Marian-Cristian Rotariu 
> > 
>
> Everything seems to match the schematics :-)
>
> Reviewed-by: Laurent Pinchart 
>
> > ---
> > v1->v2
> > * This patch is part of series [1] (rest of the patches have be accepted
> >   by Geert [2]).
> > * Added regulator for lvds
> > * Added reset pin for touchpanel
> > * This patch is based on series [3]
> >
> > [1] https://patchwork.kernel.org/project/linux-renesas-soc/list/
> > ?series=330277
> > [2] https://git.kernel.org/pub/scm/linux/kernel/git/geert/
> > renesas-devel.git/log/?h=renesas-arm-dt-for-v5.10
> > [3] https://patchwork.kernel.org/project/linux-renesas-soc/list/
> > ?series=330957
> > ---
> >  arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 99 +
> >  1 file changed, 99 insertions(+)
> >
Would you be queueing this patch along with DRM driver patches for v5.10 ?

Cheers,
Prabhakar

> > diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts 
> > b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
> > index b3461a61a4bf..9bf4fbd9c736 100644
> > --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
> > +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
> > @@ -30,6 +30,7 @@
> >
> >  /dts-v1/;
> >  #include "r8a7742-iwg21m.dtsi"
> > +#include 
> >
> >  / {
> >   model = "iWave Systems RainboW-G21D-Qseven board based on RZ/G1H";
> > @@ -52,6 +53,51 @@
> >   clock-frequency = <2600>;
> >   };
> >
> > + lcd_backlight: backlight {
> > + compatible = "pwm-backlight";
> > + pwms = <&tpu 2 500 0>;
> > + brightness-levels = <0 4 8 16 32 64 128 255>;
> > + pinctrl-0 = <&backlight_pins>;
> > + pinctrl-names = "default";
> > + default-brightness-level = <7>;
> > + enable-gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
> > + };
> > +
> > + lvds-receiver {
> > + compatible = "ti,ds90cf384a", "lvds-decoder";
> > + vcc-supply = <&vcc_3v3_tft1>;
> > +
> > + ports {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + port@0 {
> > + reg = <0>;
> > + lvds_receiver_in: endpoint {
> > + remote-endpoint = <&lvds0_out>;
> > + };
> > + };
> > + port@1 {
> > + reg = <1>;
> > + lvds_receiver_out: endpoint {
> > + remote-endpoint = <&panel_in>;
> > + };
> > + };
> > + };
> > + };
> > +
> > + panel {
> > + compatible = "edt,etm0700g0dh6";
> > + backlight = <&lcd_backlight>;
> > + power-supply = <&vcc_3v3_tft1>;
> > +
> > + port {
> > + panel_in: endpoint {
> > + remote-endpoint = <&lvds_receiver_out>;
> > + };
> > + };
> > + };
> > +
> >   reg_1p5v: 1p5v {
> >   compatible = "regulator-fixed";
> >   regulator-name = "1P5V";
> > @@ -75,6 +121,17 @@
> >   };
> >   };
> >
> > + vcc_3v3_tft1: regulator-panel {
> > + compatible = "regulator-fixed";
> > +
> > + regulator-name = "vcc-3v3-tft1";
> > + regulator-min-microvolt = <330>;
> > + regulator-max-microvolt = <330>;
> > + enable-active-high;
> > + startup-delay-us = <500>;
> > + gpio = <&gpio5 28 GPIO_ACTIVE_HIGH>;
> > + };
> > +
> >   vcc_sdhi2: regulator-vcc-sdhi2 {
> >  

[PATCH] drm: Kconfig: Update description for DRM_RCAR_DW_HDMI config

2020-09-14 Thread Lad Prabhakar
rcar_dw_hdmi driver is also used on Renesas RZ/G2 SoC's, update the
same to reflect the description for DRM_RCAR_DW_HDMI config.

Signed-off-by: Lad Prabhakar 
Reviewed-by: Chris Paterson 
---
 drivers/gpu/drm/rcar-du/Kconfig | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/rcar-du/Kconfig b/drivers/gpu/drm/rcar-du/Kconfig
index f65d1489dc50..bd8b43fb9753 100644
--- a/drivers/gpu/drm/rcar-du/Kconfig
+++ b/drivers/gpu/drm/rcar-du/Kconfig
@@ -22,11 +22,11 @@ config DRM_RCAR_CMM
  Enable support for R-Car Color Management Module (CMM).
 
 config DRM_RCAR_DW_HDMI
-   tristate "R-Car DU Gen3 HDMI Encoder Support"
+   tristate "R-Car Gen3 and RZ/G2 DU HDMI Encoder Support"
depends on DRM && OF
select DRM_DW_HDMI
help
- Enable support for R-Car Gen3 internal HDMI encoder.
+ Enable support for R-Car Gen3 or RZ/G2 internal HDMI encoder.
 
 config DRM_RCAR_LVDS
tristate "R-Car DU LVDS Encoder Support"
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH v2] ARM: dts: r8a7742-iwg21d-q7: Add LCD support

2020-08-17 Thread Lad Prabhakar
The iwg21d comes with a 7" capacitive touch screen, therefore
add support for it.

Signed-off-by: Lad Prabhakar 
Reviewed-by: Marian-Cristian Rotariu 
---
v1->v2
* This patch is part of series [1] (rest of the patches have be accepted
  by Geert [2]).
* Added regulator for lvds
* Added reset pin for touchpanel
* This patch is based on series [3]

[1] https://patchwork.kernel.org/project/linux-renesas-soc/list/
?series=330277
[2] https://git.kernel.org/pub/scm/linux/kernel/git/geert/
renesas-devel.git/log/?h=renesas-arm-dt-for-v5.10
[3] https://patchwork.kernel.org/project/linux-renesas-soc/list/
?series=330957
---
 arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 99 +
 1 file changed, 99 insertions(+)

diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts 
b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
index b3461a61a4bf..9bf4fbd9c736 100644
--- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
+++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
@@ -30,6 +30,7 @@
 
 /dts-v1/;
 #include "r8a7742-iwg21m.dtsi"
+#include 
 
 / {
model = "iWave Systems RainboW-G21D-Qseven board based on RZ/G1H";
@@ -52,6 +53,51 @@
clock-frequency = <2600>;
};
 
+   lcd_backlight: backlight {
+   compatible = "pwm-backlight";
+   pwms = <&tpu 2 500 0>;
+   brightness-levels = <0 4 8 16 32 64 128 255>;
+   pinctrl-0 = <&backlight_pins>;
+   pinctrl-names = "default";
+   default-brightness-level = <7>;
+   enable-gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
+   };
+
+   lvds-receiver {
+   compatible = "ti,ds90cf384a", "lvds-decoder";
+   vcc-supply = <&vcc_3v3_tft1>;
+
+   ports {
+   #address-cells = <1>;
+   #size-cells = <0>;
+
+   port@0 {
+   reg = <0>;
+   lvds_receiver_in: endpoint {
+   remote-endpoint = <&lvds0_out>;
+   };
+   };
+   port@1 {
+   reg = <1>;
+   lvds_receiver_out: endpoint {
+   remote-endpoint = <&panel_in>;
+   };
+   };
+   };
+   };
+
+   panel {
+   compatible = "edt,etm0700g0dh6";
+   backlight = <&lcd_backlight>;
+   power-supply = <&vcc_3v3_tft1>;
+
+   port {
+   panel_in: endpoint {
+   remote-endpoint = <&lvds_receiver_out>;
+   };
+   };
+   };
+
reg_1p5v: 1p5v {
compatible = "regulator-fixed";
regulator-name = "1P5V";
@@ -75,6 +121,17 @@
};
};
 
+   vcc_3v3_tft1: regulator-panel {
+   compatible = "regulator-fixed";
+
+   regulator-name = "vcc-3v3-tft1";
+   regulator-min-microvolt = <330>;
+   regulator-max-microvolt = <330>;
+   enable-active-high;
+   startup-delay-us = <500>;
+   gpio = <&gpio5 28 GPIO_ACTIVE_HIGH>;
+   };
+
vcc_sdhi2: regulator-vcc-sdhi2 {
compatible = "regulator-fixed";
 
@@ -129,12 +186,34 @@
VDDIO-supply = <®_3p3v>;
VDDD-supply = <®_1p5v>;
};
+
+   touch: touchpanel@38 {
+   compatible = "edt,edt-ft5406";
+   reg = <0x38>;
+   interrupt-parent = <&gpio0>;
+   interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
+   /* GP1_29 is also shared with audio codec reset pin */
+   reset-gpios = <&gpio1 29 GPIO_ACTIVE_LOW>;
+   vcc-supply = <&vcc_3v3_tft1>;
+   };
 };
 
 &cmt0 {
status = "okay";
 };
 
+&du {
+   status = "okay";
+};
+
+&gpio0 {
+   touch-interrupt {
+   gpio-hog;
+   gpios = <24 GPIO_ACTIVE_LOW>;
+   input;
+   };
+};
+
 &hsusb {
pinctrl-0 = <&usb0_pins>;
pinctrl-names = "default";
@@ -165,6 +244,11 @@
function = "avb";
};
 
+   backlight_pins: backlight {
+   groups = "tpu0_to2";
+   function = "tpu0";
+   };
+
i2c2_pins: i2c2 {
groups = "i2c2_b";
function = "i2c2

Re: [PATCH 1/9] dt-bindings: display: renesas, du: Document r8a774e1 bindings

2020-08-17 Thread Lad, Prabhakar
Hi Geert,

Thank you for the review.

On Thu, Aug 13, 2020 at 10:05 AM Geert Uytterhoeven
 wrote:
>
> Hi Prabhakar, Laurent, Kieran,
>
> On Wed, Aug 12, 2020 at 4:02 PM Lad Prabhakar
>  wrote:
> > From: Marian-Cristian Rotariu 
> >
> > Document the RZ/G2H (a.k.a. r8a774e1) SoC in the R-Car DU bindings.
> >
> > Signed-off-by: Marian-Cristian Rotariu 
> > 
> > Signed-off-by: Lad Prabhakar 
> > ---
> >  Documentation/devicetree/bindings/display/renesas,du.txt | 2 ++
> >  1 file changed, 2 insertions(+)
> >
> > diff --git a/Documentation/devicetree/bindings/display/renesas,du.txt 
> > b/Documentation/devicetree/bindings/display/renesas,du.txt
> > index 51cd4d162770..67cded5ad827 100644
> > --- a/Documentation/devicetree/bindings/display/renesas,du.txt
> > +++ b/Documentation/devicetree/bindings/display/renesas,du.txt
> > @@ -10,6 +10,7 @@ Required Properties:
> >  - "renesas,du-r8a774a1" for R8A774A1 (RZ/G2M) compatible DU
> >  - "renesas,du-r8a774b1" for R8A774B1 (RZ/G2N) compatible DU
> >  - "renesas,du-r8a774c0" for R8A774C0 (RZ/G2E) compatible DU
> > +- "renesas,du-r8a774e1" for R8A774E1 (RZ/G2H) compatible DU
> >  - "renesas,du-r8a7779" for R8A7779 (R-Car H1) compatible DU
> >  - "renesas,du-r8a7790" for R8A7790 (R-Car H2) compatible DU
> >  - "renesas,du-r8a7791" for R8A7791 (R-Car M2-W) compatible DU
> > @@ -75,6 +76,7 @@ corresponding to each DU output.
> >   R8A774A1 (RZ/G2M)  DPAD 0 HDMI 0 LVDS 0 -
> >   R8A774B1 (RZ/G2N)  DPAD 0 HDMI 0 LVDS 0 -
> >   R8A774C0 (RZ/G2E)  DPAD 0 LVDS 0 LVDS 1 -
> > + R8A774E1 (RZ/G2H)  DPAD 0 HDMI 0 LVDS 0 -
>
> As LVDS 0 is the fourth channel (DU3), should it be listed under port 3
> instead of port 2?
>
> I know we did it the same for R-Car M3-N and RZ/G2N.
> But my main worry is adding support for R-Car H3-N later.
>
I do agree too, with the below diff I tested the LVDS output on RZ/G2N
Rev2 board and things work fine. But only thing it doesn't explain is
why does LVDS work on DU2 for G2[H/N] boards :D

Geert, Laurent, Kieran If you agree with the below changes I shall
post a proper patch fixing it for RZ/G2[HN]

diff --git a/arch/arm64/boot/dts/renesas/r8a774b1.dtsi
b/arch/arm64/boot/dts/renesas/r8a774b1.dtsi
index d661724fc28a..0b087d287202 100644
--- a/arch/arm64/boot/dts/renesas/r8a774b1.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a774b1.dtsi
@@ -2540,8 +2540,8 @@
remote-endpoint =
<&dw_hdmi0_in>;
};
};
-   port@2 {
-   reg = <2>;
+   port@3 {
+   reg = <3>;
du_out_lvds0: endpoint {
remote-endpoint = <&lvds0_in>;
};
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
index 3e67cf70f040..419d81c7763e 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
@@ -153,7 +153,7 @@ static const struct rcar_du_device_info
rcar_du_r8a774b1_info = {
},
[RCAR_DU_OUTPUT_LVDS0] = {
.possible_crtcs = BIT(0),
-   .port = 2,
+   .port = 3,
},
},
.num_lvds = 1,

Cheers,
Prabhakar


> >   R8A7779 (R-Car H1) DPAD 0 DPAD 1 -  -
> >   R8A7790 (R-Car H2) DPAD 0 LVDS 0 LVDS 1 -
> >   R8A7791 (R-Car M2-W)   DPAD 0 LVDS 0 -  -
>
> Apart from that:
> Reviewed-by: Geert Uytterhoeven 
>
> {oetje,eeting}s,
>
> Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- 
> ge...@linux-m68k.org
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like 
> that.
> -- Linus Torvalds
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 1/9] dt-bindings: display: renesas, du: Document r8a774e1 bindings

2020-08-17 Thread Lad, Prabhakar
Hi Laurent,

On Thu, Aug 13, 2020 at 11:59 AM Laurent Pinchart
 wrote:
>
> Hello,
>
> On Thu, Aug 13, 2020 at 11:38:03AM +0100, Lad, Prabhakar wrote:
> > On Thu, Aug 13, 2020 at 10:05 AM Geert Uytterhoeven wrote:
> > > On Wed, Aug 12, 2020 at 4:02 PM Lad Prabhakar wrote:
> > > > From: Marian-Cristian Rotariu 
> > > > 
> > > >
> > > > Document the RZ/G2H (a.k.a. r8a774e1) SoC in the R-Car DU bindings.
> > > >
> > > > Signed-off-by: Marian-Cristian Rotariu 
> > > > 
> > > > Signed-off-by: Lad Prabhakar 
> > > > ---
> > > >  Documentation/devicetree/bindings/display/renesas,du.txt | 2 ++
> > > >  1 file changed, 2 insertions(+)
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/display/renesas,du.txt 
> > > > b/Documentation/devicetree/bindings/display/renesas,du.txt
> > > > index 51cd4d162770..67cded5ad827 100644
> > > > --- a/Documentation/devicetree/bindings/display/renesas,du.txt
> > > > +++ b/Documentation/devicetree/bindings/display/renesas,du.txt
> > > > @@ -10,6 +10,7 @@ Required Properties:
> > > >  - "renesas,du-r8a774a1" for R8A774A1 (RZ/G2M) compatible DU
> > > >  - "renesas,du-r8a774b1" for R8A774B1 (RZ/G2N) compatible DU
> > > >  - "renesas,du-r8a774c0" for R8A774C0 (RZ/G2E) compatible DU
> > > > +- "renesas,du-r8a774e1" for R8A774E1 (RZ/G2H) compatible DU
> > > >  - "renesas,du-r8a7779" for R8A7779 (R-Car H1) compatible DU
> > > >  - "renesas,du-r8a7790" for R8A7790 (R-Car H2) compatible DU
> > > >  - "renesas,du-r8a7791" for R8A7791 (R-Car M2-W) compatible DU
> > > > @@ -75,6 +76,7 @@ corresponding to each DU output.
> > > >   R8A774A1 (RZ/G2M)  DPAD 0 HDMI 0 LVDS 0 -
> > > >   R8A774B1 (RZ/G2N)  DPAD 0 HDMI 0 LVDS 0 -
> > > >   R8A774C0 (RZ/G2E)  DPAD 0 LVDS 0 LVDS 1 -
> > > > + R8A774E1 (RZ/G2H)  DPAD 0 HDMI 0 LVDS 0 -
> > >
> > > As LVDS 0 is the fourth channel (DU3), should it be listed under port 3
> > > instead of port 2?
> > >
> > > I know we did it the same for R-Car M3-N and RZ/G2N.
> > > But my main worry is adding support for R-Car H3-N later.
>
> Why should we do so ? The port number here isn't tied to the DU channel
> number. It only identifies the output port. Many DUs can route DU
> channel outputs to different output ports.
>
The binding document (renesas,du.txt) does state that "The following
table lists for each supported model the port number corresponding to
each DU output.", hence the confusion.

Cheers,
Prabhakar

> > I do agree too, with the below diff I tested the LVDS output on RZ/G2N
> > Rev2 board and things work fine. But only thing it doesn't explain is
> > why does LVDS work on DU2 for G2[H/N] boards :D
> >
> > Geert, Laurent, Kieran If you agree with the below changes I shall
> > post a proper patch fixing it for RZ/G2[HN]
> >
> > diff --git a/arch/arm64/boot/dts/renesas/r8a774b1.dtsi
> > b/arch/arm64/boot/dts/renesas/r8a774b1.dtsi
> > index d661724fc28a..0b087d287202 100644
> > --- a/arch/arm64/boot/dts/renesas/r8a774b1.dtsi
> > +++ b/arch/arm64/boot/dts/renesas/r8a774b1.dtsi
> > @@ -2540,8 +2540,8 @@
> > remote-endpoint =
> > <&dw_hdmi0_in>;
> > };
> > };
> > -   port@2 {
> > -   reg = <2>;
> > +   port@3 {
> > +   reg = <3>;
> > du_out_lvds0: endpoint {
> > remote-endpoint = 
> > <&lvds0_in>;
> > };
> > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> > b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> > index 3e67cf70f040..419d81c7763e 100644
> > --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> > +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> > @@ -153,7 +153,7 @@ static const struct rcar_du_device_info
> > rcar_du_r8a774b1_info = {
> > },
> > [RCAR_DU_OUTPUT_LVDS0] = {
> > .possible_crtcs = BIT(0),
> > -   .port = 2,
> > +   .port = 3,
> > },
> > },
> > .num_lvds = 1,
> >
> > > >   R8A7779 (R-Car H1) DPAD 0 DPAD 1 -  -
> > > >   R8A7790 (R-Car H2) DPAD 0 LVDS 0 LVDS 1 -
> > > >   R8A7791 (R-Car M2-W)   DPAD 0 LVDS 0 -  -
> > >
> > > Apart from that:
> > > Reviewed-by: Geert Uytterhoeven 
>
> --
> Regards,
>
> Laurent Pinchart
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 1/9] dt-bindings: display: renesas, du: Document r8a774e1 bindings

2020-08-17 Thread Lad, Prabhakar
Hi Laurent,

On Thu, Aug 13, 2020 at 12:11 PM Laurent Pinchart
 wrote:
>
> Hi Prabhakar,
>
> On Thu, Aug 13, 2020 at 12:08:58PM +0100, Lad, Prabhakar wrote:
> > On Thu, Aug 13, 2020 at 11:59 AM Laurent Pinchart wrote:
> > > On Thu, Aug 13, 2020 at 11:38:03AM +0100, Lad, Prabhakar wrote:
> > >> On Thu, Aug 13, 2020 at 10:05 AM Geert Uytterhoeven wrote:
> > >>> On Wed, Aug 12, 2020 at 4:02 PM Lad Prabhakar wrote:
> > >>>> From: Marian-Cristian Rotariu 
> > >>>> 
> > >>>>
> > >>>> Document the RZ/G2H (a.k.a. r8a774e1) SoC in the R-Car DU bindings.
> > >>>>
> > >>>> Signed-off-by: Marian-Cristian Rotariu 
> > >>>> 
> > >>>> Signed-off-by: Lad Prabhakar 
> > >>>> ---
> > >>>>  Documentation/devicetree/bindings/display/renesas,du.txt | 2 ++
> > >>>>  1 file changed, 2 insertions(+)
> > >>>>
> > >>>> diff --git a/Documentation/devicetree/bindings/display/renesas,du.txt 
> > >>>> b/Documentation/devicetree/bindings/display/renesas,du.txt
> > >>>> index 51cd4d162770..67cded5ad827 100644
> > >>>> --- a/Documentation/devicetree/bindings/display/renesas,du.txt
> > >>>> +++ b/Documentation/devicetree/bindings/display/renesas,du.txt
> > >>>> @@ -10,6 +10,7 @@ Required Properties:
> > >>>>  - "renesas,du-r8a774a1" for R8A774A1 (RZ/G2M) compatible DU
> > >>>>  - "renesas,du-r8a774b1" for R8A774B1 (RZ/G2N) compatible DU
> > >>>>  - "renesas,du-r8a774c0" for R8A774C0 (RZ/G2E) compatible DU
> > >>>> +- "renesas,du-r8a774e1" for R8A774E1 (RZ/G2H) compatible DU
> > >>>>  - "renesas,du-r8a7779" for R8A7779 (R-Car H1) compatible DU
> > >>>>  - "renesas,du-r8a7790" for R8A7790 (R-Car H2) compatible DU
> > >>>>  - "renesas,du-r8a7791" for R8A7791 (R-Car M2-W) compatible DU
> > >>>> @@ -75,6 +76,7 @@ corresponding to each DU output.
> > >>>>   R8A774A1 (RZ/G2M)  DPAD 0 HDMI 0 LVDS 0 -
> > >>>>   R8A774B1 (RZ/G2N)  DPAD 0 HDMI 0 LVDS 0 -
> > >>>>   R8A774C0 (RZ/G2E)  DPAD 0 LVDS 0 LVDS 1 -
> > >>>> + R8A774E1 (RZ/G2H)  DPAD 0 HDMI 0 LVDS 0 -
> > >>>
> > >>> As LVDS 0 is the fourth channel (DU3), should it be listed under port 3
> > >>> instead of port 2?
> > >>>
> > >>> I know we did it the same for R-Car M3-N and RZ/G2N.
> > >>> But my main worry is adding support for R-Car H3-N later.
> > >
> > > Why should we do so ? The port number here isn't tied to the DU channel
> > > number. It only identifies the output port. Many DUs can route DU
> > > channel outputs to different output ports.
> > >
> > The binding document (renesas,du.txt) does state that "The following
> > table lists for each supported model the port number corresponding to
> > each DU output.", hence the confusion.
>
> It can be a bit confusing indeed. "DU output" here refers to the output
> of the whoel DU, made of individual DU channels. Each DU channel is
> listed as a DU device in the datasheet, and collectively they are the DU
> device that Linux handles.
>
Thanks for the clarification, that clears up the confusion.

Cheers,
Prabhakar
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 7/7] ARM: dts: r8a7742-iwg21d-q7: Add LCD support

2020-08-17 Thread Lad, Prabhakar
Hi Laurent,

Thank you for the review.

On Tue, Aug 11, 2020 at 12:26 PM Laurent Pinchart
 wrote:
>
> Hi Prabhakar,
>
> Thank you for the patch.
>
> On Fri, Aug 07, 2020 at 06:49:54PM +0100, Lad Prabhakar wrote:
> > The iwg21d comes with a 7" capacitive touch screen, therefore
> > add support for it.
> >
> > Signed-off-by: Lad Prabhakar 
> > Reviewed-by: Marian-Cristian Rotariu 
> > 
> > ---
> >  arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 84 +
> >  1 file changed, 84 insertions(+)
> >
> > diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts 
> > b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
> > index b3461a61a4bf..cf59fd61e422 100644
> > --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
> > +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
> > @@ -30,6 +30,7 @@
> >
> >  /dts-v1/;
> >  #include "r8a7742-iwg21m.dtsi"
> > +#include 
> >
> >  / {
> >   model = "iWave Systems RainboW-G21D-Qseven board based on RZ/G1H";
> > @@ -52,6 +53,50 @@
> >   clock-frequency = <2600>;
> >   };
> >
> > + lcd_backlight: backlight {
> > + compatible = "pwm-backlight";
> > + pwms = <&tpu 2 500 0>;
> > + brightness-levels = <0 4 8 16 32 64 128 255>;
> > + pinctrl-0 = <&backlight_pins>;
> > + pinctrl-names = "default";
> > + default-brightness-level = <7>;
> > + enable-gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
>
> It's actually a power supply, not an enable GPIO, but it doesn't matter
> much, I don't think there's a need to declare a regulator just for the
> sake of it.
>
Agreed will leave it as is.

> > + };
> > +
> > + lvds-receiver {
> > + compatible = "ti,ds90cf384a", "lvds-decoder";
> > + powerdown-gpios = <&gpio5 28 GPIO_ACTIVE_LOW>;
>
> This should be handled as a shared power supply, as it's also needed for
> the touch screen. Biju has sent patches for the iwg20d that fixes a
> probe issue due to that problem, I think you can just copy the fix.
>
Done.

> > +
> > + ports {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + port@0 {
> > + reg = <0>;
> > + lvds_receiver_in: endpoint {
> > + remote-endpoint = <&lvds0_out>;
> > + };
> > + };
> > + port@1 {
> > + reg = <1>;
> > + lvds_receiver_out: endpoint {
> > + remote-endpoint = <&panel_in>;
> > + };
> > + };
> > + };
> > + };
> > +
> > + panel {
> > + compatible = "edt,etm0700g0dh6";
> > + backlight = <&lcd_backlight>;
> > +
> > + port {
> > + panel_in: endpoint {
> > + remote-endpoint = <&lvds_receiver_out>;
> > + };
> > + };
> > + };
> > +
> >   reg_1p5v: 1p5v {
> >   compatible = "regulator-fixed";
> >   regulator-name = "1P5V";
> > @@ -129,12 +174,31 @@
> >   VDDIO-supply = <®_3p3v>;
> >   VDDD-supply = <®_1p5v>;
> >   };
> > +
> > + touch: touchpanel@38 {
> > + compatible = "edt,edt-ft5406";
> > + reg = <0x38>;
> > + interrupt-parent = <&gpio0>;
> > + interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
>
> Should the reset GPIO also be wired ? It seems to be shared with the
> audio codec though, which is annoying.
>
Done.

> > + };
> >  };
> >
> >  &cmt0 {
> >   status = "okay";
> >  };
> >
> > +&du {
> > + status = "okay";
> > +};
> > +
> > +&gpio0 {
> > + touch-interrupt {
> > + gpio-hog;
> > + gpios = <24 GPIO_ACTIVE_LOW>;
> > + input;
> > + };
>
> Is this needed, or does requesting the interrupt in the touch screen
> driver configured the GPIO to an input automatically ?
>
Yes this is needed, the touch driver does not configure the pin as
GPIO input without this touch doesn't work.

Cheers,
Prabhakar
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 9/9] arm64: dts: renesas: r8a774e1-hihope-rzg2h: Setup DU clocks

2020-08-13 Thread Lad Prabhakar
Setup up the required clocks for the DU to be functional.

Signed-off-by: Lad Prabhakar 
---
 arch/arm64/boot/dts/renesas/r8a774e1-hihope-rzg2h.dts | 11 +++
 1 file changed, 11 insertions(+)

diff --git a/arch/arm64/boot/dts/renesas/r8a774e1-hihope-rzg2h.dts 
b/arch/arm64/boot/dts/renesas/r8a774e1-hihope-rzg2h.dts
index cdbe527e9340..12f9242e263b 100644
--- a/arch/arm64/boot/dts/renesas/r8a774e1-hihope-rzg2h.dts
+++ b/arch/arm64/boot/dts/renesas/r8a774e1-hihope-rzg2h.dts
@@ -24,3 +24,14 @@
reg = <0x5 0x 0x0 0x8000>;
};
 };
+
+&du {
+   clocks = <&cpg CPG_MOD 724>,
+<&cpg CPG_MOD 723>,
+<&cpg CPG_MOD 721>,
+<&versaclock5 1>,
+<&x302_clk>,
+<&versaclock5 2>;
+   clock-names = "du.0", "du.1", "du.3",
+ "dclkin.0", "dclkin.1", "dclkin.3";
+};
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 0/9] r8a774e1 add support for DU, HDMI and LVDS

2020-08-13 Thread Lad Prabhakar
Hi All,

This patch series adds support for DU, HDMI and LVDS to RZ/G2H SoC.

Cheers,
Prabhakar

Lad Prabhakar (1):
  arm64: dts: renesas: r8a774e1-hihope-rzg2h: Setup DU clocks

Marian-Cristian Rotariu (8):
  dt-bindings: display: renesas,du: Document r8a774e1 bindings
  drm: rcar-du: Add support for R8A774E1 SoC
  arm64: dts: renesas: r8a774e1: Populate DU device node
  dt-bindings: display: renesas,lvds: Document r8a774e1 bindings
  dt-bindings: display: renesas,dw-hdmi: Add r8a774e1 support
  arm64: dts: renesas: r8a774e1: Populate HDMI encoder node
  drm: rcar-du: lvds: Add support for R8A774E1 SoC
  arm64: dts: renesas: r8a774e1: Add LVDS device node

 .../display/bridge/renesas,dw-hdmi.txt|  1 +
 .../bindings/display/bridge/renesas,lvds.txt  |  1 +
 .../bindings/display/renesas,du.txt   |  2 +
 .../dts/renesas/r8a774e1-hihope-rzg2h.dts | 11 
 arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 61 ++-
 drivers/gpu/drm/rcar-du/rcar_du_drv.c | 30 +
 drivers/gpu/drm/rcar-du/rcar_lvds.c   |  1 +
 7 files changed, 104 insertions(+), 3 deletions(-)

-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 0/9] r8a774e1 add support for DU, HDMI and LVDS

2020-08-13 Thread Lad, Prabhakar
Hi Laurent,

On Wed, Aug 12, 2020 at 5:39 PM Laurent Pinchart
 wrote:
>
> Hi Prabhakar,
>
> Thank you for the patches.
>
> On Wed, Aug 12, 2020 at 03:02:08PM +0100, Lad Prabhakar wrote:
> > Hi All,
> >
> > This patch series adds support for DU, HDMI and LVDS to RZ/G2H SoC.
>
> I have added patches 1/9, 2/9, 4/9, 5/9 and 7/9 to my tree. I expect
> Geert to handle the rest.
>
Thank you for the review and taking care of LVDS documentation binding patch.

Cheers,
Prabhakar

> > Lad Prabhakar (1):
> >   arm64: dts: renesas: r8a774e1-hihope-rzg2h: Setup DU clocks
> >
> > Marian-Cristian Rotariu (8):
> >   dt-bindings: display: renesas,du: Document r8a774e1 bindings
> >   drm: rcar-du: Add support for R8A774E1 SoC
> >   arm64: dts: renesas: r8a774e1: Populate DU device node
> >   dt-bindings: display: renesas,lvds: Document r8a774e1 bindings
> >   dt-bindings: display: renesas,dw-hdmi: Add r8a774e1 support
> >   arm64: dts: renesas: r8a774e1: Populate HDMI encoder node
> >   drm: rcar-du: lvds: Add support for R8A774E1 SoC
> >   arm64: dts: renesas: r8a774e1: Add LVDS device node
> >
> >  .../display/bridge/renesas,dw-hdmi.txt|  1 +
> >  .../bindings/display/bridge/renesas,lvds.txt  |  1 +
> >  .../bindings/display/renesas,du.txt   |  2 +
> >  .../dts/renesas/r8a774e1-hihope-rzg2h.dts | 11 
> >  arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 61 ++-
> >  drivers/gpu/drm/rcar-du/rcar_du_drv.c | 30 +
> >  drivers/gpu/drm/rcar-du/rcar_lvds.c   |  1 +
> >  7 files changed, 104 insertions(+), 3 deletions(-)
>
> --
> Regards,
>
> Laurent Pinchart
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 5/9] dt-bindings: display: renesas, dw-hdmi: Add r8a774e1 support

2020-08-13 Thread Lad Prabhakar
From: Marian-Cristian Rotariu 

Document RZ/G2H (R8A774E1) SoC bindings.

Signed-off-by: Marian-Cristian Rotariu 

Signed-off-by: Lad Prabhakar 
---
 .../devicetree/bindings/display/bridge/renesas,dw-hdmi.txt   | 1 +
 1 file changed, 1 insertion(+)

diff --git 
a/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt 
b/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt
index 819f3e31013c..f275997ab947 100644
--- a/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt
+++ b/Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.txt
@@ -14,6 +14,7 @@ Required properties:
 - compatible : Shall contain one or more of
   - "renesas,r8a774a1-hdmi" for R8A774A1 (RZ/G2M) compatible HDMI TX
   - "renesas,r8a774b1-hdmi" for R8A774B1 (RZ/G2N) compatible HDMI TX
+  - "renesas,r8a774e1-hdmi" for R8A774E1 (RZ/G2H) compatible HDMI TX
   - "renesas,r8a7795-hdmi" for R8A7795 (R-Car H3) compatible HDMI TX
   - "renesas,r8a7796-hdmi" for R8A7796 (R-Car M3-W) compatible HDMI TX
   - "renesas,r8a77965-hdmi" for R8A77965 (R-Car M3-N) compatible HDMI TX
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 7/9] drm: rcar-du: lvds: Add support for R8A774E1 SoC

2020-08-13 Thread Lad Prabhakar
From: Marian-Cristian Rotariu 

The LVDS encoder on RZ/G2H (R8A774E1) SoC is identical to R-Car Gen3 so
just reuse the rcar_lvds_gen3_info structure to hookup R8A774E1 to LVDS
encoder driver.

Signed-off-by: Marian-Cristian Rotariu 

Signed-off-by: Lad Prabhakar 
---
 drivers/gpu/drm/rcar-du/rcar_lvds.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c 
b/drivers/gpu/drm/rcar-du/rcar_lvds.c
index ab0d49618cf9..424ca2b7d9ac 100644
--- a/drivers/gpu/drm/rcar-du/rcar_lvds.c
+++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c
@@ -987,6 +987,7 @@ static const struct of_device_id rcar_lvds_of_table[] = {
{ .compatible = "renesas,r8a774a1-lvds", .data = &rcar_lvds_gen3_info },
{ .compatible = "renesas,r8a774b1-lvds", .data = &rcar_lvds_gen3_info },
{ .compatible = "renesas,r8a774c0-lvds", .data = 
&rcar_lvds_r8a77990_info },
+   { .compatible = "renesas,r8a774e1-lvds", .data = &rcar_lvds_gen3_info },
{ .compatible = "renesas,r8a7790-lvds", .data = &rcar_lvds_gen2_info },
{ .compatible = "renesas,r8a7791-lvds", .data = &rcar_lvds_gen2_info },
{ .compatible = "renesas,r8a7793-lvds", .data = &rcar_lvds_gen2_info },
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 4/9] dt-bindings: display: renesas, lvds: Document r8a774e1 bindings

2020-08-13 Thread Lad Prabhakar
From: Marian-Cristian Rotariu 

Document the RZ/G2H (R8A774E1) LVDS bindings.

Signed-off-by: Marian-Cristian Rotariu 

Signed-off-by: Lad Prabhakar 
---
 .../devicetree/bindings/display/bridge/renesas,lvds.txt  | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt 
b/Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt
index c62ce2494ed9..42743d0d24b3 100644
--- a/Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt
+++ b/Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt
@@ -12,6 +12,7 @@ Required properties:
   - "renesas,r8a774a1-lvds" for R8A774A1 (RZ/G2M) compatible LVDS encoders
   - "renesas,r8a774b1-lvds" for R8A774B1 (RZ/G2N) compatible LVDS encoders
   - "renesas,r8a774c0-lvds" for R8A774C0 (RZ/G2E) compatible LVDS encoders
+  - "renesas,r8a774e1-lvds" for R8A774E1 (RZ/G2H) compatible LVDS encoders
   - "renesas,r8a7790-lvds" for R8A7790 (R-Car H2) compatible LVDS encoders
   - "renesas,r8a7791-lvds" for R8A7791 (R-Car M2-W) compatible LVDS encoders
   - "renesas,r8a7793-lvds" for R8A7793 (R-Car M2-N) compatible LVDS encoders
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 2/9] drm: rcar-du: Add support for R8A774E1 SoC

2020-08-13 Thread Lad Prabhakar
From: Marian-Cristian Rotariu 

Hookup RZ/G2H (R8A774E1) to DU driver. R8A774E1 has one RGB output,
one LVDS output and one HDMI output.

Signed-off-by: Marian-Cristian Rotariu 

Signed-off-by: Lad Prabhakar 
---
 drivers/gpu/drm/rcar-du/rcar_du_drv.c | 30 +++
 1 file changed, 30 insertions(+)

diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c 
b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
index 3e67cf70f040..398c180b8731 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
@@ -186,6 +186,35 @@ static const struct rcar_du_device_info 
rcar_du_r8a774c0_info = {
.lvds_clk_mask =  BIT(1) | BIT(0),
 };
 
+static const struct rcar_du_device_info rcar_du_r8a774e1_info = {
+   .gen = 3,
+   .features = RCAR_DU_FEATURE_CRTC_IRQ_CLOCK
+ | RCAR_DU_FEATURE_VSP1_SOURCE
+ | RCAR_DU_FEATURE_INTERLACED
+ | RCAR_DU_FEATURE_TVM_SYNC,
+   .channels_mask = BIT(3) | BIT(1) | BIT(0),
+   .routes = {
+   /*
+* R8A774E1 has one RGB output, one LVDS output and one HDMI
+* output.
+*/
+   [RCAR_DU_OUTPUT_DPAD0] = {
+   .possible_crtcs = BIT(2),
+   .port = 0,
+   },
+   [RCAR_DU_OUTPUT_HDMI0] = {
+   .possible_crtcs = BIT(1),
+   .port = 1,
+   },
+   [RCAR_DU_OUTPUT_LVDS0] = {
+   .possible_crtcs = BIT(0),
+   .port = 2,
+   },
+   },
+   .num_lvds = 1,
+   .dpll_mask =  BIT(1),
+};
+
 static const struct rcar_du_device_info rcar_du_r8a7779_info = {
.gen = 1,
.features = RCAR_DU_FEATURE_INTERLACED
@@ -450,6 +479,7 @@ static const struct of_device_id rcar_du_of_table[] = {
{ .compatible = "renesas,du-r8a774a1", .data = &rcar_du_r8a774a1_info },
{ .compatible = "renesas,du-r8a774b1", .data = &rcar_du_r8a774b1_info },
{ .compatible = "renesas,du-r8a774c0", .data = &rcar_du_r8a774c0_info },
+   { .compatible = "renesas,du-r8a774e1", .data = &rcar_du_r8a774e1_info },
{ .compatible = "renesas,du-r8a7779", .data = &rcar_du_r8a7779_info },
{ .compatible = "renesas,du-r8a7790", .data = &rcar_du_r8a7790_info },
{ .compatible = "renesas,du-r8a7791", .data = &rcar_du_r8a7791_info },
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 8/9] arm64: dts: renesas: r8a774e1: Add LVDS device node

2020-08-13 Thread Lad Prabhakar
From: Marian-Cristian Rotariu 

Add the LVDS device node to R8A774E1 to SoC dtsi and connect it with
the DU node.

Signed-off-by: Marian-Cristian Rotariu 

Signed-off-by: Lad Prabhakar 
---
 arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 27 +++
 1 file changed, 27 insertions(+)

diff --git a/arch/arm64/boot/dts/renesas/r8a774e1.dtsi 
b/arch/arm64/boot/dts/renesas/r8a774e1.dtsi
index 79efcd73cc46..f783ad8aeafa 100644
--- a/arch/arm64/boot/dts/renesas/r8a774e1.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a774e1.dtsi
@@ -2666,6 +2666,33 @@
port@2 {
reg = <2>;
du_out_lvds0: endpoint {
+   remote-endpoint = <&lvds0_in>;
+   };
+   };
+   };
+   };
+
+   lvds0: lvds@feb9 {
+   compatible = "renesas,r8a774e1-lvds";
+   reg = <0 0xfeb9 0 0x14>;
+   clocks = <&cpg CPG_MOD 727>;
+   power-domains = <&sysc R8A774E1_PD_ALWAYS_ON>;
+   resets = <&cpg 727>;
+   status = "disabled";
+
+   ports {
+   #address-cells = <1>;
+   #size-cells = <0>;
+
+   port@0 {
+   reg = <0>;
+   lvds0_in: endpoint {
+   remote-endpoint = 
<&du_out_lvds0>;
+   };
+   };
+   port@1 {
+   reg = <1>;
+   lvds0_out: endpoint {
};
};
};
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 3/9] arm64: dts: renesas: r8a774e1: Populate DU device node

2020-08-13 Thread Lad Prabhakar
From: Marian-Cristian Rotariu 

Populate the DU device node properties in R8A774E1 SoC dtsi.

Signed-off-by: Marian-Cristian Rotariu 

Signed-off-by: Lad Prabhakar 
---
 arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 19 ++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/renesas/r8a774e1.dtsi 
b/arch/arm64/boot/dts/renesas/r8a774e1.dtsi
index abaa6d7f6b31..4b57c1ea762c 100644
--- a/arch/arm64/boot/dts/renesas/r8a774e1.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a774e1.dtsi
@@ -2623,22 +2623,39 @@
};
 
du: display@feb0 {
+   compatible = "renesas,du-r8a774e1";
reg = <0 0xfeb0 0 0x8>;
+   interrupts = ,
+,
+;
+   clocks = <&cpg CPG_MOD 724>,
+<&cpg CPG_MOD 723>,
+<&cpg CPG_MOD 721>;
+   clock-names = "du.0", "du.1", "du.3";
+   resets = <&cpg 724>, <&cpg 722>;
+   reset-names = "du.0", "du.3";
status = "disabled";
 
-   /* placeholder */
+   renesas,vsps = <&vspd0 0>, <&vspd1 0>, <&vspd0 1>;
+
ports {
#address-cells = <1>;
#size-cells = <0>;
 
port@0 {
reg = <0>;
+   du_out_rgb: endpoint {
+   };
};
port@1 {
reg = <1>;
+   du_out_hdmi0: endpoint {
+   };
};
port@2 {
reg = <2>;
+   du_out_lvds0: endpoint {
+   };
};
};
};
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 6/9] arm64: dts: renesas: r8a774e1: Populate HDMI encoder node

2020-08-13 Thread Lad Prabhakar
From: Marian-Cristian Rotariu 

Populate HDMI node properties in R8A774E1 SoC dtsi.

Signed-off-by: Marian-Cristian Rotariu 

Signed-off-by: Lad Prabhakar 
---
 arch/arm64/boot/dts/renesas/r8a774e1.dtsi | 15 +--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/renesas/r8a774e1.dtsi 
b/arch/arm64/boot/dts/renesas/r8a774e1.dtsi
index 4b57c1ea762c..79efcd73cc46 100644
--- a/arch/arm64/boot/dts/renesas/r8a774e1.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a774e1.dtsi
@@ -2601,22 +2601,32 @@
};
 
hdmi0: hdmi@fead {
+   compatible = "renesas,r8a774e1-hdmi",
+"renesas,rcar-gen3-hdmi";
reg = <0 0xfead 0 0x1>;
+   interrupts = ;
+   clocks = <&cpg CPG_MOD 729>,
+<&cpg CPG_CORE R8A774E1_CLK_HDMI>;
+   clock-names = "iahb", "isfr";
+   power-domains = <&sysc R8A774E1_PD_ALWAYS_ON>;
+   resets = <&cpg 729>;
status = "disabled";
 
-   /* placeholder */
-
ports {
#address-cells = <1>;
#size-cells = <0>;
 
port@0 {
reg = <0>;
+   dw_hdmi0_in: endpoint {
+   remote-endpoint = 
<&du_out_hdmi0>;
+   };
};
port@1 {
reg = <1>;
};
port@2 {
+   /* HDMI sound */
reg = <2>;
};
};
@@ -2650,6 +2660,7 @@
port@1 {
reg = <1>;
du_out_hdmi0: endpoint {
+   remote-endpoint = 
<&dw_hdmi0_in>;
};
};
port@2 {
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 1/9] dt-bindings: display: renesas, du: Document r8a774e1 bindings

2020-08-13 Thread Lad Prabhakar
From: Marian-Cristian Rotariu 

Document the RZ/G2H (a.k.a. r8a774e1) SoC in the R-Car DU bindings.

Signed-off-by: Marian-Cristian Rotariu 

Signed-off-by: Lad Prabhakar 
---
 Documentation/devicetree/bindings/display/renesas,du.txt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/renesas,du.txt 
b/Documentation/devicetree/bindings/display/renesas,du.txt
index 51cd4d162770..67cded5ad827 100644
--- a/Documentation/devicetree/bindings/display/renesas,du.txt
+++ b/Documentation/devicetree/bindings/display/renesas,du.txt
@@ -10,6 +10,7 @@ Required Properties:
 - "renesas,du-r8a774a1" for R8A774A1 (RZ/G2M) compatible DU
 - "renesas,du-r8a774b1" for R8A774B1 (RZ/G2N) compatible DU
 - "renesas,du-r8a774c0" for R8A774C0 (RZ/G2E) compatible DU
+- "renesas,du-r8a774e1" for R8A774E1 (RZ/G2H) compatible DU
 - "renesas,du-r8a7779" for R8A7779 (R-Car H1) compatible DU
 - "renesas,du-r8a7790" for R8A7790 (R-Car H2) compatible DU
 - "renesas,du-r8a7791" for R8A7791 (R-Car M2-W) compatible DU
@@ -75,6 +76,7 @@ corresponding to each DU output.
  R8A774A1 (RZ/G2M)  DPAD 0 HDMI 0 LVDS 0 -
  R8A774B1 (RZ/G2N)  DPAD 0 HDMI 0 LVDS 0 -
  R8A774C0 (RZ/G2E)  DPAD 0 LVDS 0 LVDS 1 -
+ R8A774E1 (RZ/G2H)  DPAD 0 HDMI 0 LVDS 0 -
  R8A7779 (R-Car H1) DPAD 0 DPAD 1 -  -
  R8A7790 (R-Car H2) DPAD 0 LVDS 0 LVDS 1 -
  R8A7791 (R-Car M2-W)   DPAD 0 LVDS 0 -  -
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 0/7] r8a7742: Enable DU and LVDS

2020-08-10 Thread Lad Prabhakar
Hi All,

This patch series adds support for DU and LVDS to r8a7742
SoC and enables LCD support on r8a7742-iwg21d-q7 board.

This patch series applies on top of [1].

[1] https://git.kernel.org/pub/scm/linux/kernel/git/geert/
renesas-devel.git/log/?h=renesas-arm-dt-for-v5.10

Cheers,
Prabhakar

Lad Prabhakar (7):
  dt-bindings: display: renesas,du: Document the r8a7742 bindings
  drm: rcar-du: Add r8a7742 support
  dt-bindings: display: renesas,lvds: Document r8a7742 bindings
  drm: rcar-du: lvds: Add r8a7742 support
  ARM: dts: r8a7742: Add DU support
  ARM: dts: r8a7742: Add LVDS support
  ARM: dts: r8a7742-iwg21d-q7: Add LCD support

 .../bindings/display/bridge/renesas,lvds.txt  |  1 +
 .../bindings/display/renesas,du.txt   |  2 +
 arch/arm/boot/dts/r8a7742-iwg21d-q7.dts   | 84 +
 arch/arm/boot/dts/r8a7742.dtsi| 89 +++
 drivers/gpu/drm/rcar-du/rcar_du_drv.c |  5 +-
 drivers/gpu/drm/rcar-du/rcar_lvds.c   |  1 +
 6 files changed, 180 insertions(+), 2 deletions(-)

-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 4/7] drm: rcar-du: lvds: Add r8a7742 support

2020-08-10 Thread Lad Prabhakar
The LVDS encoders on RZ/G1H SoC is identical to the R-Car Gen2 family. Add
support for RZ/G1H (R8A7742) SoC to the LVDS encoder driver.

Signed-off-by: Lad Prabhakar 
Reviewed-by: Marian-Cristian Rotariu 
---
 drivers/gpu/drm/rcar-du/rcar_lvds.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/rcar-du/rcar_lvds.c 
b/drivers/gpu/drm/rcar-du/rcar_lvds.c
index ab0d49618cf9..34b833cc05be 100644
--- a/drivers/gpu/drm/rcar-du/rcar_lvds.c
+++ b/drivers/gpu/drm/rcar-du/rcar_lvds.c
@@ -982,6 +982,7 @@ static const struct rcar_lvds_device_info 
rcar_lvds_r8a77995_info = {
 };
 
 static const struct of_device_id rcar_lvds_of_table[] = {
+   { .compatible = "renesas,r8a7742-lvds", .data = &rcar_lvds_gen2_info },
{ .compatible = "renesas,r8a7743-lvds", .data = &rcar_lvds_gen2_info },
{ .compatible = "renesas,r8a7744-lvds", .data = &rcar_lvds_gen2_info },
{ .compatible = "renesas,r8a774a1-lvds", .data = &rcar_lvds_gen3_info },
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 7/7] ARM: dts: r8a7742-iwg21d-q7: Add LCD support

2020-08-10 Thread Lad, Prabhakar
Hi Laurent,

Thank you for the review.


On Sat, Aug 8, 2020 at 10:23 PM Laurent Pinchart
 wrote:
>
> Hi Prabhakar,
>
> Thank you for the patch.
>
> On Fri, Aug 07, 2020 at 06:49:54PM +0100, Lad Prabhakar wrote:
> > The iwg21d comes with a 7" capacitive touch screen, therefore
> > add support for it.
>
> I can't review most of this properly as I don't have access to the
> schematics. Is there a way to get it ?
>
I'll check with Chris, how we could get the schematics for you.

> > Signed-off-by: Lad Prabhakar 
> > Reviewed-by: Marian-Cristian Rotariu 
> > 
> > ---
> >  arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 84 +
> >  1 file changed, 84 insertions(+)
> >
> > diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts 
> > b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
> > index b3461a61a4bf..cf59fd61e422 100644
> > --- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
> > +++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
> > @@ -30,6 +30,7 @@
> >
> >  /dts-v1/;
> >  #include "r8a7742-iwg21m.dtsi"
> > +#include 
> >
> >  / {
> >   model = "iWave Systems RainboW-G21D-Qseven board based on RZ/G1H";
> > @@ -52,6 +53,50 @@
> >   clock-frequency = <2600>;
> >   };
> >
> > + lcd_backlight: backlight {
> > + compatible = "pwm-backlight";
> > + pwms = <&tpu 2 500 0>;
> > + brightness-levels = <0 4 8 16 32 64 128 255>;
> > + pinctrl-0 = <&backlight_pins>;
> > + pinctrl-names = "default";
> > + default-brightness-level = <7>;
> > + enable-gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
> > + };
> > +
> > + lvds-receiver {
> > + compatible = "ti,ds90cf384a", "lvds-decoder";
> > + powerdown-gpios = <&gpio5 28 GPIO_ACTIVE_LOW>;
> > +
> > + ports {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + port@0 {
> > + reg = <0>;
> > + lvds_receiver_in: endpoint {
> > + remote-endpoint = <&lvds0_out>;
> > + };
> > + };
> > + port@1 {
> > + reg = <1>;
> > + lvds_receiver_out: endpoint {
> > + remote-endpoint = <&panel_in>;
> > + };
> > + };
> > + };
> > + };
> > +
> > + panel {
> > + compatible = "edt,etm0700g0dh6";
> > + backlight = <&lcd_backlight>;
> > +
> > + port {
> > + panel_in: endpoint {
> > + remote-endpoint = <&lvds_receiver_out>;
> > + };
> > + };
> > + };
> > +
> >   reg_1p5v: 1p5v {
> >   compatible = "regulator-fixed";
> >   regulator-name = "1P5V";
> > @@ -129,12 +174,31 @@
> >   VDDIO-supply = <®_3p3v>;
> >   VDDD-supply = <®_1p5v>;
> >   };
> > +
> > + touch: touchpanel@38 {
> > + compatible = "edt,edt-ft5406";
> > + reg = <0x38>;
> > + interrupt-parent = <&gpio0>;
> > + interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
> > + };
> >  };
> >
> >  &cmt0 {
> >   status = "okay";
> >  };
> >
> > +&du {
> > + status = "okay";
> > +};
> > +
> > +&gpio0 {
> > + touch-interrupt {
> > + gpio-hog;
> > + gpios = <24 GPIO_ACTIVE_LOW>;
> > + input;
>
> Is this required, won't requesting the interrupt be enough to configure
> the pin properly ?
>
Agreed.

Cheers,
Prabhakar

> > + };
> > +};
> > +
> >  &hsusb {
> >   pinctrl-0 = <&usb0_pins>;
> >   pinctrl-names = "default";
> > @@ -165,6 +229,11 @@
> >   function = "avb";
> >   };
> >
> > + backlight_pins: backlight {
> > + groups = "tpu0_to2";
> > + function = "tpu0";
> > + };
> > +
> >   i2c2_pins: i2c2 {
> >   groups = "i2c2_b";
> >   function = "i2c2";
> > @@ -208,6 +277,17 @@
> >   };
> >  };
> >
> > +&lvds0 {
> > + status = "okay";
> > + ports {
> > + port@1 {
> > + lvds0_out: endpoint {
> > + remote-endpoint = <&lvds_receiver_in>;
> > + };
> > + };
> > + };
> > +};
> > +
> >  &rcar_sound {
> >   pinctrl-0 = <&sound_pins>;
> >   pinctrl-names = "default";
> > @@ -261,6 +341,10 @@
> >   shared-pin;
> >  };
> >
> > +&tpu {
> > + status = "okay";
> > +};
> > +
> >  &usbphy {
> >   status = "okay";
> >  };
>
> --
> Regards,
>
> Laurent Pinchart
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 0/7] r8a7742: Enable DU and LVDS

2020-08-10 Thread Lad, Prabhakar
Hi Laurent,

Thank you for the quick review.

On Sat, Aug 8, 2020 at 9:55 PM Laurent Pinchart
 wrote:
>
> Hi Prabhakar,
>
> Thank you for the patches.
>
> On Fri, Aug 07, 2020 at 06:49:47PM +0100, Lad Prabhakar wrote:
> > Hi All,
> >
> > This patch series adds support for DU and LVDS to r8a7742
> > SoC and enables LCD support on r8a7742-iwg21d-q7 board.
> >
> > This patch series applies on top of [1].
> >
> > [1] https://git.kernel.org/pub/scm/linux/kernel/git/geert/
> > renesas-devel.git/log/?h=renesas-arm-dt-for-v5.10
>
> The driver changes will need to go through the DRM/KMS tree, and I'd
> recommend the DT binding changes to go the same route as well. I can
> handle the rebase when applying, and once the bindings get accept, you
> can ask Geert to upstream the last 3 patchs. Would that work for you ?
>
I'm OK with it as long as Geert is happy. (Fyi I still have bunch of
patches for G1H)

Cheers,
Prabhakar

> > Lad Prabhakar (7):
> >   dt-bindings: display: renesas,du: Document the r8a7742 bindings
> >   drm: rcar-du: Add r8a7742 support
> >   dt-bindings: display: renesas,lvds: Document r8a7742 bindings
> >   drm: rcar-du: lvds: Add r8a7742 support
> >   ARM: dts: r8a7742: Add DU support
> >   ARM: dts: r8a7742: Add LVDS support
> >   ARM: dts: r8a7742-iwg21d-q7: Add LCD support
> >
> >  .../bindings/display/bridge/renesas,lvds.txt  |  1 +
> >  .../bindings/display/renesas,du.txt   |  2 +
> >  arch/arm/boot/dts/r8a7742-iwg21d-q7.dts   | 84 +
> >  arch/arm/boot/dts/r8a7742.dtsi| 89 +++
> >  drivers/gpu/drm/rcar-du/rcar_du_drv.c |  5 +-
> >  drivers/gpu/drm/rcar-du/rcar_lvds.c   |  1 +
> >  6 files changed, 180 insertions(+), 2 deletions(-)
>
> --
> Regards,
>
> Laurent Pinchart
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 6/7] ARM: dts: r8a7742: Add LVDS support

2020-08-10 Thread Lad, Prabhakar
Hi Laurent,

Thank you for the review.

On Sat, Aug 8, 2020 at 10:13 PM Laurent Pinchart
 wrote:
>
> Hi Prabhakar,
>
> Thank you for the patch.
>
> On Fri, Aug 07, 2020 at 06:49:53PM +0100, Lad Prabhakar wrote:
> > Add LVDS encoder node to r8a7742 SoC DT.
> >
> > Signed-off-by: Lad Prabhakar 
> > Reviewed-by: Marian-Cristian Rotariu 
> > 
> > ---
> >  arch/arm/boot/dts/r8a7742.dtsi | 54 ++
> >  1 file changed, 54 insertions(+)
> >
> > diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi
> > index a979a4b3de61..a7e66220d63a 100644
> > --- a/arch/arm/boot/dts/r8a7742.dtsi
> > +++ b/arch/arm/boot/dts/r8a7742.dtsi
> > @@ -1534,11 +1534,65 @@
> >   port@1 {
> >   reg = <1>;
> >   du_out_lvds0: endpoint {
> > + remote-endpoint = <&lvds0_in>;
> >   };
> >   };
> >   port@2 {
> >   reg = <2>;
> >   du_out_lvds1: endpoint {
> > + remote-endpoint = <&lvds1_in>;
> > + };
> > + };
> > + };
> > + };
> > +
> > + lvds0: lvds@feb9 {
> > + compatible = "renesas,r8a7742-lvds";
> > + reg = <0 0xfeb9 0 0x1c>;
>
> Isn't 0x14 enough for the size ? 0x1c won't hurt though. Same comment
> below.
>
Agreed, 0x1c comes from Gen-3 manuals.

Cheers,
Prabhakar

> With or without this addressed,
>
> Reviewed-by: Laurent Pinchart 
>
> > + clocks = <&cpg CPG_MOD 726>;
> > + power-domains = <&sysc R8A7742_PD_ALWAYS_ON>;
> > + resets = <&cpg 726>;
> > + status = "disabled";
> > +
> > + ports {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + port@0 {
> > + reg = <0>;
> > + lvds0_in: endpoint {
> > + remote-endpoint = 
> > <&du_out_lvds0>;
> > + };
> > + };
> > + port@1 {
> > + reg = <1>;
> > + lvds0_out: endpoint {
> > + };
> > + };
> > + };
> > + };
> > +
> > + lvds1: lvds@feb94000 {
> > + compatible = "renesas,r8a7742-lvds";
> > + reg = <0 0xfeb94000 0 0x1c>;
> > + clocks = <&cpg CPG_MOD 725>;
> > + power-domains = <&sysc R8A7742_PD_ALWAYS_ON>;
> > + resets = <&cpg 725>;
> > + status = "disabled";
> > +
> > + ports {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + port@0 {
> > + reg = <0>;
> > + lvds1_in: endpoint {
> > + remote-endpoint = 
> > <&du_out_lvds1>;
> > + };
> > + };
> > + port@1 {
> > + reg = <1>;
> > + lvds1_out: endpoint {
> >   };
> >   };
> >   };
>
> --
> Regards,
>
> Laurent Pinchart
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 3/7] dt-bindings: display: renesas, lvds: Document r8a7742 bindings

2020-08-10 Thread Lad Prabhakar
Document the RZ/G1H (R8A7742) LVDS bindings.

Signed-off-by: Lad Prabhakar 
Reviewed-by: Marian-Cristian Rotariu 
---
 .../devicetree/bindings/display/bridge/renesas,lvds.txt  | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt 
b/Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt
index c62ce2494ed9..40aa809f41cd 100644
--- a/Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt
+++ b/Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt
@@ -7,6 +7,7 @@ Gen2, R-Car Gen3 and RZ/G SoCs.
 Required properties:
 
 - compatible : Shall contain one of
+  - "renesas,r8a7742-lvds" for R8A7742 (RZ/G1H) compatible LVDS encoders
   - "renesas,r8a7743-lvds" for R8A7743 (RZ/G1M) compatible LVDS encoders
   - "renesas,r8a7744-lvds" for R8A7744 (RZ/G1N) compatible LVDS encoders
   - "renesas,r8a774a1-lvds" for R8A774A1 (RZ/G2M) compatible LVDS encoders
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 2/7] drm: rcar-du: Add r8a7742 support

2020-08-10 Thread Lad Prabhakar
Add direct support for the r8a7742 (RZ/G1H).

The RZ/G1H shares a common, compatible configuration with the r8a7790
(R-Car H2) so that device info structure is reused, the only difference
being TCON is unsupported on RZ/G1H (Currently unsupported by the driver).

Signed-off-by: Lad Prabhakar 
Reviewed-by: Marian-Cristian Rotariu 
---
 drivers/gpu/drm/rcar-du/rcar_du_drv.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c 
b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
index 3e67cf70f040..7e286c7a7a6c 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
@@ -216,8 +216,8 @@ static const struct rcar_du_device_info 
rcar_du_r8a7790_info = {
.channels_mask = BIT(2) | BIT(1) | BIT(0),
.routes = {
/*
-* R8A7790 has one RGB output, two LVDS outputs and one
-* (currently unsupported) TCON output.
+* R8A7742 and R8A7790 each have one RGB output and two LVDS 
outputs. Additionally
+* R8A7790 supports one TCON output (currently unsupported by 
the driver).
 */
[RCAR_DU_OUTPUT_DPAD0] = {
.possible_crtcs = BIT(2) | BIT(1) | BIT(0),
@@ -443,6 +443,7 @@ static const struct rcar_du_device_info 
rcar_du_r8a7799x_info = {
 };
 
 static const struct of_device_id rcar_du_of_table[] = {
+   { .compatible = "renesas,du-r8a7742", .data = &rcar_du_r8a7790_info },
{ .compatible = "renesas,du-r8a7743", .data = &rzg1_du_r8a7743_info },
{ .compatible = "renesas,du-r8a7744", .data = &rzg1_du_r8a7743_info },
{ .compatible = "renesas,du-r8a7745", .data = &rzg1_du_r8a7745_info },
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 5/7] ARM: dts: r8a7742: Add DU support

2020-08-10 Thread Lad Prabhakar
Add du node to r8a7742 SoC DT. Boards that want to enable the DU
need to specify the output topology.

Signed-off-by: Lad Prabhakar 
Reviewed-by: Marian-Cristian Rotariu 
---
 arch/arm/boot/dts/r8a7742.dtsi | 35 ++
 1 file changed, 35 insertions(+)

diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi
index 4a8d27dff9f7..a979a4b3de61 100644
--- a/arch/arm/boot/dts/r8a7742.dtsi
+++ b/arch/arm/boot/dts/r8a7742.dtsi
@@ -1509,6 +1509,41 @@
resets = <&cpg 408>;
};
 
+   du: display@feb0 {
+   compatible = "renesas,du-r8a7742";
+   reg = <0 0xfeb0 0 0x7>;
+   interrupts = ,
+,
+;
+   clocks = <&cpg CPG_MOD 724>, <&cpg CPG_MOD 723>,
+<&cpg CPG_MOD 722>;
+   clock-names = "du.0", "du.1", "du.2";
+   resets = <&cpg 724>;
+   reset-names = "du.0";
+   status = "disabled";
+
+   ports {
+   #address-cells = <1>;
+   #size-cells = <0>;
+
+   port@0 {
+   reg = <0>;
+   du_out_rgb: endpoint {
+   };
+   };
+   port@1 {
+   reg = <1>;
+   du_out_lvds0: endpoint {
+   };
+   };
+   port@2 {
+   reg = <2>;
+   du_out_lvds1: endpoint {
+   };
+   };
+   };
+   };
+
prr: chipid@ff44 {
compatible = "renesas,prr";
reg = <0 0xff44 0 4>;
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 3/7] dt-bindings: display: renesas, lvds: Document r8a7742 bindings

2020-08-10 Thread Lad, Prabhakar
Hi Laurent,

Thank you for the review.

On Sat, Aug 8, 2020 at 10:05 PM Laurent Pinchart
 wrote:
>
> On Sun, Aug 09, 2020 at 12:03:27AM +0300, Laurent Pinchart wrote:
> > Hi Prabhakar,
> >
> > Thank you for the patch.
> >
> > On Fri, Aug 07, 2020 at 06:49:50PM +0100, Lad Prabhakar wrote:
> > > Document the RZ/G1H (R8A7742) LVDS bindings.
> > >
> > > Signed-off-by: Lad Prabhakar 
> > > Reviewed-by: Marian-Cristian Rotariu 
> > > 
> >
> > Reviewed-by: Laurent Pinchart 
>
> I actually spoke too soon, this binding has been concerted to YAML in
> drm-next. I can fix this when applying, no need to resubmit just for
> this.
>
Thank you for taking care of it.

Cheers,
Prabhakar

> > > ---
> > >  .../devicetree/bindings/display/bridge/renesas,lvds.txt  | 1 +
> > >  1 file changed, 1 insertion(+)
> > >
> > > diff --git 
> > > a/Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt 
> > > b/Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt
> > > index c62ce2494ed9..40aa809f41cd 100644
> > > --- a/Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt
> > > +++ b/Documentation/devicetree/bindings/display/bridge/renesas,lvds.txt
> > > @@ -7,6 +7,7 @@ Gen2, R-Car Gen3 and RZ/G SoCs.
> > >  Required properties:
> > >
> > >  - compatible : Shall contain one of
> > > +  - "renesas,r8a7742-lvds" for R8A7742 (RZ/G1H) compatible LVDS encoders
> > >- "renesas,r8a7743-lvds" for R8A7743 (RZ/G1M) compatible LVDS encoders
> > >- "renesas,r8a7744-lvds" for R8A7744 (RZ/G1N) compatible LVDS encoders
> > >- "renesas,r8a774a1-lvds" for R8A774A1 (RZ/G2M) compatible LVDS 
> > > encoders
>
> --
> Regards,
>
> Laurent Pinchart
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 5/7] ARM: dts: r8a7742: Add DU support

2020-08-10 Thread Lad, Prabhakar
Hi Sergei,

Thank you for the review.

On Fri, Aug 7, 2020 at 8:48 PM Sergei Shtylyov
 wrote:
>
> Hello!
>
> On 8/7/20 8:49 PM, Lad Prabhakar wrote:
>
> > Add du node to r8a7742 SoC DT. Boards that want to enable the DU
>
>   Both "du" and "DU" on a single line? :-)
>
Argh my bad.

Cheers,
Prabhakar

> > need to specify the output topology.
> >
> > Signed-off-by: Lad Prabhakar 
> > Reviewed-by: Marian-Cristian Rotariu 
> > 
> [...]
>
> MBR, Sergei
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 7/7] ARM: dts: r8a7742-iwg21d-q7: Add LCD support

2020-08-10 Thread Lad Prabhakar
The iwg21d comes with a 7" capacitive touch screen, therefore
add support for it.

Signed-off-by: Lad Prabhakar 
Reviewed-by: Marian-Cristian Rotariu 
---
 arch/arm/boot/dts/r8a7742-iwg21d-q7.dts | 84 +
 1 file changed, 84 insertions(+)

diff --git a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts 
b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
index b3461a61a4bf..cf59fd61e422 100644
--- a/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
+++ b/arch/arm/boot/dts/r8a7742-iwg21d-q7.dts
@@ -30,6 +30,7 @@
 
 /dts-v1/;
 #include "r8a7742-iwg21m.dtsi"
+#include 
 
 / {
model = "iWave Systems RainboW-G21D-Qseven board based on RZ/G1H";
@@ -52,6 +53,50 @@
clock-frequency = <2600>;
};
 
+   lcd_backlight: backlight {
+   compatible = "pwm-backlight";
+   pwms = <&tpu 2 500 0>;
+   brightness-levels = <0 4 8 16 32 64 128 255>;
+   pinctrl-0 = <&backlight_pins>;
+   pinctrl-names = "default";
+   default-brightness-level = <7>;
+   enable-gpios = <&gpio3 11 GPIO_ACTIVE_HIGH>;
+   };
+
+   lvds-receiver {
+   compatible = "ti,ds90cf384a", "lvds-decoder";
+   powerdown-gpios = <&gpio5 28 GPIO_ACTIVE_LOW>;
+
+   ports {
+   #address-cells = <1>;
+   #size-cells = <0>;
+
+   port@0 {
+   reg = <0>;
+   lvds_receiver_in: endpoint {
+   remote-endpoint = <&lvds0_out>;
+   };
+   };
+   port@1 {
+   reg = <1>;
+   lvds_receiver_out: endpoint {
+   remote-endpoint = <&panel_in>;
+   };
+   };
+   };
+   };
+
+   panel {
+   compatible = "edt,etm0700g0dh6";
+   backlight = <&lcd_backlight>;
+
+   port {
+   panel_in: endpoint {
+   remote-endpoint = <&lvds_receiver_out>;
+   };
+   };
+   };
+
reg_1p5v: 1p5v {
compatible = "regulator-fixed";
regulator-name = "1P5V";
@@ -129,12 +174,31 @@
VDDIO-supply = <®_3p3v>;
VDDD-supply = <®_1p5v>;
};
+
+   touch: touchpanel@38 {
+   compatible = "edt,edt-ft5406";
+   reg = <0x38>;
+   interrupt-parent = <&gpio0>;
+   interrupts = <24 IRQ_TYPE_EDGE_FALLING>;
+   };
 };
 
 &cmt0 {
status = "okay";
 };
 
+&du {
+   status = "okay";
+};
+
+&gpio0 {
+   touch-interrupt {
+   gpio-hog;
+   gpios = <24 GPIO_ACTIVE_LOW>;
+   input;
+   };
+};
+
 &hsusb {
pinctrl-0 = <&usb0_pins>;
pinctrl-names = "default";
@@ -165,6 +229,11 @@
function = "avb";
};
 
+   backlight_pins: backlight {
+   groups = "tpu0_to2";
+   function = "tpu0";
+   };
+
i2c2_pins: i2c2 {
groups = "i2c2_b";
function = "i2c2";
@@ -208,6 +277,17 @@
};
 };
 
+&lvds0 {
+   status = "okay";
+   ports {
+   port@1 {
+   lvds0_out: endpoint {
+   remote-endpoint = <&lvds_receiver_in>;
+   };
+   };
+   };
+};
+
 &rcar_sound {
pinctrl-0 = <&sound_pins>;
pinctrl-names = "default";
@@ -261,6 +341,10 @@
shared-pin;
 };
 
+&tpu {
+   status = "okay";
+};
+
 &usbphy {
status = "okay";
 };
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 6/7] ARM: dts: r8a7742: Add LVDS support

2020-08-10 Thread Lad Prabhakar
Add LVDS encoder node to r8a7742 SoC DT.

Signed-off-by: Lad Prabhakar 
Reviewed-by: Marian-Cristian Rotariu 
---
 arch/arm/boot/dts/r8a7742.dtsi | 54 ++
 1 file changed, 54 insertions(+)

diff --git a/arch/arm/boot/dts/r8a7742.dtsi b/arch/arm/boot/dts/r8a7742.dtsi
index a979a4b3de61..a7e66220d63a 100644
--- a/arch/arm/boot/dts/r8a7742.dtsi
+++ b/arch/arm/boot/dts/r8a7742.dtsi
@@ -1534,11 +1534,65 @@
port@1 {
reg = <1>;
du_out_lvds0: endpoint {
+   remote-endpoint = <&lvds0_in>;
};
};
port@2 {
reg = <2>;
du_out_lvds1: endpoint {
+   remote-endpoint = <&lvds1_in>;
+   };
+   };
+   };
+   };
+
+   lvds0: lvds@feb9 {
+   compatible = "renesas,r8a7742-lvds";
+   reg = <0 0xfeb9 0 0x1c>;
+   clocks = <&cpg CPG_MOD 726>;
+   power-domains = <&sysc R8A7742_PD_ALWAYS_ON>;
+   resets = <&cpg 726>;
+   status = "disabled";
+
+   ports {
+   #address-cells = <1>;
+   #size-cells = <0>;
+
+   port@0 {
+   reg = <0>;
+   lvds0_in: endpoint {
+   remote-endpoint = 
<&du_out_lvds0>;
+   };
+   };
+   port@1 {
+   reg = <1>;
+   lvds0_out: endpoint {
+   };
+   };
+   };
+   };
+
+   lvds1: lvds@feb94000 {
+   compatible = "renesas,r8a7742-lvds";
+   reg = <0 0xfeb94000 0 0x1c>;
+   clocks = <&cpg CPG_MOD 725>;
+   power-domains = <&sysc R8A7742_PD_ALWAYS_ON>;
+   resets = <&cpg 725>;
+   status = "disabled";
+
+   ports {
+   #address-cells = <1>;
+   #size-cells = <0>;
+
+   port@0 {
+   reg = <0>;
+   lvds1_in: endpoint {
+   remote-endpoint = 
<&du_out_lvds1>;
+   };
+   };
+   port@1 {
+   reg = <1>;
+   lvds1_out: endpoint {
};
};
};
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH 2/7] drm: rcar-du: Add r8a7742 support

2020-08-10 Thread Lad, Prabhakar
Hi Laurent,

Thank you for the review.

On Sat, Aug 8, 2020 at 10:02 PM Laurent Pinchart
 wrote:
>
> Hi Prabhakar,
>
> Thank you for the patch.
>
> On Fri, Aug 07, 2020 at 06:49:49PM +0100, Lad Prabhakar wrote:
> > Add direct support for the r8a7742 (RZ/G1H).
> >
> > The RZ/G1H shares a common, compatible configuration with the r8a7790
> > (R-Car H2) so that device info structure is reused, the only difference
> > being TCON is unsupported on RZ/G1H (Currently unsupported by the driver).
> >
> > Signed-off-by: Lad Prabhakar 
> > Reviewed-by: Marian-Cristian Rotariu 
> > 
> > ---
> >  drivers/gpu/drm/rcar-du/rcar_du_drv.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c 
> > b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> > index 3e67cf70f040..7e286c7a7a6c 100644
> > --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> > +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> > @@ -216,8 +216,8 @@ static const struct rcar_du_device_info 
> > rcar_du_r8a7790_info = {
> >   .channels_mask = BIT(2) | BIT(1) | BIT(0),
> >   .routes = {
> >   /*
> > -  * R8A7790 has one RGB output, two LVDS outputs and one
> > -  * (currently unsupported) TCON output.
> > +  * R8A7742 and R8A7790 each have one RGB output and two LVDS 
> > outputs. Additionally
> > +  * R8A7790 supports one TCON output (currently unsupported by 
> > the driver).
>
> Once we support TCON we'll have to split this, but for now I suppose
> it's fine. Would you however mind wrapping this to 80 columns ? I can do
> so when applying if it's fine with you.
>
Agreed once TCON is added this has to be split. But isn't  the column
size has been increased (checkpatch too doesn't complain about), but
feel free to wrapp it for 80 columns.

Cheers,
Prabhakar

> Reviewed-by: Laurent Pinchart 
>
> >*/
> >   [RCAR_DU_OUTPUT_DPAD0] = {
> >   .possible_crtcs = BIT(2) | BIT(1) | BIT(0),
> > @@ -443,6 +443,7 @@ static const struct rcar_du_device_info 
> > rcar_du_r8a7799x_info = {
> >  };
> >
> >  static const struct of_device_id rcar_du_of_table[] = {
> > + { .compatible = "renesas,du-r8a7742", .data = &rcar_du_r8a7790_info },
> >   { .compatible = "renesas,du-r8a7743", .data = &rzg1_du_r8a7743_info },
> >   { .compatible = "renesas,du-r8a7744", .data = &rzg1_du_r8a7743_info },
> >   { .compatible = "renesas,du-r8a7745", .data = &rzg1_du_r8a7745_info },
>
> --
> Regards,
>
> Laurent Pinchart
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH 1/7] dt-bindings: display: renesas, du: Document the r8a7742 bindings

2020-08-10 Thread Lad Prabhakar
Document the RZ/G1H (R8A7742) SoC in the R-Car DU bindings.

Signed-off-by: Lad Prabhakar 
Reviewed-by: Marian-Cristian Rotariu 
---
 Documentation/devicetree/bindings/display/renesas,du.txt | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/Documentation/devicetree/bindings/display/renesas,du.txt 
b/Documentation/devicetree/bindings/display/renesas,du.txt
index 51cd4d162770..3f1e3ca4bea9 100644
--- a/Documentation/devicetree/bindings/display/renesas,du.txt
+++ b/Documentation/devicetree/bindings/display/renesas,du.txt
@@ -3,6 +3,7 @@
 Required Properties:
 
   - compatible: must be one of the following.
+- "renesas,du-r8a7742" for R8A7742 (RZ/G1H) compatible DU
 - "renesas,du-r8a7743" for R8A7743 (RZ/G1M) compatible DU
 - "renesas,du-r8a7744" for R8A7744 (RZ/G1N) compatible DU
 - "renesas,du-r8a7745" for R8A7745 (RZ/G1E) compatible DU
@@ -68,6 +69,7 @@ corresponding to each DU output.
 
 Port0  Port1  Port2  Port3
 -
+ R8A7742 (RZ/G1H)   DPAD 0 LVDS 0 LVDS 1 -
  R8A7743 (RZ/G1M)   DPAD 0 LVDS 0 -  -
  R8A7744 (RZ/G1N)   DPAD 0 LVDS 0 -  -
  R8A7745 (RZ/G1E)   DPAD 0 DPAD 1 -  -
-- 
2.17.1

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [PATCH v2 01/36] dt-bindings: display: allow port and ports in panel-lvds

2020-04-10 Thread Lad, Prabhakar
Hi Sam,

Thank you for the patch.

On Wed, Apr 8, 2020 at 10:37 PM Sam Ravnborg  wrote:
>
> Both port and ports names may be used.
> port - for a single port
> ports - if there is more than one port in sub-nodes
>
> Fixes the following warning:
> advantech,idk-2121wr.example.dt.yaml: panel-lvds: 'port' is a required 
> property
>
> advantech,idk-2121wr.yaml needs several ports, so uses a ports node.
>
> Signed-off-by: Sam Ravnborg 
> Cc: Fabrizio Castro 
> Cc: Lad Prabhakar 
> Cc: Thierry Reding 
> Cc: Sam Ravnborg 

Reviewed-by: Lad Prabhakar 

Cheers,
--Prabhakar

> ---
>  Documentation/devicetree/bindings/display/panel/lvds.yaml | 8 +++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/display/panel/lvds.yaml 
> b/Documentation/devicetree/bindings/display/panel/lvds.yaml
> index d0083301acbe..f9132d50821c 100644
> --- a/Documentation/devicetree/bindings/display/panel/lvds.yaml
> +++ b/Documentation/devicetree/bindings/display/panel/lvds.yaml
> @@ -102,6 +102,12 @@ required:
>- width-mm
>- height-mm
>- panel-timing
> -  - port
> +
> +if:
> +  required:
> +- port
> +else:
> +  required:
> +- ports
>
>  ...
> --
> 2.20.1
>
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH v4 1/2] dt-bindings: display: Add idk-1110wr binding

2020-03-12 Thread Lad Prabhakar
From: Fabrizio Castro 

Add binding for the idk-1110wr LVDS panel from Advantech.

Some panel-specific documentation can be found here:
https://buy.advantech.eu/Displays/Embedded-LCD-Kits-LCD-Kit-Modules/model-IDK-1110WR-55WSA1E.htm

Signed-off-by: Fabrizio Castro 
Reviewed-by: Rob Herring 
Reviewed-by: Laurent Pinchart 
Signed-off-by: Lad Prabhakar 
---
 .../display/panel/advantech,idk-1110wr.yaml| 69 ++
 1 file changed, 69 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/display/panel/advantech,idk-1110wr.yaml

diff --git 
a/Documentation/devicetree/bindings/display/panel/advantech,idk-1110wr.yaml 
b/Documentation/devicetree/bindings/display/panel/advantech,idk-1110wr.yaml
new file mode 100644
index 000..93878c2
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/advantech,idk-1110wr.yaml
@@ -0,0 +1,69 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/advantech,idk-1110wr.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Advantech IDK-1110WR 10.1" WSVGA LVDS Display Panel
+
+maintainers:
+  - Lad Prabhakar 
+  - Thierry Reding 
+
+allOf:
+  - $ref: lvds.yaml#
+
+properties:
+  compatible:
+items:
+  - const: advantech,idk-1110wr
+  - {} # panel-lvds, but not listed here to avoid false select
+
+  data-mapping:
+const: jeida-24
+
+  width-mm:
+const: 223
+
+  height-mm:
+const: 125
+
+  panel-timing: true
+  port: true
+
+additionalProperties: false
+
+required:
+  - compatible
+
+examples:
+  - |+
+panel {
+  compatible = "advantech,idk-1110wr", "panel-lvds";
+
+  width-mm = <223>;
+  height-mm = <125>;
+
+  data-mapping = "jeida-24";
+
+  panel-timing {
+/* 1024x600 @60Hz */
+clock-frequency = <5120>;
+hactive = <1024>;
+vactive = <600>;
+hsync-len = <240>;
+hfront-porch = <40>;
+hback-porch = <40>;
+vsync-len = <10>;
+vfront-porch = <15>;
+vback-porch = <10>;
+  };
+
+  port {
+panel_in: endpoint {
+  remote-endpoint = <&lvds_encoder>;
+};
+  };
+};
+
+...
-- 
2.7.4

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH v4 0/2] Add LVDS panel support to HiHope RZ/G2M

2020-03-12 Thread Lad Prabhakar
Dear All,

The HiHope RZ/G2M is advertised as supporting panel idk-1110wr from
Advantech, but the panel doesn't come with the board, it has to purchased
separatey, therefore this series adds panel support to a new DT.

v3->v4
 * Included rzg2-advantech-idk-1110wr-panel.dtsi in
   r8a774a1-hihope-rzg2m-ex-idk-1110wr.dts file instead of re-inventing
   the wheel.
 * Dropped the Ack from Laurent for patch 2/2 due to above changes

v2->v3
 * Included Reviewed-by from Rob and Laurent
 * Switched to dual license
 * Added myself as the maintainer
 * Updated copyright year
 * Rebased the patches

v1->v2
 * fixed a space according to Geert's feedback.

Thanks,
Prabhakar

Fabrizio Castro (2):
  dt-bindings: display: Add idk-1110wr binding
  arm64: dts: renesas: Add HiHope RZ/G2M board with idk-1110wr display

 .../display/panel/advantech,idk-1110wr.yaml| 69 ++
 arch/arm64/boot/dts/renesas/Makefile   |  1 +
 .../r8a774a1-hihope-rzg2m-ex-idk-1110wr.dts| 52 
 3 files changed, 122 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/display/panel/advantech,idk-1110wr.yaml
 create mode 100644 
arch/arm64/boot/dts/renesas/r8a774a1-hihope-rzg2m-ex-idk-1110wr.dts

-- 
2.7.4

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH v4 2/2] arm64: dts: renesas: Add HiHope RZ/G2M board with idk-1110wr display

2020-03-12 Thread Lad Prabhakar
From: Fabrizio Castro 

The HiHope RZ/G2M is advertised as compatible with panel idk-1110wr
from Advantech, however the panel isn't sold alongside the board.
A new dts, adding everything that's required to get the panel to
work with HiHope RZ/G2M, is the most convenient way to support the
HiHope RZ/G2M when it's connected to the idk-1110wr.

Signed-off-by: Fabrizio Castro 
Signed-off-by: Lad Prabhakar 
---
 arch/arm64/boot/dts/renesas/Makefile   |  1 +
 .../r8a774a1-hihope-rzg2m-ex-idk-1110wr.dts| 52 ++
 2 files changed, 53 insertions(+)
 create mode 100644 
arch/arm64/boot/dts/renesas/r8a774a1-hihope-rzg2m-ex-idk-1110wr.dts

diff --git a/arch/arm64/boot/dts/renesas/Makefile 
b/arch/arm64/boot/dts/renesas/Makefile
index 2153842..82dd245 100644
--- a/arch/arm64/boot/dts/renesas/Makefile
+++ b/arch/arm64/boot/dts/renesas/Makefile
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 dtb-$(CONFIG_ARCH_R8A774A1) += r8a774a1-hihope-rzg2m.dtb
 dtb-$(CONFIG_ARCH_R8A774A1) += r8a774a1-hihope-rzg2m-ex.dtb
+dtb-$(CONFIG_ARCH_R8A774A1) += r8a774a1-hihope-rzg2m-ex-idk-1110wr.dtb
 dtb-$(CONFIG_ARCH_R8A774B1) += r8a774b1-hihope-rzg2n.dtb
 dtb-$(CONFIG_ARCH_R8A774B1) += r8a774b1-hihope-rzg2n-ex.dtb
 dtb-$(CONFIG_ARCH_R8A774C0) += r8a774c0-cat874.dtb r8a774c0-ek874.dtb \
diff --git 
a/arch/arm64/boot/dts/renesas/r8a774a1-hihope-rzg2m-ex-idk-1110wr.dts 
b/arch/arm64/boot/dts/renesas/r8a774a1-hihope-rzg2m-ex-idk-1110wr.dts
new file mode 100644
index 000..2ab5edd
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a774a1-hihope-rzg2m-ex-idk-1110wr.dts
@@ -0,0 +1,52 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree Source for the HiHope RZ/G2M sub board connected to an
+ * Advantech IDK-1110WR 10.1" LVDS panel
+ *
+ * Copyright (C) 2020 Renesas Electronics Corp.
+ */
+
+#include "r8a774a1-hihope-rzg2m-ex.dts"
+#include "rzg2-advantech-idk-1110wr-panel.dtsi"
+
+/ {
+   backlight {
+   compatible = "pwm-backlight";
+   pwms = <&pwm0 0 5>;
+
+   brightness-levels = <0 2 8 16 32 64 128 255>;
+   default-brightness-level = <6>;
+   };
+
+};
+
+&gpio1 {
+   /*
+* When GP1_20 is LOW LVDS0 is connected to the LVDS connector
+* When GP1_20 is HIGH LVDS0 is connected to the LT8918L
+*/
+   lvds-connector-en-gpio {
+   gpio-hog;
+   gpios = <20 GPIO_ACTIVE_HIGH>;
+   output-low;
+   line-name = "lvds-connector-en-gpio";
+   };
+};
+
+&lvds0 {
+   status = "okay";
+};
+
+&pfc {
+   pwm0_pins: pwm0 {
+   groups = "pwm0";
+   function = "pwm0";
+   };
+};
+
+&pwm0 {
+   pinctrl-0 = <&pwm0_pins>;
+   pinctrl-names = "default";
+
+   status = "okay";
+};
-- 
2.7.4

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH v3 0/2] Add LVDS panel support to HiHope RZ/G2M

2020-03-10 Thread Lad Prabhakar
Dear All,

The HiHope RZ/G2M is advertised as supporting panel idk-1110wr from
Advantech, but the panel doesn't come with the board, it has to purchased
separatey, therefore this series adds panel support to a new DT.

The v2 version somehow missed being merged.

v2->v3
 * Included Reviewed-by from Rob and Laurent
 * Switched to dual license
 * Added myself as the maintainer
 * Updated copyright year
 * Rebased the patches

v1->v2
 * fixed a space according to Geert's feedback.

Thanks,
Prabhakar

Fabrizio Castro (2):
  dt-bindings: display: Add idk-1110wr binding
  arm64: dts: renesas: Add HiHope RZ/G2M board with idk-1110wr display

 .../display/panel/advantech,idk-1110wr.yaml| 69 +
 arch/arm64/boot/dts/renesas/Makefile   |  1 +
 .../r8a774a1-hihope-rzg2m-ex-idk-1110wr.dts| 86 ++
 3 files changed, 156 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/display/panel/advantech,idk-1110wr.yaml
 create mode 100644 
arch/arm64/boot/dts/renesas/r8a774a1-hihope-rzg2m-ex-idk-1110wr.dts

-- 
2.7.4

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH v8] dt-bindings: display: Add idk-2121wr binding

2020-03-10 Thread Lad Prabhakar
From: Fabrizio Castro 

Add binding for the idk-2121wr LVDS panel from Advantech.

Some panel-specific documentation can be found here:
https://buy.advantech.eu/Displays/Embedded-LCD-Kits-High-Brightness/model-IDK-2121WR-K2FHA2E.htm

Signed-off-by: Fabrizio Castro 
Signed-off-by: Lad Prabhakar 
---

Hi All,
This patch is part of series [1] ("Add dual-LVDS panel support to EK874),
all the patches have been accepted from it except this one. I have fixed
Rob's comments in this version of the patch.

[1] https://patchwork.kernel.org/cover/11297589/

V7->8
 * Dropped ref to lvds.yaml, since the panel a dual channel LVDS, as a
   result the root port is called as ports instead of port and the child
   node port@0 and port@1 are used for even and odd pixels, hence binding
   has required property as ports instead of port.

v6->7
 * Added reference to lvds.yaml
 * Changed maintainer to myself
 * Switched to dual license
 * Dropped required properties except for ports as rest are already listed
   in lvds.panel
 * Dropped Reviewed-by tag of Laurent, due to the changes made it might not
   be valid.

v5->v6:
 * No change

v4->v5:
* No change

v3->v4:
* Absorbed patch "dt-bindings: display: Add bindings for LVDS
  bus-timings"
* Big restructuring after Rob's and Laurent's comments

v2->v3:
* New patch

 .../display/panel/advantech,idk-2121wr.yaml| 122 +
 1 file changed, 122 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml

diff --git 
a/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml 
b/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml
new file mode 100644
index 000..6b7fddc
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml
@@ -0,0 +1,122 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/advantech,idk-2121wr.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Advantech IDK-2121WR 21.5" Full-HD dual-LVDS panel
+
+maintainers:
+  - Lad Prabhakar 
+  - Thierry Reding 
+
+description: |
+  The IDK-2121WR from Advantech is a Full-HD dual-LVDS panel.
+  A dual-LVDS interface is a dual-link connection with even pixels traveling
+  on one link, and with odd pixels traveling on the other link.
+
+  The panel expects odd pixels on the first port, and even pixels on the
+  second port, therefore the ports must be marked accordingly (with either
+  dual-lvds-odd-pixels or dual-lvds-even-pixels).
+
+properties:
+  compatible:
+items:
+  - const: advantech,idk-2121wr
+  - {} # panel-lvds, but not listed here to avoid false select
+
+  width-mm:
+const: 476
+
+  height-mm:
+const: 268
+
+  data-mapping:
+const: vesa-24
+
+  panel-timing: true
+
+  ports:
+type: object
+properties:
+  port@0:
+type: object
+description: The sink for odd pixels.
+properties:
+  reg:
+const: 0
+
+  dual-lvds-odd-pixels: true
+
+required:
+  - reg
+  - dual-lvds-odd-pixels
+
+  port@1:
+type: object
+description: The sink for even pixels.
+properties:
+  reg:
+const: 1
+
+  dual-lvds-even-pixels: true
+
+required:
+  - reg
+  - dual-lvds-even-pixels
+
+additionalProperties: false
+
+required:
+  - compatible
+  - width-mm
+  - height-mm
+  - data-mapping
+  - panel-timing
+  - ports
+
+examples:
+  - |+
+panel-lvds {
+  compatible = "advantech,idk-2121wr", "panel-lvds";
+
+  width-mm = <476>;
+  height-mm = <268>;
+
+  data-mapping = "vesa-24";
+
+  panel-timing {
+clock-frequency = <14850>;
+hactive = <1920>;
+vactive = <1080>;
+hsync-len = <44>;
+hfront-porch = <88>;
+hback-porch = <148>;
+vfront-porch = <4>;
+vback-porch = <36>;
+vsync-len = <5>;
+  };
+
+  ports {
+#address-cells = <1>;
+#size-cells = <0>;
+
+port@0 {
+  reg = <0>;
+  dual-lvds-odd-pixels;
+  panel_in0: endpoint {
+remote-endpoint = <&lvds0_out>;
+  };
+};
+
+port@1 {
+  reg = <1>;
+  dual-lvds-even-pixels;
+  panel_in1: endpoint {
+remote-endpoint = <&lvds1_out>;
+  };
+};
+  };
+};
+
+...
-- 
2.7.4

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH v3 1/2] dt-bindings: display: Add idk-1110wr binding

2020-03-10 Thread Lad Prabhakar
From: Fabrizio Castro 

Add binding for the idk-1110wr LVDS panel from Advantech.

Some panel-specific documentation can be found here:
https://buy.advantech.eu/Displays/Embedded-LCD-Kits-LCD-Kit-Modules/model-IDK-1110WR-55WSA1E.htm

Signed-off-by: Fabrizio Castro 
Reviewed-by: Rob Herring 
Reviewed-by: Laurent Pinchart 
Signed-off-by: Lad Prabhakar 
---
 .../display/panel/advantech,idk-1110wr.yaml| 69 ++
 1 file changed, 69 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/display/panel/advantech,idk-1110wr.yaml

diff --git 
a/Documentation/devicetree/bindings/display/panel/advantech,idk-1110wr.yaml 
b/Documentation/devicetree/bindings/display/panel/advantech,idk-1110wr.yaml
new file mode 100644
index 000..93878c2
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/advantech,idk-1110wr.yaml
@@ -0,0 +1,69 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/advantech,idk-1110wr.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Advantech IDK-1110WR 10.1" WSVGA LVDS Display Panel
+
+maintainers:
+  - Lad Prabhakar 
+  - Thierry Reding 
+
+allOf:
+  - $ref: lvds.yaml#
+
+properties:
+  compatible:
+items:
+  - const: advantech,idk-1110wr
+  - {} # panel-lvds, but not listed here to avoid false select
+
+  data-mapping:
+const: jeida-24
+
+  width-mm:
+const: 223
+
+  height-mm:
+const: 125
+
+  panel-timing: true
+  port: true
+
+additionalProperties: false
+
+required:
+  - compatible
+
+examples:
+  - |+
+panel {
+  compatible = "advantech,idk-1110wr", "panel-lvds";
+
+  width-mm = <223>;
+  height-mm = <125>;
+
+  data-mapping = "jeida-24";
+
+  panel-timing {
+/* 1024x600 @60Hz */
+clock-frequency = <5120>;
+hactive = <1024>;
+vactive = <600>;
+hsync-len = <240>;
+hfront-porch = <40>;
+hback-porch = <40>;
+vsync-len = <10>;
+vfront-porch = <15>;
+vback-porch = <10>;
+  };
+
+  port {
+panel_in: endpoint {
+  remote-endpoint = <&lvds_encoder>;
+};
+  };
+};
+
+...
-- 
2.7.4

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[PATCH v3 2/2] arm64: dts: renesas: Add HiHope RZ/G2M board with idk-1110wr display

2020-03-10 Thread Lad Prabhakar
From: Fabrizio Castro 

The HiHope RZ/G2M is advertised as compatible with panel idk-1110wr
from Advantech, however the panel isn't sold alongside the board.
A new dts, adding everything that's required to get the panel to
work the HiHope RZ/G2M, is the most convenient way to support the
HiHope RZ/G2M when it's connected to the idk-1110wr.

Signed-off-by: Fabrizio Castro 
Acked-by: Laurent Pinchart 
Signed-off-by: Lad Prabhakar 
---
 arch/arm64/boot/dts/renesas/Makefile   |  1 +
 .../r8a774a1-hihope-rzg2m-ex-idk-1110wr.dts| 86 ++
 2 files changed, 87 insertions(+)
 create mode 100644 
arch/arm64/boot/dts/renesas/r8a774a1-hihope-rzg2m-ex-idk-1110wr.dts

diff --git a/arch/arm64/boot/dts/renesas/Makefile 
b/arch/arm64/boot/dts/renesas/Makefile
index 2153842..82dd245 100644
--- a/arch/arm64/boot/dts/renesas/Makefile
+++ b/arch/arm64/boot/dts/renesas/Makefile
@@ -1,6 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 dtb-$(CONFIG_ARCH_R8A774A1) += r8a774a1-hihope-rzg2m.dtb
 dtb-$(CONFIG_ARCH_R8A774A1) += r8a774a1-hihope-rzg2m-ex.dtb
+dtb-$(CONFIG_ARCH_R8A774A1) += r8a774a1-hihope-rzg2m-ex-idk-1110wr.dtb
 dtb-$(CONFIG_ARCH_R8A774B1) += r8a774b1-hihope-rzg2n.dtb
 dtb-$(CONFIG_ARCH_R8A774B1) += r8a774b1-hihope-rzg2n-ex.dtb
 dtb-$(CONFIG_ARCH_R8A774C0) += r8a774c0-cat874.dtb r8a774c0-ek874.dtb \
diff --git 
a/arch/arm64/boot/dts/renesas/r8a774a1-hihope-rzg2m-ex-idk-1110wr.dts 
b/arch/arm64/boot/dts/renesas/r8a774a1-hihope-rzg2m-ex-idk-1110wr.dts
new file mode 100644
index 000..6033cae
--- /dev/null
+++ b/arch/arm64/boot/dts/renesas/r8a774a1-hihope-rzg2m-ex-idk-1110wr.dts
@@ -0,0 +1,86 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Device Tree Source for the HiHope RZ/G2M sub board connected to an
+ * Advantech IDK-1110WR 10.1" LVDS panel
+ *
+ * Copyright (C) 2020 Renesas Electronics Corp.
+ */
+
+#include "r8a774a1-hihope-rzg2m-ex.dts"
+
+/ {
+   backlight {
+   compatible = "pwm-backlight";
+   pwms = <&pwm0 0 5>;
+
+   brightness-levels = <0 2 8 16 32 64 128 255>;
+   default-brightness-level = <6>;
+   };
+
+   panel-lvds {
+   compatible = "advantech,idk-1110wr", "panel-lvds";
+
+   width-mm = <223>;
+   height-mm = <125>;
+
+   data-mapping = "jeida-24";
+
+   panel-timing {
+   /* 1024x600 @60Hz */
+   clock-frequency = <5120>;
+   hactive = <1024>;
+   vactive = <600>;
+   hsync-len = <240>;
+   hfront-porch = <40>;
+   hback-porch = <40>;
+   vfront-porch = <15>;
+   vback-porch = <10>;
+   vsync-len = <10>;
+   };
+
+   port {
+   panel_in: endpoint {
+   remote-endpoint = <&lvds0_out>;
+   };
+   };
+   };
+};
+
+&gpio1 {
+   /*
+* When GP1_20 is LOW LVDS0 is connected to the LVDS connector
+* When GP1_20 is HIGH LVDS0 is connected to the LT8918L
+*/
+   lvds-connector-en-gpio {
+   gpio-hog;
+   gpios = <20 GPIO_ACTIVE_HIGH>;
+   output-low;
+   line-name = "lvds-connector-en-gpio";
+   };
+};
+
+&lvds0 {
+   status = "okay";
+
+   ports {
+   port@1 {
+   lvds0_out: endpoint {
+   remote-endpoint = <&panel_in>;
+   };
+   };
+   };
+};
+
+&pfc {
+   pwm0_pins: pwm0 {
+   groups = "pwm0";
+   function = "pwm0";
+   };
+};
+
+&pwm0 {
+   pinctrl-0 = <&pwm0_pins>;
+   pinctrl-names = "default";
+
+   status = "okay";
+};
-- 
2.7.4

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [RESEND PATCH v7] dt-bindings: display: Add idk-2121wr binding

2020-03-10 Thread Lad, Prabhakar
Hi Rob,

On Mon, Mar 9, 2020 at 8:32 PM Rob Herring  wrote:
>
> On Fri,  6 Mar 2020 15:20:31 +0000, Lad Prabhakar wrote:
> > From: Fabrizio Castro 
> >
> > Add binding for the idk-2121wr LVDS panel from Advantech.
> >
> > Some panel-specific documentation can be found here:
> > https://buy.advantech.eu/Displays/Embedded-LCD-Kits-High-Brightness/model-IDK-2121WR-K2FHA2E.htm
> >
> > Signed-off-by: Fabrizio Castro 
> > Signed-off-by: Lad Prabhakar 
> > ---
> > Apologies for flooding in I missed to add the ML email-ids for the earlier
> > version so resending it.
> >
> > Hi All,
> >
> > This patch is part of series [1] ("Add dual-LVDS panel support to EK874),
> > all the patches have been accepted from it except this one. I have fixed
> > Rob's comments in this version of the patch.
> >
> > [1] https://patchwork.kernel.org/cover/11297589/
> >
> > v6->7
> >  * Added reference to lvds.yaml
> >  * Changed maintainer to myself
> >  * Switched to dual license
> >  * Dropped required properties except for ports as rest are already listed
> >in lvds.panel
> >  * Dropped Reviewed-by tag of Laurent, due to the changes made it might not
> >be valid.
> >
> > v5->v6:
> >  * No change
> >
> > v4->v5:
> > * No change
> >
> > v3->v4:
> > * Absorbed patch "dt-bindings: display: Add bindings for LVDS
> >   bus-timings"
> > * Big restructuring after Rob's and Laurent's comments
> >
> > v2->v3:
> > * New patch
> >
> >  .../display/panel/advantech,idk-2121wr.yaml| 120 
> > +
> >  1 file changed, 120 insertions(+)
> >  create mode 100644 
> > Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml
> >
>
> My bot found errors running 'make dt_binding_check' on your patch:
>
> /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.example.dt.yaml:
>  panel-lvds: 'port' is a required property
> /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.example.dt.yaml:
>  panel-lvds: 'port' is a required property
>
This panel is a dual channel LVDS, as a result the root port is called as
ports instead of port and the child node port@0 and port@1 are used for
even and odd pixels, hence binding has required property as ports instead
of port.

Cheers,
--Prabhakar

> See https://patchwork.ozlabs.org/patch/1250384
> Please check and re-submit.
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


Re: [RESEND PATCH v7] dt-bindings: display: Add idk-2121wr binding

2020-03-10 Thread Lad, Prabhakar
Hi Sam,

On Mon, Mar 9, 2020 at 9:47 PM Sam Ravnborg  wrote:
>
> Hi Prabhakar
>
> On Mon, Mar 09, 2020 at 09:23:24PM +, Lad, Prabhakar wrote:
> > Hi Rob,
> >
> > On Mon, Mar 9, 2020 at 8:32 PM Rob Herring  wrote:
> > >
> > > On Fri,  6 Mar 2020 15:20:31 +, Lad Prabhakar wrote:
> > > > From: Fabrizio Castro 
> > > >
> > > > Add binding for the idk-2121wr LVDS panel from Advantech.
> > > >
> > > > Some panel-specific documentation can be found here:
> > > > https://buy.advantech.eu/Displays/Embedded-LCD-Kits-High-Brightness/model-IDK-2121WR-K2FHA2E.htm
> > > >
> > > > Signed-off-by: Fabrizio Castro 
> > > > Signed-off-by: Lad Prabhakar 
> > > > ---
> > > > Apologies for flooding in I missed to add the ML email-ids for the 
> > > > earlier
> > > > version so resending it.
> > > >
> > > > Hi All,
> > > >
> > > > This patch is part of series [1] ("Add dual-LVDS panel support to 
> > > > EK874),
> > > > all the patches have been accepted from it except this one. I have fixed
> > > > Rob's comments in this version of the patch.
> > > >
> > > > [1] https://patchwork.kernel.org/cover/11297589/
> > > >
> > > > v6->7
> > > >  * Added reference to lvds.yaml
> > > >  * Changed maintainer to myself
> > > >  * Switched to dual license
> > > >  * Dropped required properties except for ports as rest are already 
> > > > listed
> > > >in lvds.panel
> > > >  * Dropped Reviewed-by tag of Laurent, due to the changes made it might 
> > > > not
> > > >be valid.
> > > >
> > > > v5->v6:
> > > >  * No change
> > > >
> > > > v4->v5:
> > > > * No change
> > > >
> > > > v3->v4:
> > > > * Absorbed patch "dt-bindings: display: Add bindings for LVDS
> > > >   bus-timings"
> > > > * Big restructuring after Rob's and Laurent's comments
> > > >
> > > > v2->v3:
> > > > * New patch
> > > >
> > > >  .../display/panel/advantech,idk-2121wr.yaml| 120 
> > > > +
> > > >  1 file changed, 120 insertions(+)
> > > >  create mode 100644 
> > > > Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml
> > > >
> > >
> > > My bot found errors running 'make dt_binding_check' on your patch:
> > >
> > > /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.example.dt.yaml:
> > >  panel-lvds: 'port' is a required property
> > > /builds/robherring/linux-dt-review/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.example.dt.yaml:
> > >  panel-lvds: 'port' is a required property
> > >
> > This panel is a dual channel LVDS, as a result the root port is called as
> > ports instead of port and the child node port@0 and port@1 are used for
> > even and odd pixels, hence binding has required property as ports instead
> > of port.
>
> What goes wrong is that you have a ref to lvds.yaml - and thus you get
> also required from that file.
>
Agreed.

> So basically - I think this binding should not have a ref to lvds.yaml -
> as the binding needs to be different.
>
Yes makes sense, will post a v8 dropping the reference to lvds.yaml

Cheers,
--Prabhakar

> Sam
___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel


[RESEND PATCH v7] dt-bindings: display: Add idk-2121wr binding

2020-03-07 Thread Lad Prabhakar
From: Fabrizio Castro 

Add binding for the idk-2121wr LVDS panel from Advantech.

Some panel-specific documentation can be found here:
https://buy.advantech.eu/Displays/Embedded-LCD-Kits-High-Brightness/model-IDK-2121WR-K2FHA2E.htm

Signed-off-by: Fabrizio Castro 
Signed-off-by: Lad Prabhakar 
---
Apologies for flooding in I missed to add the ML email-ids for the earlier
version so resending it.

Hi All,

This patch is part of series [1] ("Add dual-LVDS panel support to EK874),
all the patches have been accepted from it except this one. I have fixed
Rob's comments in this version of the patch.

[1] https://patchwork.kernel.org/cover/11297589/

v6->7
 * Added reference to lvds.yaml
 * Changed maintainer to myself
 * Switched to dual license
 * Dropped required properties except for ports as rest are already listed
   in lvds.panel
 * Dropped Reviewed-by tag of Laurent, due to the changes made it might not
   be valid.

v5->v6:
 * No change

v4->v5:
* No change

v3->v4:
* Absorbed patch "dt-bindings: display: Add bindings for LVDS
  bus-timings"
* Big restructuring after Rob's and Laurent's comments

v2->v3:
* New patch

 .../display/panel/advantech,idk-2121wr.yaml| 120 +
 1 file changed, 120 insertions(+)
 create mode 100644 
Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml

diff --git 
a/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml 
b/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml
new file mode 100644
index 000..b05df05
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml
@@ -0,0 +1,120 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/panel/advantech,idk-2121wr.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Advantech IDK-2121WR 21.5" Full-HD dual-LVDS panel
+
+maintainers:
+  - Lad Prabhakar 
+  - Thierry Reding 
+
+description: |
+  The IDK-2121WR from Advantech is a Full-HD dual-LVDS panel.
+  A dual-LVDS interface is a dual-link connection with even pixels traveling
+  on one link, and with odd pixels traveling on the other link.
+
+  The panel expects odd pixels on the first port, and even pixels on the
+  second port, therefore the ports must be marked accordingly (with either
+  dual-lvds-odd-pixels or dual-lvds-even-pixels).
+
+allOf:
+  - $ref: lvds.yaml#
+
+properties:
+  compatible:
+items:
+  - const: advantech,idk-2121wr
+  - {} # panel-lvds, but not listed here to avoid false select
+
+  width-mm:
+const: 476
+
+  height-mm:
+const: 268
+
+  data-mapping:
+const: vesa-24
+
+  ports:
+type: object
+properties:
+  port@0:
+type: object
+description: The sink for odd pixels.
+properties:
+  reg:
+const: 0
+
+  dual-lvds-odd-pixels: true
+
+required:
+  - reg
+  - dual-lvds-odd-pixels
+
+  port@1:
+type: object
+description: The sink for even pixels.
+properties:
+  reg:
+const: 1
+
+  dual-lvds-even-pixels: true
+
+required:
+  - reg
+  - dual-lvds-even-pixels
+
+  panel-timing: true
+
+additionalProperties: false
+
+required:
+  - ports
+
+examples:
+  - |+
+panel-lvds {
+  compatible = "advantech,idk-2121wr", "panel-lvds";
+
+  width-mm = <476>;
+  height-mm = <268>;
+
+  data-mapping = "vesa-24";
+
+  panel-timing {
+clock-frequency = <14850>;
+hactive = <1920>;
+vactive = <1080>;
+hsync-len = <44>;
+hfront-porch = <88>;
+hback-porch = <148>;
+vfront-porch = <4>;
+vback-porch = <36>;
+vsync-len = <5>;
+  };
+
+  ports {
+#address-cells = <1>;
+#size-cells = <0>;
+
+port@0 {
+  reg = <0>;
+  dual-lvds-odd-pixels;
+  panel_in0: endpoint {
+remote-endpoint = <&lvds0_out>;
+  };
+};
+
+port@1 {
+  reg = <1>;
+  dual-lvds-even-pixels;
+  panel_in1: endpoint {
+remote-endpoint = <&lvds1_out>;
+  };
+};
+  };
+};
+
+...
-- 
2.7.4

___
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel