On Tue, Feb 02, 2016 at 04:25:51PM +0100, Jean-Francois Moine wrote: > In recent SoCs, as the H3, Allwinner uses a new display interface, DE2. > This patch adds a DRM video driver for this interface. > > Signed-off-by: Jean-Francois Moine <moinejf@xxxxxxx> > --- > v4: (no change) > v3: > - add the hardware cursor > - simplify and fix the DE2 init sequences > - generation for all SUNXI SoCs (Andre Przywara) > v2: > - remarks from Russell King > - DT documentation added > - working resolution change with xrandr > - removal of the HDMI driver > --- > .../devicetree/bindings/display/sunxi.txt | 81 ++++ > drivers/gpu/drm/Kconfig | 2 + > drivers/gpu/drm/Makefile | 1 + > drivers/gpu/drm/sunxi/Kconfig | 20 + > drivers/gpu/drm/sunxi/Makefile | 7 + > drivers/gpu/drm/sunxi/de2_crtc.c | 421 +++++++++++++++++ > drivers/gpu/drm/sunxi/de2_crtc.h | 61 +++ > drivers/gpu/drm/sunxi/de2_de.c | 505 +++++++++++++++++++++ > drivers/gpu/drm/sunxi/de2_drm.h | 40 ++ > drivers/gpu/drm/sunxi/de2_drv.c | 377 +++++++++++++++ > drivers/gpu/drm/sunxi/de2_plane.c | 91 ++++ > 11 files changed, 1606 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/sunxi.txt > create mode 100644 drivers/gpu/drm/sunxi/Kconfig > create mode 100644 drivers/gpu/drm/sunxi/Makefile > create mode 100644 drivers/gpu/drm/sunxi/de2_crtc.c > create mode 100644 drivers/gpu/drm/sunxi/de2_crtc.h > create mode 100644 drivers/gpu/drm/sunxi/de2_de.c > create mode 100644 drivers/gpu/drm/sunxi/de2_drm.h > create mode 100644 drivers/gpu/drm/sunxi/de2_drv.c > create mode 100644 drivers/gpu/drm/sunxi/de2_plane.c > > diff --git a/Documentation/devicetree/bindings/display/sunxi.txt b/Documentation/devicetree/bindings/display/sunxi.txt > new file mode 100644 > index 0000000..35f9763 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/sunxi.txt > @@ -0,0 +1,81 @@ > +Allwinner sunxi display subsystem > +================================= > + > +The sunxi display subsystems contain a display controller (DE), > +one or two LCD controllers (TCON) and their external interfaces. > + > +Display controller > +================== > + > +Required properties: > + > +- compatible: value should be one of the following > + "allwinner,sun8i-h3-display-engine" > + > +- clocks: must include clock specifiers corresponding to entries in the > + clock-names property. > + > +- clock-names: must contain > + gate: for DE activation > + clock: DE clock > + > +- resets: phandle to the reset of the device > + > +- ports: phandle's to the LCD ports > + > +LCD controller > +============== > + > +Required properties: > + > +- compatible: value should be one of the following > + "allwinner,sun8i-h3-lcd" > + > +- clocks: must include clock specifiers corresponding to entries in the > + clock-names property. > + > +- clock-names: must contain > + gate: for LCD activation > + clock: pixel clock > + > +- resets: phandle to the reset of the device > + > +- port: port node with endpoint definitions as defined in > + Documentation/devicetree/bindings/media/video-interfaces.txt Define how many ports and endpoints. > + > +Example: > + > + de: de-controller@01000000 { > + compatible = "allwinner,sun8i-h3-display-engine"; > + ... > + clocks = <&bus_gates 44>, <&de_clk>; > + clock-names = "gate", "clock"; > + resets = <&ahb_rst 44>; > + ports = <&lcd0_p>; This is pointless if you only have one item in ports. Is this really a separate h/w block? Can't you move all this into the node below? > + }; > + > + lcd0: lcd-controller@01c0c000 { > + compatible = "allwinner,sun8i-h3-lcd"; > + ... > + clocks = <&bus_gates 35>, <&tcon0_clk>; > + clock-names = "gate", "clock"; > + resets = <&ahb_rst 35>; > + #address-cells = <1>; > + #size-cells = <0>; > + lcd0_p: port { > + lcd0_ep: endpoint { > + remote-endpoint = <&hdmi_ep>; > + }; > + }; > + }; > + > + hdmi: hdmi@01ee0000 { > + ... > + #address-cells = <1>; > + #size-cells = <0>; > + port { > + hdmi_ep: endpoint { > + remote-endpoint = <&lcd0_ep>; > + }; > + }; > + }; -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html