Re: [PATCH] drm: renesas: Move RZ/G2L MIPI DSI driver to rz-du
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()
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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