* [PATCH v4 0/2] Add RZ/G2L Display support
@ 2022-07-22 19:13 Biju Das
2022-07-22 19:13 ` [PATCH v4 1/2] dt-bindings: display: Document Renesas RZ/G2L DU bindings Biju Das
2022-07-26 6:03 ` [PATCH v4 0/2] Add RZ/G2L Display support Biju Das
0 siblings, 2 replies; 4+ messages in thread
From: Biju Das @ 2022-07-22 19:13 UTC (permalink / raw)
To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski
Cc: Biju Das, Laurent Pinchart, dri-devel, devicetree,
Geert Uytterhoeven, Chris Paterson, Biju Das,
Prabhakar Mahadev Lad, linux-renesas-soc
RZ/G2L LCD controller composed of Frame compression Processor(FCPVD),
Video signal processor (VSPD) and Display unit(DU). The output of LCDC is
connected to Display parallel interface and MIPI link video interface.
This patch series aims to add basic display support on RZ/G2L SMARC EVK
platform. The output from DSI is connected to ADV7535.
The DU controller is similar to R-Car as it is connected to VSPD,
so most of code is based on R-Car with new CRTC/DRM driver specific to
RZ/G2L
v3->v4:
* Changed compatible name from renesas,du-r9a07g044->renesas,r9a07g044-du
* started using same compatible for RZ/G2{L,LC}
* Removed rzg2l_du_group.h and struct rzg2l_du_group
* Renamed __rzg2l_du_group_start_stop->rzg2l_du_start_stop
* Removed rzg2l_du_group_restart
* Updated rzg2l_du_crtc_set_display_timing
* Removed mode_valid callback.
* Updated rzg2l_du_crtc_create() parameters
* Updated compatible
* Removed RZG2L_DU_MAX_GROUPS
V2->v3:
* Added new bindings for RZ/G2L DU
* Removed indirection and created new DRM driver based on R-Car DU
v1->v2:
* Based on [1], all references to 'rzg2l_lcdc' replaced with 'rzg2l_du'
* Updated commit description for bindings
* Removed LCDC references from bindings
* Changed clock name from du.0->aclk from bindings
* Changed reset name from du.0->du from bindings
* Replaced crtc_helper_funcs->rcar_crtc_helper_funcs
* Updated macro DRM_RZG2L_LCDC->DRM_RZG2L_DU
* Replaced rzg2l-lcdc-drm->rzg2l-du-drm
* Added forward declaration for struct reset_control
[1] https://patchwork.kernel.org/project/linux-renesas-soc/patch/20220312084205.31462-2-biju.das.jz@bp.renesas.com/
RFC->v1:
* Changed minItems->maxItems for renesas,vsps.
* Added RZ/G2L LCDC driver with special handling for CRTC reusing
most of RCar DU code
* Fixed the comments for num_rpf from rpf's->RPFs/ and vsp->VSP.
RFC:
https://patchwork.kernel.org/project/linux-renesas-soc/patch/20220112174612.10773-18-biju.das.jz@bp.renesas.com/
https://patchwork.kernel.org/project/linux-renesas-soc/patch/20220112174612.10773-12-biju.das.jz@bp.renesas.com/
https://patchwork.kernel.org/project/linux-renesas-soc/patch/20220112174612.10773-13-biju.das.jz@bp.renesas.com/
https://patchwork.kernel.org/project/linux-renesas-soc/patch/20220112174612.10773-19-biju.das.jz@bp.renesas.com/
Modetest output:-
root@smarc-rzg2l:~# modetest -M rzg2l-du
Encoders:
id crtc type possible crtcs possible clones
40 39 none 0x00000001 0x00000001
42 0 Virtual 0x00000001 0x00000002
Connectors:
id encoder status name size (mm) modes encoders
41 40 connected HDMI-A-1 520x320 29 40
modes:
index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
#0 1920x1080 59.72 1920 1968 2000 2080 1080 1082 1087 1111 138000 flags: phsync, nvsync; type: preferred, driver
#1 1920x1080 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500 flags: phsync, pvsync; type: driver
#2 1920x1080 59.94 1920 2008 2052 2200 1080 1084 1089 1125 148352 flags: phsync, pvsync; type: driver
#3 1920x1080 59.94 1920 2008 2052 2200 1080 1084 1089 1125 148352 flags: phsync, pvsync; type: driver
#4 1280x1024 75.02 1280 1296 1440 1688 1024 1025 1028 1066 135000 flags: phsync, pvsync; type: driver
#5 1280x1024 60.02 1280 1328 1440 1688 1024 1025 1028 1066 108000 flags: phsync, pvsync; type: driver
#6 1152x864 75.00 1152 1216 1344 1600 864 865 868 900 108000 flags: phsync, pvsync; type: driver
#7 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags: phsync, pvsync; type: driver
#8 1280x720 59.94 1280 1390 1430 1650 720 725 730 750 74176 flags: phsync, pvsync; type: driver
#9 1280x720 50.00 1280 1720 1760 1980 720 725 730 750 74250 flags: phsync, pvsync; type: driver
#10 1280x720 50.00 1280 1720 1760 1980 720 725 730 750 74250 flags: phsync, pvsync; type: driver
#11 1024x768 75.03 1024 1040 1136 1312 768 769 772 800 78750 flags: phsync, pvsync; type: driver
#12 1024x768 70.07 1024 1048 1184 1328 768 771 777 806 75000 flags: nhsync, nvsync; type: driver
#13 1024x768 60.00 1024 1048 1184 1344 768 771 777 806 65000 flags: nhsync, nvsync; type: driver
#14 832x624 74.55 832 864 928 1152 624 625 628 667 57284 flags: nhsync, nvsync; type: driver
#15 800x600 75.00 800 816 896 1056 600 601 604 625 49500 flags: phsync, pvsync; type: driver
#16 800x600 72.19 800 856 976 1040 600 637 643 666 50000 flags: phsync, pvsync; type: driver
#17 800x600 60.32 800 840 968 1056 600 601 605 628 40000 flags: phsync, pvsync; type: driver
#18 800x600 56.25 800 824 896 1024 600 601 603 625 36000 flags: phsync, pvsync; type: driver
#19 720x576 50.00 720 732 796 864 576 581 586 625 27000 flags: nhsync, nvsync; type: driver
#20 720x576 50.00 720 732 796 864 576 581 586 625 27000 flags: nhsync, nvsync; type: driver
#21 720x480 60.00 720 736 798 858 480 489 495 525 27027 flags: nhsync, nvsync; type: driver
#22 720x480 59.94 720 736 798 858 480 489 495 525 27000 flags: nhsync, nvsync; type: driver
#23 640x480 75.00 640 656 720 840 480 481 484 500 31500 flags: nhsync, nvsync; type: driver
#24 640x480 72.81 640 664 704 832 480 489 492 520 31500 flags: nhsync, nvsync; type: driver
#25 640x480 66.67 640 704 768 864 480 483 486 525 30240 flags: nhsync, nvsync; type: driver
#26 640x480 60.00 640 656 752 800 480 490 492 525 25200 flags: nhsync, nvsync; type: driver
#27 640x480 59.94 640 656 752 800 480 490 492 525 25175 flags: nhsync, nvsync; type: driver
#28 720x400 70.08 720 738 846 900 400 412 414 449 28320 flags: nhsync, pvsync; type: driver
props:
1 EDID:
flags: immutable blob
blobs:
value:
00ffffffffffff003683832410101010
1416010380342078eeb725ac5130b426
105054bfef8068c0714f818001010101
010101010101e83580a070381f403020
250044682100001a000000ff00303031
30310a20202020202020000000fc0048
444d490a2020202020202020000000fd
00384c1e5317000a20202020202001cf
02031a71471003140513841223090707
8301000065030c0010008c0ad0902040
31200c40550036d431000018011d8018
711c1620582c250036d43100009e011d
80d0721c1620102c258036d43100009e
011d00bc52d01e20b828554036d43100
001ef339801871382d40582c4500c48e
2100001e000000000000000000000054
2 DPMS:
flags: enum
enums: On=0 Standby=1 Suspend=2 Off=3
value: 0
5 link-status:
flags: enum
enums: Good=0 Bad=1
value: 0
6 non-desktop:
flags: immutable range
values: 0 1
value: 0
4 TILE:
flags: immutable blob
blobs:
value:
20 CRTC_ID:
flags: object
value: 39
CRTCs:
id fb pos size
39 49 (0,0) (1920x1080)
#0 1920x1080 59.72 1920 1968 2000 2080 1080 1082 1087 1111 138000 flags: phsync, nvsync; type: preferred, driver
props:
22 ACTIVE:
flags: range
values: 0 1
value: 1
23 MODE_ID:
flags: blob
blobs:
value:
101b02008007b007d007200800003804
3a043f04570400003c00000009000000
48000000313932307831303830000000
00000000000000000000000000000000
00000000
19 OUT_FENCE_PTR:
flags: range
values: 0 18446744073709551615
value: 0
24 VRR_ENABLED:
flags: range
values: 0 1
value: 0
Planes:
id crtc fb CRTC x,y x,y gamma size possible crtcs
32 39 49 0,0 0,0 0 0x00000001
formats: RGB8 AR12 XR12 AR15 XR15 RG16 BG24 RG24 BA24 BX24 AR24 XR24 UYVY YUYV YVYU NV12 NV21 NV16 NV61 YU12 YV12 YU16 YV16 YU24 YV24
props:
8 type:
flags: immutable enum
enums: Overlay=0 Primary=1 Cursor=2
value: 1
17 FB_ID:
flags: object
value: 49
18 IN_FENCE_FD:
flags: signed range
values: -1 2147483647
value: -1
20 CRTC_ID:
flags: object
value: 39
13 CRTC_X:
flags: signed range
values: -2147483648 2147483647
value: 0
14 CRTC_Y:
flags: signed range
values: -2147483648 2147483647
value: 0
15 CRTC_W:
flags: range
values: 0 2147483647
value: 1920
16 CRTC_H:
flags: range
values: 0 2147483647
value: 1080
9 SRC_X:
flags: range
values: 0 4294967295
value: 0
10 SRC_Y:
flags: range
values: 0 4294967295
value: 0
11 SRC_W:
flags: range
values: 0 4294967295
value: 125829120
12 SRC_H:
flags: range
values: 0 4294967295
value: 70778880
30 IN_FORMATS:
flags: immutable blob
blobs:
value:
01000000000000001900000018000000
01000000800000005247423841523132
58523132415231355852313552473136
42473234524732344241323442583234
41523234585232345559565959555956
595659554e5631324e5632314e563136
4e563631595531325956313259553136
59563136595532345956323400000000
ffffff01000000000000000000000000
0000000000000000
in_formats blob decoded:
RGB8: LINEAR
AR12: LINEAR
XR12: LINEAR
AR15: LINEAR
XR15: LINEAR
RG16: LINEAR
BG24: LINEAR
RG24: LINEAR
BA24: LINEAR
BX24: LINEAR
AR24: LINEAR
XR24: LINEAR
UYVY: LINEAR
YUYV: LINEAR
YVYU: LINEAR
NV12: LINEAR
NV21: LINEAR
NV16: LINEAR
NV61: LINEAR
YU12: LINEAR
YV12: LINEAR
YU16: LINEAR
YV16: LINEAR
YU24: LINEAR
YV24: LINEAR
34 zpos:
flags: immutable range
values: 0 0
value: 0
35 0 0 0,0 0,0 0 0x00000001
formats: RGB8 AR12 XR12 AR15 XR15 RG16 BG24 RG24 BA24 BX24 AR24 XR24 UYVY YUYV YVYU NV12 NV21 NV16 NV61 YU12 YV12 YU16 YV16 YU24 YV24
props:
8 type:
flags: immutable enum
enums: Overlay=0 Primary=1 Cursor=2
value: 0
17 FB_ID:
flags: object
value: 0
18 IN_FENCE_FD:
flags: signed range
values: -1 2147483647
value: -1
20 CRTC_ID:
flags: object
value: 0
13 CRTC_X:
flags: signed range
values: -2147483648 2147483647
value: 0
14 CRTC_Y:
flags: signed range
values: -2147483648 2147483647
value: 0
15 CRTC_W:
flags: range
values: 0 2147483647
value: 0
16 CRTC_H:
flags: range
values: 0 2147483647
value: 0
9 SRC_X:
flags: range
values: 0 4294967295
value: 0
10 SRC_Y:
flags: range
values: 0 4294967295
value: 0
11 SRC_W:
flags: range
values: 0 4294967295
value: 0
12 SRC_H:
flags: range
values: 0 4294967295
value: 0
30 IN_FORMATS:
flags: immutable blob
blobs:
value:
01000000000000001900000018000000
01000000800000005247423841523132
58523132415231355852313552473136
42473234524732344241323442583234
41523234585232345559565959555956
595659554e5631324e5632314e563136
4e563631595531325956313259553136
59563136595532345956323400000000
ffffff01000000000000000000000000
0000000000000000
in_formats blob decoded:
RGB8: LINEAR
AR12: LINEAR
XR12: LINEAR
AR15: LINEAR
XR15: LINEAR
RG16: LINEAR
BG24: LINEAR
RG24: LINEAR
BA24: LINEAR
BX24: LINEAR
AR24: LINEAR
XR24: LINEAR
UYVY: LINEAR
YUYV: LINEAR
YVYU: LINEAR
NV12: LINEAR
NV21: LINEAR
NV16: LINEAR
NV61: LINEAR
YU12: LINEAR
YV12: LINEAR
YU16: LINEAR
YV16: LINEAR
YU24: LINEAR
YV24: LINEAR
37 alpha:
flags: range
values: 0 65535
value: 65535
38 zpos:
flags: range
values: 1 1
value: 1
Frame buffers:
id size pitch
Biju Das (2):
dt-bindings: display: Document Renesas RZ/G2L DU bindings
drm: rcar-du: Add RZ/G2L DU Support
.../bindings/display/renesas,rzg2l-du.yaml | 124 +++
drivers/gpu/drm/rcar-du/Kconfig | 16 +-
drivers/gpu/drm/rcar-du/Makefile | 9 +
drivers/gpu/drm/rcar-du/rzg2l_du_crtc.c | 718 +++++++++++++++++
drivers/gpu/drm/rcar-du/rzg2l_du_crtc.h | 100 +++
drivers/gpu/drm/rcar-du/rzg2l_du_drv.c | 192 +++++
drivers/gpu/drm/rcar-du/rzg2l_du_drv.h | 99 +++
drivers/gpu/drm/rcar-du/rzg2l_du_encoder.c | 114 +++
drivers/gpu/drm/rcar-du/rzg2l_du_encoder.h | 29 +
drivers/gpu/drm/rcar-du/rzg2l_du_kms.c | 756 ++++++++++++++++++
drivers/gpu/drm/rcar-du/rzg2l_du_kms.h | 43 +
drivers/gpu/drm/rcar-du/rzg2l_du_regs.h | 67 ++
drivers/gpu/drm/rcar-du/rzg2l_du_vsp.c | 422 ++++++++++
drivers/gpu/drm/rcar-du/rzg2l_du_vsp.h | 93 +++
drivers/gpu/drm/rcar-du/rzg2l_du_writeback.c | 250 ++++++
drivers/gpu/drm/rcar-du/rzg2l_du_writeback.h | 42 +
16 files changed, 3073 insertions(+), 1 deletion(-)
create mode 100644 Documentation/devicetree/bindings/display/renesas,rzg2l-du.yaml
create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_crtc.c
create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_crtc.h
create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_drv.c
create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_drv.h
create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_encoder.c
create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_encoder.h
create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_kms.c
create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_kms.h
create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_regs.h
create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_vsp.c
create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_vsp.h
create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_writeback.c
create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_writeback.h
--
2.25.1
^ permalink raw reply [flat|nested] 4+ messages in thread* [PATCH v4 1/2] dt-bindings: display: Document Renesas RZ/G2L DU bindings
2022-07-22 19:13 [PATCH v4 0/2] Add RZ/G2L Display support Biju Das
@ 2022-07-22 19:13 ` Biju Das
2022-07-25 23:11 ` Rob Herring
2022-07-26 6:03 ` [PATCH v4 0/2] Add RZ/G2L Display support Biju Das
1 sibling, 1 reply; 4+ messages in thread
From: Biju Das @ 2022-07-22 19:13 UTC (permalink / raw)
To: David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski
Cc: Biju Das, Laurent Pinchart, dri-devel, devicetree,
Geert Uytterhoeven, Chris Paterson, Biju Das,
Prabhakar Mahadev Lad, linux-renesas-soc
The RZ/G2L LCD controller is composed of Frame Compression Processor
(FCPVD), Video Signal Processor (VSPD), and Display Unit (DU).
The DU module supports the following hardware features
− Display Parallel Interface (DPI) and MIPI LINK Video Interface
− Display timing master
− Generates video timings
− Selecting the polarity of output DCLK, HSYNC, VSYNC, and DE
− Supports Progressive
− Input data format (from VSPD): RGB888, RGB666
− Output data format: same as Input data format
− Supporting Full HD (1920 pixels x 1080 lines) for MIPI-DSI Output
− Supporting WXGA (1280 pixels x 800 lines) for Parallel Output
This patch document DU module found on RZ/G2L LCDC.
Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v3->v4:
* Changed compatible name from renesas,du-r9a07g044->renesas,r9a07g044-du
* started using same compatible for RZ/G2{L,LC}
v3: New patch
---
.../bindings/display/renesas,rzg2l-du.yaml | 124 ++++++++++++++++++
1 file changed, 124 insertions(+)
create mode 100644 Documentation/devicetree/bindings/display/renesas,rzg2l-du.yaml
diff --git a/Documentation/devicetree/bindings/display/renesas,rzg2l-du.yaml b/Documentation/devicetree/bindings/display/renesas,rzg2l-du.yaml
new file mode 100644
index 000000000000..7626043debd8
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/renesas,rzg2l-du.yaml
@@ -0,0 +1,124 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/renesas,rzg2l-du.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Renesas RZ/G2L Display Unit (DU)
+
+maintainers:
+ - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
+ - Biju Das <biju.das.jz@bp.renesas.com>
+
+description: |
+ These DT bindings describe the Display Unit embedded in the Renesas RZ/G2L
+ and RZ/V2L SoCs.
+
+properties:
+ compatible:
+ enum:
+ - renesas,r9a07g044-du # RZ/G2{L,LC}
+
+ reg:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+ clocks:
+ items:
+ - description: Main clock
+ - description: Register access clock
+ - description: Video clock
+
+ clock-names:
+ items:
+ - const: aclk
+ - const: pclk
+ - const: vclk
+
+ resets:
+ maxItems: 1
+
+ power-domains:
+ maxItems: 1
+
+ ports:
+ $ref: /schemas/graph.yaml#/properties/ports
+ description: |
+ The connections to the DU output video ports are modeled using the OF
+ graph bindings specified in Documentation/devicetree/bindings/graph.txt.
+ The number of ports and their assignment are model-dependent. Each port
+ shall have a single endpoint.
+
+ patternProperties:
+ "^port@[0-1]$":
+ $ref: /schemas/graph.yaml#/properties/port
+ unevaluatedProperties: false
+
+ required:
+ - port@0
+
+ unevaluatedProperties: false
+
+ renesas,vsps:
+ $ref: "/schemas/types.yaml#/definitions/phandle-array"
+ items:
+ items:
+ - description: phandle to VSP instance that serves the DU channel
+ - description: Channel index identifying the LIF instance in that VSP
+ description:
+ A list of phandle and channel index tuples to the VSPs that handle the
+ memory interfaces for the DU channels.
+
+required:
+ - compatible
+ - reg
+ - interrupts
+ - clocks
+ - clock-names
+ - resets
+ - power-domains
+ - ports
+ - renesas,vsps
+
+additionalProperties: false
+
+examples:
+ # RZ/G2L DU
+ - |
+ #include <dt-bindings/clock/r9a07g044-cpg.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+
+ display@10890000 {
+ compatible = "renesas,r9a07g044-du";
+ reg = <0x10890000 0x10000>;
+ interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cpg CPG_MOD R9A07G044_LCDC_CLK_A>,
+ <&cpg CPG_MOD R9A07G044_LCDC_CLK_P>,
+ <&cpg CPG_MOD R9A07G044_LCDC_CLK_D>;
+ clock-names = "aclk", "pclk", "vclk";
+ resets = <&cpg R9A07G044_LCDC_RESET_N>;
+ power-domains = <&cpg>;
+
+ renesas,vsps = <&vspd0 0>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ endpoint {
+ remote-endpoint = <&dsi0_in>;
+ };
+ };
+ port@1 {
+ reg = <1>;
+ endpoint {
+ };
+ };
+ };
+ };
+
+...
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH v4 1/2] dt-bindings: display: Document Renesas RZ/G2L DU bindings
2022-07-22 19:13 ` [PATCH v4 1/2] dt-bindings: display: Document Renesas RZ/G2L DU bindings Biju Das
@ 2022-07-25 23:11 ` Rob Herring
0 siblings, 0 replies; 4+ messages in thread
From: Rob Herring @ 2022-07-25 23:11 UTC (permalink / raw)
To: Biju Das
Cc: dri-devel, Laurent Pinchart, Rob Herring, Geert Uytterhoeven,
Chris Paterson, Krzysztof Kozlowski, devicetree,
linux-renesas-soc, Prabhakar Mahadev Lad, Daniel Vetter, Biju Das,
David Airlie
On Fri, 22 Jul 2022 20:13:52 +0100, Biju Das wrote:
> The RZ/G2L LCD controller is composed of Frame Compression Processor
> (FCPVD), Video Signal Processor (VSPD), and Display Unit (DU).
>
> The DU module supports the following hardware features
> − Display Parallel Interface (DPI) and MIPI LINK Video Interface
> − Display timing master
> − Generates video timings
> − Selecting the polarity of output DCLK, HSYNC, VSYNC, and DE
> − Supports Progressive
> − Input data format (from VSPD): RGB888, RGB666
> − Output data format: same as Input data format
> − Supporting Full HD (1920 pixels x 1080 lines) for MIPI-DSI Output
> − Supporting WXGA (1280 pixels x 800 lines) for Parallel Output
>
> This patch document DU module found on RZ/G2L LCDC.
>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
> v3->v4:
> * Changed compatible name from renesas,du-r9a07g044->renesas,r9a07g044-du
> * started using same compatible for RZ/G2{L,LC}
> v3: New patch
> ---
> .../bindings/display/renesas,rzg2l-du.yaml | 124 ++++++++++++++++++
> 1 file changed, 124 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/display/renesas,rzg2l-du.yaml
>
Reviewed-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: [PATCH v4 0/2] Add RZ/G2L Display support
2022-07-22 19:13 [PATCH v4 0/2] Add RZ/G2L Display support Biju Das
2022-07-22 19:13 ` [PATCH v4 1/2] dt-bindings: display: Document Renesas RZ/G2L DU bindings Biju Das
@ 2022-07-26 6:03 ` Biju Das
1 sibling, 0 replies; 4+ messages in thread
From: Biju Das @ 2022-07-26 6:03 UTC (permalink / raw)
To: Biju Das, David Airlie, Daniel Vetter, Rob Herring,
Krzysztof Kozlowski, Laurent Pinchart
Cc: dri-devel@lists.freedesktop.org, devicetree@vger.kernel.org,
Geert Uytterhoeven, Chris Paterson, Biju Das,
Prabhakar Mahadev Lad, linux-renesas-soc@vger.kernel.org
Hi Laurent and all,
I have prototyped the RZ/G2L DU driver with a library that shares the common code
between R-Car and RZ/G2L Du drivers.
Looks like the total patches is now more than 20.
So planning to send the same with batches of 2-3 small series in order to make
review simpler.
Cheers,
Biju
> Subject: [PATCH v4 0/2] Add RZ/G2L Display support
>
> RZ/G2L LCD controller composed of Frame compression Processor(FCPVD),
> Video signal processor (VSPD) and Display unit(DU). The output of LCDC
> is connected to Display parallel interface and MIPI link video
> interface.
>
> This patch series aims to add basic display support on RZ/G2L SMARC EVK
> platform. The output from DSI is connected to ADV7535.
>
> The DU controller is similar to R-Car as it is connected to VSPD, so
> most of code is based on R-Car with new CRTC/DRM driver specific to
> RZ/G2L
>
> v3->v4:
> * Changed compatible name from renesas,du-r9a07g044->renesas,r9a07g044-
> du
> * started using same compatible for RZ/G2{L,LC}
> * Removed rzg2l_du_group.h and struct rzg2l_du_group
> * Renamed __rzg2l_du_group_start_stop->rzg2l_du_start_stop
> * Removed rzg2l_du_group_restart
> * Updated rzg2l_du_crtc_set_display_timing
> * Removed mode_valid callback.
> * Updated rzg2l_du_crtc_create() parameters
> * Updated compatible
> * Removed RZG2L_DU_MAX_GROUPS
> V2->v3:
> * Added new bindings for RZ/G2L DU
> * Removed indirection and created new DRM driver based on R-Car DU
> v1->v2:
> * Based on [1], all references to 'rzg2l_lcdc' replaced with 'rzg2l_du'
> * Updated commit description for bindings
> * Removed LCDC references from bindings
> * Changed clock name from du.0->aclk from bindings
> * Changed reset name from du.0->du from bindings
> * Replaced crtc_helper_funcs->rcar_crtc_helper_funcs
> * Updated macro DRM_RZG2L_LCDC->DRM_RZG2L_DU
> * Replaced rzg2l-lcdc-drm->rzg2l-du-drm
> * Added forward declaration for struct reset_control
>
> [1]
>
> RFC->v1:
> * Changed minItems->maxItems for renesas,vsps.
> * Added RZ/G2L LCDC driver with special handling for CRTC reusing
> most of RCar DU code
> * Fixed the comments for num_rpf from rpf's->RPFs/ and vsp->VSP.
> RFC:
> Modetest output:-
> root@smarc-rzg2l:~# modetest -M rzg2l-du
> Encoders:
> id crtc type possible crtcs possible clones
> 40 39 none 0x00000001 0x00000001
> 42 0 Virtual 0x00000001 0x00000002
>
> Connectors:
> id encoder status name size (mm) modes
> encoders
> 41 40 connected HDMI-A-1 520x320 29
> 40
> modes:
> index name refresh (Hz) hdisp hss hse htot vdisp vss vse vtot)
> #0 1920x1080 59.72 1920 1968 2000 2080 1080 1082 1087 1111 138000
> flags: phsync, nvsync; type: preferred, driver
> #1 1920x1080 60.00 1920 2008 2052 2200 1080 1084 1089 1125 148500
> flags: phsync, pvsync; type: driver
> #2 1920x1080 59.94 1920 2008 2052 2200 1080 1084 1089 1125 148352
> flags: phsync, pvsync; type: driver
> #3 1920x1080 59.94 1920 2008 2052 2200 1080 1084 1089 1125 148352
> flags: phsync, pvsync; type: driver
> #4 1280x1024 75.02 1280 1296 1440 1688 1024 1025 1028 1066 135000
> flags: phsync, pvsync; type: driver
> #5 1280x1024 60.02 1280 1328 1440 1688 1024 1025 1028 1066 108000
> flags: phsync, pvsync; type: driver
> #6 1152x864 75.00 1152 1216 1344 1600 864 865 868 900 108000 flags:
> phsync, pvsync; type: driver
> #7 1280x720 60.00 1280 1390 1430 1650 720 725 730 750 74250 flags:
> phsync, pvsync; type: driver
> #8 1280x720 59.94 1280 1390 1430 1650 720 725 730 750 74176 flags:
> phsync, pvsync; type: driver
> #9 1280x720 50.00 1280 1720 1760 1980 720 725 730 750 74250 flags:
> phsync, pvsync; type: driver
> #10 1280x720 50.00 1280 1720 1760 1980 720 725 730 750 74250 flags:
> phsync, pvsync; type: driver
> #11 1024x768 75.03 1024 1040 1136 1312 768 769 772 800 78750 flags:
> phsync, pvsync; type: driver
> #12 1024x768 70.07 1024 1048 1184 1328 768 771 777 806 75000 flags:
> nhsync, nvsync; type: driver
> #13 1024x768 60.00 1024 1048 1184 1344 768 771 777 806 65000 flags:
> nhsync, nvsync; type: driver
> #14 832x624 74.55 832 864 928 1152 624 625 628 667 57284 flags:
> nhsync, nvsync; type: driver
> #15 800x600 75.00 800 816 896 1056 600 601 604 625 49500 flags:
> phsync, pvsync; type: driver
> #16 800x600 72.19 800 856 976 1040 600 637 643 666 50000 flags:
> phsync, pvsync; type: driver
> #17 800x600 60.32 800 840 968 1056 600 601 605 628 40000 flags:
> phsync, pvsync; type: driver
> #18 800x600 56.25 800 824 896 1024 600 601 603 625 36000 flags:
> phsync, pvsync; type: driver
> #19 720x576 50.00 720 732 796 864 576 581 586 625 27000 flags: nhsync,
> nvsync; type: driver
> #20 720x576 50.00 720 732 796 864 576 581 586 625 27000 flags: nhsync,
> nvsync; type: driver
> #21 720x480 60.00 720 736 798 858 480 489 495 525 27027 flags: nhsync,
> nvsync; type: driver
> #22 720x480 59.94 720 736 798 858 480 489 495 525 27000 flags: nhsync,
> nvsync; type: driver
> #23 640x480 75.00 640 656 720 840 480 481 484 500 31500 flags: nhsync,
> nvsync; type: driver
> #24 640x480 72.81 640 664 704 832 480 489 492 520 31500 flags: nhsync,
> nvsync; type: driver
> #25 640x480 66.67 640 704 768 864 480 483 486 525 30240 flags: nhsync,
> nvsync; type: driver
> #26 640x480 60.00 640 656 752 800 480 490 492 525 25200 flags: nhsync,
> nvsync; type: driver
> #27 640x480 59.94 640 656 752 800 480 490 492 525 25175 flags: nhsync,
> nvsync; type: driver
> #28 720x400 70.08 720 738 846 900 400 412 414 449 28320 flags: nhsync,
> pvsync; type: driver
> props:
> 1 EDID:
> flags: immutable blob
> blobs:
>
> value:
> 00ffffffffffff003683832410101010
> 1416010380342078eeb725ac5130b426
> 105054bfef8068c0714f818001010101
> 010101010101e83580a070381f403020
> 250044682100001a000000ff00303031
> 30310a20202020202020000000fc0048
> 444d490a2020202020202020000000fd
> 00384c1e5317000a20202020202001cf
> 02031a71471003140513841223090707
> 8301000065030c0010008c0ad0902040
> 31200c40550036d431000018011d8018
> 711c1620582c250036d43100009e011d
> 80d0721c1620102c258036d43100009e
> 011d00bc52d01e20b828554036d43100
> 001ef339801871382d40582c4500c48e
> 2100001e000000000000000000000054
> 2 DPMS:
> flags: enum
> enums: On=0 Standby=1 Suspend=2 Off=3
> value: 0
> 5 link-status:
> flags: enum
> enums: Good=0 Bad=1
> value: 0
> 6 non-desktop:
> flags: immutable range
> values: 0 1
> value: 0
> 4 TILE:
> flags: immutable blob
> blobs:
>
> value:
> 20 CRTC_ID:
> flags: object
> value: 39
>
> CRTCs:
> id fb pos size
> 39 49 (0,0) (1920x1080)
> #0 1920x1080 59.72 1920 1968 2000 2080 1080 1082 1087 1111 138000
> flags: phsync, nvsync; type: preferred, driver
> props:
> 22 ACTIVE:
> flags: range
> values: 0 1
> value: 1
> 23 MODE_ID:
> flags: blob
> blobs:
>
> value:
> 101b02008007b007d007200800003804
> 3a043f04570400003c00000009000000
> 48000000313932307831303830000000
> 00000000000000000000000000000000
> 00000000
> 19 OUT_FENCE_PTR:
> flags: range
> values: 0 18446744073709551615
> value: 0
> 24 VRR_ENABLED:
> flags: range
> values: 0 1
> value: 0
>
> Planes:
> id crtc fb CRTC x,y x,y gamma size possible
> crtcs
> 32 39 49 0,0 0,0 0
> 0x00000001
> formats: RGB8 AR12 XR12 AR15 XR15 RG16 BG24 RG24 BA24 BX24 AR24 XR24
> UYVY YUYV YVYU NV12 NV21 NV16 NV61 YU12 YV12 YU16 YV16 YU24 YV24
> props:
> 8 type:
> flags: immutable enum
> enums: Overlay=0 Primary=1 Cursor=2
> value: 1
> 17 FB_ID:
> flags: object
> value: 49
> 18 IN_FENCE_FD:
> flags: signed range
> values: -1 2147483647
> value: -1
> 20 CRTC_ID:
> flags: object
> value: 39
> 13 CRTC_X:
> flags: signed range
> values: -2147483648 2147483647
> value: 0
> 14 CRTC_Y:
> flags: signed range
> values: -2147483648 2147483647
> value: 0
> 15 CRTC_W:
> flags: range
> values: 0 2147483647
> value: 1920
> 16 CRTC_H:
> flags: range
> values: 0 2147483647
> value: 1080
> 9 SRC_X:
> flags: range
> values: 0 4294967295
> value: 0
> 10 SRC_Y:
> flags: range
> values: 0 4294967295
> value: 0
> 11 SRC_W:
> flags: range
> values: 0 4294967295
> value: 125829120
> 12 SRC_H:
> flags: range
> values: 0 4294967295
> value: 70778880
> 30 IN_FORMATS:
> flags: immutable blob
> blobs:
>
> value:
> 01000000000000001900000018000000
> 01000000800000005247423841523132
> 58523132415231355852313552473136
> 42473234524732344241323442583234
> 41523234585232345559565959555956
> 595659554e5631324e5632314e563136
> 4e563631595531325956313259553136
> 59563136595532345956323400000000
> ffffff01000000000000000000000000
> 0000000000000000
> in_formats blob decoded:
> RGB8: LINEAR
> AR12: LINEAR
> XR12: LINEAR
> AR15: LINEAR
> XR15: LINEAR
> RG16: LINEAR
> BG24: LINEAR
> RG24: LINEAR
> BA24: LINEAR
> BX24: LINEAR
> AR24: LINEAR
> XR24: LINEAR
> UYVY: LINEAR
> YUYV: LINEAR
> YVYU: LINEAR
> NV12: LINEAR
> NV21: LINEAR
> NV16: LINEAR
> NV61: LINEAR
> YU12: LINEAR
> YV12: LINEAR
> YU16: LINEAR
> YV16: LINEAR
> YU24: LINEAR
> YV24: LINEAR
> 34 zpos:
> flags: immutable range
> values: 0 0
> value: 0
> 35 0 0 0,0 0,0 0
> 0x00000001
> formats: RGB8 AR12 XR12 AR15 XR15 RG16 BG24 RG24 BA24 BX24 AR24 XR24
> UYVY YUYV YVYU NV12 NV21 NV16 NV61 YU12 YV12 YU16 YV16 YU24 YV24
> props:
> 8 type:
> flags: immutable enum
> enums: Overlay=0 Primary=1 Cursor=2
> value: 0
> 17 FB_ID:
> flags: object
> value: 0
> 18 IN_FENCE_FD:
> flags: signed range
> values: -1 2147483647
> value: -1
> 20 CRTC_ID:
> flags: object
> value: 0
> 13 CRTC_X:
> flags: signed range
> values: -2147483648 2147483647
> value: 0
> 14 CRTC_Y:
> flags: signed range
> values: -2147483648 2147483647
> value: 0
> 15 CRTC_W:
> flags: range
> values: 0 2147483647
> value: 0
> 16 CRTC_H:
> flags: range
> values: 0 2147483647
> value: 0
> 9 SRC_X:
> flags: range
> values: 0 4294967295
> value: 0
> 10 SRC_Y:
> flags: range
> values: 0 4294967295
> value: 0
> 11 SRC_W:
> flags: range
> values: 0 4294967295
> value: 0
> 12 SRC_H:
> flags: range
> values: 0 4294967295
> value: 0
> 30 IN_FORMATS:
> flags: immutable blob
> blobs:
>
> value:
> 01000000000000001900000018000000
> 01000000800000005247423841523132
> 58523132415231355852313552473136
> 42473234524732344241323442583234
> 41523234585232345559565959555956
> 595659554e5631324e5632314e563136
> 4e563631595531325956313259553136
> 59563136595532345956323400000000
> ffffff01000000000000000000000000
> 0000000000000000
> in_formats blob decoded:
> RGB8: LINEAR
> AR12: LINEAR
> XR12: LINEAR
> AR15: LINEAR
> XR15: LINEAR
> RG16: LINEAR
> BG24: LINEAR
> RG24: LINEAR
> BA24: LINEAR
> BX24: LINEAR
> AR24: LINEAR
> XR24: LINEAR
> UYVY: LINEAR
> YUYV: LINEAR
> YVYU: LINEAR
> NV12: LINEAR
> NV21: LINEAR
> NV16: LINEAR
> NV61: LINEAR
> YU12: LINEAR
> YV12: LINEAR
> YU16: LINEAR
> YV16: LINEAR
> YU24: LINEAR
> YV24: LINEAR
> 37 alpha:
> flags: range
> values: 0 65535
> value: 65535
> 38 zpos:
> flags: range
> values: 1 1
> value: 1
>
> Frame buffers:
> id size pitch
>
>
> Biju Das (2):
> dt-bindings: display: Document Renesas RZ/G2L DU bindings
> drm: rcar-du: Add RZ/G2L DU Support
>
> .../bindings/display/renesas,rzg2l-du.yaml | 124 +++
> drivers/gpu/drm/rcar-du/Kconfig | 16 +-
> drivers/gpu/drm/rcar-du/Makefile | 9 +
> drivers/gpu/drm/rcar-du/rzg2l_du_crtc.c | 718 +++++++++++++++++
> drivers/gpu/drm/rcar-du/rzg2l_du_crtc.h | 100 +++
> drivers/gpu/drm/rcar-du/rzg2l_du_drv.c | 192 +++++
> drivers/gpu/drm/rcar-du/rzg2l_du_drv.h | 99 +++
> drivers/gpu/drm/rcar-du/rzg2l_du_encoder.c | 114 +++
> drivers/gpu/drm/rcar-du/rzg2l_du_encoder.h | 29 +
> drivers/gpu/drm/rcar-du/rzg2l_du_kms.c | 756 ++++++++++++++++++
> drivers/gpu/drm/rcar-du/rzg2l_du_kms.h | 43 +
> drivers/gpu/drm/rcar-du/rzg2l_du_regs.h | 67 ++
> drivers/gpu/drm/rcar-du/rzg2l_du_vsp.c | 422 ++++++++++
> drivers/gpu/drm/rcar-du/rzg2l_du_vsp.h | 93 +++
> drivers/gpu/drm/rcar-du/rzg2l_du_writeback.c | 250 ++++++
> drivers/gpu/drm/rcar-du/rzg2l_du_writeback.h | 42 +
> 16 files changed, 3073 insertions(+), 1 deletion(-) create mode 100644
> Documentation/devicetree/bindings/display/renesas,rzg2l-du.yaml
> create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_crtc.c
> create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_crtc.h
> create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_drv.c
> create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_drv.h
> create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_encoder.c
> create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_encoder.h
> create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_kms.c
> create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_kms.h
> create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_regs.h
> create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_vsp.c
> create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_vsp.h
> create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_writeback.c
> create mode 100644 drivers/gpu/drm/rcar-du/rzg2l_du_writeback.h
>
> --
> 2.25.1
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-07-26 6:03 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-22 19:13 [PATCH v4 0/2] Add RZ/G2L Display support Biju Das
2022-07-22 19:13 ` [PATCH v4 1/2] dt-bindings: display: Document Renesas RZ/G2L DU bindings Biju Das
2022-07-25 23:11 ` Rob Herring
2022-07-26 6:03 ` [PATCH v4 0/2] Add RZ/G2L Display support Biju Das
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).