Commit 2ba446f8 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'shmob-drm-atomic-dt-tag2' of...

Merge tag 'shmob-drm-atomic-dt-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers

 into drm-next

drm: renesas: shmobile: Atomic conversion + DT support

Currently, there are two drivers for the LCD controller on Renesas
SuperH-based and ARM-based SH-Mobile and R-Mobile SoCs:
  1. sh_mobile_lcdcfb, using the fbdev framework,
  2. shmob_drm, using the DRM framework.
However, only the former driver is used, as all platform support
integrates the former.  None of these drivers support DT-based systems.

Convert the SH-Mobile DRM driver to atomic modesetting, and add DT
support, complemented by the customary set of fixes and improvements.

Acked-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Link: https://lore.kernel.org/r/cover.1694767208.git.geert+renesas@glider.be/


Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://patchwork.freedesktop.org/patch/msgid/CAMuHMdUF61V5qNyKbrTGxZfEJvCVuLO7q2R5MqZYkzRC_cNr0w@mail.gmail.com
parents 63180809 1399ebac
Loading
Loading
Loading
Loading
+130 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/renesas,shmobile-lcdc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Renesas SH-Mobile LCD Controller (LCDC)

maintainers:
  - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
  - Geert Uytterhoeven <geert+renesas@glider.be>

properties:
  compatible:
    enum:
      - renesas,r8a7740-lcdc # R-Mobile A1
      - renesas,sh73a0-lcdc  # SH-Mobile AG5

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 5
    description:
      Only the functional clock is mandatory.
      Some of the optional clocks are model-dependent (e.g. "video" (a.k.a.
      "vou" or "dv_clk") is available on R-Mobile A1 only).

  clock-names:
    minItems: 1
    items:
      - const: fck
      - enum: [ media, lclk, hdmi, video ]
      - enum: [ media, lclk, hdmi, video ]
      - enum: [ media, lclk, hdmi, video ]
      - enum: [ media, lclk, hdmi, video ]

  power-domains:
    maxItems: 1

  ports:
    $ref: /schemas/graph.yaml#/properties/ports

    properties:
      port@0:
        $ref: /schemas/graph.yaml#/properties/port
        description: LCD port (R-Mobile A1 and SH-Mobile AG5)
        unevaluatedProperties: false

      port@1:
        $ref: /schemas/graph.yaml#/properties/port
        description: HDMI port (R-Mobile A1 LCDC1 and SH-Mobile AG5)
        unevaluatedProperties: false

      port@2:
        $ref: /schemas/graph.yaml#/properties/port
        description: MIPI-DSI port (SH-Mobile AG5)
        unevaluatedProperties: false

    required:
      - port@0

    unevaluatedProperties: false

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - clock-names
  - power-domains
  - ports

additionalProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: renesas,r8a7740-lcdc
    then:
      properties:
        ports:
          properties:
            port@2: false

  - if:
      properties:
        compatible:
          contains:
            const: renesas,sh73a0-lcdc
    then:
      properties:
        ports:
          required:
            - port@1
            - port@2

examples:
  - |
    #include <dt-bindings/clock/r8a7740-clock.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    lcd-controller@fe940000 {
        compatible = "renesas,r8a7740-lcdc";
        reg = <0xfe940000 0x4000>;
        interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&mstp1_clks R8A7740_CLK_LCDC0>,
                 <&cpg_clocks R8A7740_CLK_M3>, <&lcdlclk0_clk>,
                 <&vou_clk>;
        clock-names = "fck", "media", "lclk", "video";
        power-domains = <&pd_a4lc>;

        ports {
            #address-cells = <1>;
            #size-cells = <0>;

            port@0 {
                reg = <0>;

                lcdc0_rgb: endpoint {
                };
            };
        };
    };
+72 −0
Original line number Diff line number Diff line
@@ -949,6 +949,78 @@ The following tables list existing packed RGB formats.
      - b\ :sub:`2`
      - b\ :sub:`1`
      - b\ :sub:`0`
    * .. _MEDIA-BUS-FMT-RGB666-2X9-BE:

      - MEDIA_BUS_FMT_RGB666_2X9_BE
      - 0x1025
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - r\ :sub:`5`
      - r\ :sub:`4`
      - r\ :sub:`3`
      - r\ :sub:`2`
      - r\ :sub:`1`
      - r\ :sub:`0`
      - g\ :sub:`5`
      - g\ :sub:`4`
      - g\ :sub:`3`
    * -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      -
      - g\ :sub:`2`
      - g\ :sub:`1`
      - g\ :sub:`0`
      - b\ :sub:`5`
      - b\ :sub:`4`
      - b\ :sub:`3`
      - b\ :sub:`2`
      - b\ :sub:`1`
      - b\ :sub:`0`
    * .. _MEDIA-BUS-FMT-BGR666-1X18:

      - MEDIA_BUS_FMT_BGR666_1X18
+11 −2
Original line number Diff line number Diff line
@@ -7053,7 +7053,7 @@ F: drivers/gpu/host1x/
F:	include/linux/host1x.h
F:	include/uapi/drm/tegra_drm.h
DRM DRIVERS FOR RENESAS
DRM DRIVERS FOR RENESAS R-CAR
M:	Laurent Pinchart <laurent.pinchart@ideasonboard.com>
M:	Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
L:	dri-devel@lists.freedesktop.org
@@ -7064,7 +7064,16 @@ F: Documentation/devicetree/bindings/display/bridge/renesas,dsi-csi2-tx.yaml
F:	Documentation/devicetree/bindings/display/bridge/renesas,dw-hdmi.yaml
F:	Documentation/devicetree/bindings/display/bridge/renesas,lvds.yaml
F:	Documentation/devicetree/bindings/display/renesas,du.yaml
F:	drivers/gpu/drm/renesas/
F:	drivers/gpu/drm/renesas/rcar-du/
DRM DRIVERS FOR RENESAS SHMOBILE
M:	Laurent Pinchart <laurent.pinchart@ideasonboard.com>
M:	Geert Uytterhoeven <geert+renesas@glider.be>
L:	dri-devel@lists.freedesktop.org
L:	linux-renesas-soc@vger.kernel.org
S:	Supported
F:	Documentation/devicetree/bindings/display/renesas,shmobile-lcdc.yaml
F:	drivers/gpu/drm/renesas/shmobile/
F:	include/linux/platform_data/shmob_drm.h
DRM DRIVERS FOR ROCKCHIP
+2 −1
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
config DRM_SHMOBILE
	tristate "DRM Support for SH Mobile"
	depends on DRM
	depends on DRM && PM
	depends on ARCH_RENESAS || ARCH_SHMOBILE || COMPILE_TEST
	select BACKLIGHT_CLASS_DEVICE
	select DRM_KMS_HELPER
	select DRM_GEM_DMA_HELPER
	select VIDEOMODE_HELPERS
	help
	  Choose this option if you have an SH Mobile chipset.
	  If M is selected the module will be called shmob-drm.
+1 −2
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
shmob-drm-y := shmob_drm_backlight.o \
	       shmob_drm_crtc.o \
shmob-drm-y := shmob_drm_crtc.o \
	       shmob_drm_drv.o \
	       shmob_drm_kms.o \
	       shmob_drm_plane.o
Loading