* [PATCH 0/4 v3] drm: Add support of ARC PGU display controller @ 2016-03-11 15:42 Alexey Brodkin 2016-03-11 15:42 ` [PATCH 2/4 v3] drm: Add DT bindings documentation for " Alexey Brodkin 2016-03-11 15:42 ` [PATCH 3/4 v3] arc: axs10x - add support of ARC PGU Alexey Brodkin 0 siblings, 2 replies; 5+ messages in thread From: Alexey Brodkin @ 2016-03-11 15:42 UTC (permalink / raw) To: linux-kernel-u79uwXL29TY76Z2rM5mHXA Cc: linux-snps-arc-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Alexey Brodkin, David Airlie, devicetree-u79uwXL29TY76Z2rM5mHXA, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Ian Campbell, Kumar Gala, Mark Rutland, Pawel Moll, Rob Herring, Vineet Gupta This series add support of ARC PGU display controller. ARC PGU is a quite simple byte streamer that gets data from the framebuffer and pushes it to hte connected encoder (DP or HDMI). It was tested on ARC SDP boards (axs101 in particular). Changes v2 -> v3: * Improved failure path if arcpgu_connector wasn't allocated. * Fixed driver building as module. * Implemented uncached mapping of user-space FB pages. * Again updated DT bindings docs. Changes v1 -> v2: * Clean-up of DT bindings documentation. * Added missing "pxlclk" clock in axs10x_mb.dtsi. Cc: David Airlie <airlied-cv59FeDIM0c@public.gmane.org> Cc: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Ian Campbell <ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org> Cc: Kumar Gala <galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> Cc: linux-snps-arc-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org Cc: Mark Rutland <mark.rutland-5wv7dgnIgG8@public.gmane.org> Cc: Pawel Moll <pawel.moll-5wv7dgnIgG8@public.gmane.org> Cc: Rob Herring <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> Cc: Vineet Gupta <vgupta-HKixBCOQz3hWk0Htik3J/w@public.gmane.org> Alexey Brodkin (4): drm: Add support of ARC PGU display controller drm: Add DT bindings documentation for ARC PGU display controller arc: axs10x - add support of ARC PGU MAINTAINERS: Add maintainer for ARC PGU display controller .../devicetree/bindings/display/snps,arcpgu.txt | 72 ++++++ MAINTAINERS | 6 + arch/arc/boot/dts/axs10x_mb.dtsi | 61 +++++ drivers/gpu/drm/Kconfig | 2 + drivers/gpu/drm/Makefile | 1 + drivers/gpu/drm/arc/Kconfig | 10 + drivers/gpu/drm/arc/Makefile | 2 + drivers/gpu/drm/arc/arcpgu.h | 50 ++++ drivers/gpu/drm/arc/arcpgu_crtc.c | 274 +++++++++++++++++++++ drivers/gpu/drm/arc/arcpgu_drv.c | 252 +++++++++++++++++++ drivers/gpu/drm/arc/arcpgu_fbdev.c | 245 ++++++++++++++++++ drivers/gpu/drm/arc/arcpgu_hdmi.c | 207 ++++++++++++++++ drivers/gpu/drm/arc/arcpgu_regs.h | 36 +++ 13 files changed, 1218 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/snps,arcpgu.txt create mode 100644 drivers/gpu/drm/arc/Kconfig create mode 100644 drivers/gpu/drm/arc/Makefile create mode 100644 drivers/gpu/drm/arc/arcpgu.h create mode 100644 drivers/gpu/drm/arc/arcpgu_crtc.c create mode 100644 drivers/gpu/drm/arc/arcpgu_drv.c create mode 100644 drivers/gpu/drm/arc/arcpgu_fbdev.c create mode 100644 drivers/gpu/drm/arc/arcpgu_hdmi.c create mode 100644 drivers/gpu/drm/arc/arcpgu_regs.h -- 2.5.0 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/4 v3] drm: Add DT bindings documentation for ARC PGU display controller 2016-03-11 15:42 [PATCH 0/4 v3] drm: Add support of ARC PGU display controller Alexey Brodkin @ 2016-03-11 15:42 ` Alexey Brodkin 2016-03-21 13:04 ` Rob Herring 2016-03-11 15:42 ` [PATCH 3/4 v3] arc: axs10x - add support of ARC PGU Alexey Brodkin 1 sibling, 1 reply; 5+ messages in thread From: Alexey Brodkin @ 2016-03-11 15:42 UTC (permalink / raw) To: linux-kernel Cc: linux-snps-arc, Alexey Brodkin, Rob Herring, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, David Airlie, dri-devel, devicetree This add DT bindings documentation for ARC PGU display controller. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Pawel Moll <pawel.moll@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Ian Campbell <ijc+devicetree@hellion.org.uk> Cc: Kumar Gala <galak@codeaurora.org> Cc: David Airlie <airlied@linux.ie> Cc: dri-devel@lists.freedesktop.org Cc: devicetree@vger.kernel.org Cc: linux-snps-arc@lists.infradead.org --- Changes v2 -> v3: * Reverted back to initial larger version of example with minor fixes (thanks Rob for spotting those). Changes v1 -> v2: * Removed everything except PGU node itself. .../devicetree/bindings/display/snps,arcpgu.txt | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/snps,arcpgu.txt diff --git a/Documentation/devicetree/bindings/display/snps,arcpgu.txt b/Documentation/devicetree/bindings/display/snps,arcpgu.txt new file mode 100644 index 0000000..b130924 --- /dev/null +++ b/Documentation/devicetree/bindings/display/snps,arcpgu.txt @@ -0,0 +1,72 @@ +ARC PGU + +This is a display controller found on several development boards produced +by Synopsys. The ARC PGU is an RGB streamer that reads the data from a +framebuffer and sends it to a single digital encoder (usually HDMI). + +Required properties: + - compatible: "snps,arcpgu" + - reg: Physical base address and length of the controller's registers. + - clocks: A list of phandle + clock-specifier pairs, one for each + entry in 'clock-names'. + - clock-names: A list of clock names. For ARC PGU it should contain: + - "pxlclk" for the clock feeding the output PLL of the controller. + - encoder-slave: Phandle of encoder chip. + +Required sub-nodes: + - port: The PGU connection to an encoder chip. + +Example: + +/ { + ... + + pgu@XXXXXXXX { + compatible = "snps,arcpgu"; + reg = <0xXXXXXXXX 0x400>; + clocks = <&clock_node>; + clock-names = "pxlclk"; + encoder-slave = <&encoder_node>; + + port { + pgu_output: endpoint { + remote-endpoint = <&hdmi_enc_input>; + }; + }; + }; + + /* HDMI encoder on I2C bus */ + i2c@XXXXXXXX { + compatible = "..."; + + encoder_node:encoder_node@0xXX{ + compatible="..."; + + ports { + port@0 { + reg = <0>; + hdmi_enc_input:endpoint { + remote-endpoint = <&pgu_output>; + }; + }; + + port@1 { + reg = <1>; + hdmi_enc_output:endpoint { + remote-endpoint = <&hdmi_connector_in>; + }; + }; + }; + }; + } + + hdmi0: connector { + compatible = "hdmi-connector"; + + port { + hdmi_connector_in: endpoint { + remote-endpoint = <&hdmi_enc_output>; + }; + }; + }; +}; -- 2.5.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 2/4 v3] drm: Add DT bindings documentation for ARC PGU display controller 2016-03-11 15:42 ` [PATCH 2/4 v3] drm: Add DT bindings documentation for " Alexey Brodkin @ 2016-03-21 13:04 ` Rob Herring 2016-03-24 14:57 ` Alexey Brodkin 0 siblings, 1 reply; 5+ messages in thread From: Rob Herring @ 2016-03-21 13:04 UTC (permalink / raw) To: Alexey Brodkin Cc: linux-kernel, linux-snps-arc, Pawel Moll, Mark Rutland, Ian Campbell, Kumar Gala, David Airlie, dri-devel, devicetree On Fri, Mar 11, 2016 at 06:42:37PM +0300, Alexey Brodkin wrote: > This add DT bindings documentation for ARC PGU display controller. > > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> > Cc: Rob Herring <robh+dt@kernel.org> > Cc: Pawel Moll <pawel.moll@arm.com> > Cc: Mark Rutland <mark.rutland@arm.com> > Cc: Ian Campbell <ijc+devicetree@hellion.org.uk> > Cc: Kumar Gala <galak@codeaurora.org> > Cc: David Airlie <airlied@linux.ie> > Cc: dri-devel@lists.freedesktop.org > Cc: devicetree@vger.kernel.org > Cc: linux-snps-arc@lists.infradead.org > --- > > Changes v2 -> v3: > * Reverted back to initial larger version of example > with minor fixes (thanks Rob for spotting those). > > Changes v1 -> v2: > * Removed everything except PGU node itself. > > .../devicetree/bindings/display/snps,arcpgu.txt | 72 ++++++++++++++++++++++ > 1 file changed, 72 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/snps,arcpgu.txt > > diff --git a/Documentation/devicetree/bindings/display/snps,arcpgu.txt b/Documentation/devicetree/bindings/display/snps,arcpgu.txt > new file mode 100644 > index 0000000..b130924 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/snps,arcpgu.txt > @@ -0,0 +1,72 @@ > +ARC PGU > + > +This is a display controller found on several development boards produced > +by Synopsys. The ARC PGU is an RGB streamer that reads the data from a > +framebuffer and sends it to a single digital encoder (usually HDMI). > + > +Required properties: > + - compatible: "snps,arcpgu" > + - reg: Physical base address and length of the controller's registers. > + - clocks: A list of phandle + clock-specifier pairs, one for each > + entry in 'clock-names'. > + - clock-names: A list of clock names. For ARC PGU it should contain: > + - "pxlclk" for the clock feeding the output PLL of the controller. > + - encoder-slave: Phandle of encoder chip. Drop this as discussed. > + > +Required sub-nodes: > + - port: The PGU connection to an encoder chip. > + > +Example: > + > +/ { > + ... > + > + pgu@XXXXXXXX { > + compatible = "snps,arcpgu"; > + reg = <0xXXXXXXXX 0x400>; > + clocks = <&clock_node>; > + clock-names = "pxlclk"; > + encoder-slave = <&encoder_node>; > + > + port { > + pgu_output: endpoint { > + remote-endpoint = <&hdmi_enc_input>; > + }; > + }; > + }; > + > + /* HDMI encoder on I2C bus */ > + i2c@XXXXXXXX { > + compatible = "..."; > + > + encoder_node:encoder_node@0xXX{ Don't use underscores in node names. Just "hdmi@xx" > + compatible="..."; > + > + ports { > + port@0 { > + reg = <0>; > + hdmi_enc_input:endpoint { > + remote-endpoint = <&pgu_output>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + hdmi_enc_output:endpoint { > + remote-endpoint = <&hdmi_connector_in>; > + }; > + }; > + }; > + }; > + } > + > + hdmi0: connector { > + compatible = "hdmi-connector"; > + > + port { > + hdmi_connector_in: endpoint { > + remote-endpoint = <&hdmi_enc_output>; > + }; > + }; > + }; > +}; > -- > 2.5.0 > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/4 v3] drm: Add DT bindings documentation for ARC PGU display controller 2016-03-21 13:04 ` Rob Herring @ 2016-03-24 14:57 ` Alexey Brodkin 0 siblings, 0 replies; 5+ messages in thread From: Alexey Brodkin @ 2016-03-24 14:57 UTC (permalink / raw) To: robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, pawel.moll-5wv7dgnIgG8@public.gmane.org, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-snps-arc-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, mark.rutland-5wv7dgnIgG8@public.gmane.org, galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, airlied-cv59FeDIM0c@public.gmane.org Hi Rob, On Mon, 2016-03-21 at 08:04 -0500, Rob Herring wrote: > On Fri, Mar 11, 2016 at 06:42:37PM +0300, Alexey Brodkin wrote: > > > > This add DT bindings documentation for ARC PGU display controller. > > > > Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> > > Cc: Rob Herring <robh+dt@kernel.org> > > Cc: Pawel Moll <pawel.moll@arm.com> > > Cc: Mark Rutland <mark.rutland@arm.com> > > Cc: Ian Campbell <ijc+devicetree@hellion.org.uk> > > Cc: Kumar Gala <galak@codeaurora.org> > > Cc: David Airlie <airlied@linux.ie> > > Cc: dri-devel@lists.freedesktop.org > > Cc: devicetree@vger.kernel.org > > Cc: linux-snps-arc@lists.infradead.org > > --- > > > > Changes v2 -> v3: > > * Reverted back to initial larger version of example > > with minor fixes (thanks Rob for spotting those). > > > > Changes v1 -> v2: > > * Removed everything except PGU node itself. > > > > .../devicetree/bindings/display/snps,arcpgu.txt | 72 ++++++++++++++++++++++ > > 1 file changed, 72 insertions(+) > > create mode 100644 Documentation/devicetree/bindings/display/snps,arcpgu.txt > > > > diff --git a/Documentation/devicetree/bindings/display/snps,arcpgu.txt > > b/Documentation/devicetree/bindings/display/snps,arcpgu.txt > > new file mode 100644 > > index 0000000..b130924 > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/snps,arcpgu.txt > > @@ -0,0 +1,72 @@ > > +ARC PGU > > + > > +This is a display controller found on several development boards produced > > +by Synopsys. The ARC PGU is an RGB streamer that reads the data from a > > +framebuffer and sends it to a single digital encoder (usually HDMI). > > + > > +Required properties: > > + - compatible: "snps,arcpgu" > > + - reg: Physical base address and length of the controller's registers. > > + - clocks: A list of phandle + clock-specifier pairs, one for each > > + entry in 'clock-names'. > > + - clock-names: A list of clock names. For ARC PGU it should contain: > > + - "pxlclk" for the clock feeding the output PLL of the controller. > > + - encoder-slave: Phandle of encoder chip. > Drop this as discussed. Ok I'll do that. But what about my example below? Do I need to remove encoder node from it as well? > > > > + > > +Required sub-nodes: > > + - port: The PGU connection to an encoder chip. > > + > > +Example: > > + > > +/ { > > + ... > > + > > + pgu@XXXXXXXX { > > + compatible = "snps,arcpgu"; > > + reg = <0xXXXXXXXX 0x400>; > > + clocks = <&clock_node>; > > + clock-names = "pxlclk"; > > + encoder-slave = <&encoder_node>; > > + > > + port { > > + pgu_output: endpoint { > > + remote-endpoint = <&hdmi_enc_input>; > > + }; > > + }; > > + }; > > + > > + /* HDMI encoder on I2C bus */ > > + i2c@XXXXXXXX { > > + compatible = "..."; > > + > > + encoder_node:encoder_node@0xXX{ > Don't use underscores in node names. Just "hdmi@xx" Ok still I may keep label "encoder_node" here, right? -Alexey-- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 3/4 v3] arc: axs10x - add support of ARC PGU 2016-03-11 15:42 [PATCH 0/4 v3] drm: Add support of ARC PGU display controller Alexey Brodkin 2016-03-11 15:42 ` [PATCH 2/4 v3] drm: Add DT bindings documentation for " Alexey Brodkin @ 2016-03-11 15:42 ` Alexey Brodkin 1 sibling, 0 replies; 5+ messages in thread From: Alexey Brodkin @ 2016-03-11 15:42 UTC (permalink / raw) To: linux-kernel Cc: Mark Rutland, devicetree, Pawel Moll, Ian Campbell, David Airlie, Vineet Gupta, Alexey Brodkin, dri-devel, Rob Herring, Kumar Gala, linux-snps-arc Synopsys DesignWare ARC SDP boards sport ARC SDP display controller attached to ADV7511 HDMI encoder. That change adds desctiption of both ARC PGU and ADV7511 in ARC SDP'd base-board Device Tree. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Pawel Moll <pawel.moll@arm.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Ian Campbell <ijc+devicetree@hellion.org.uk> Cc: Kumar Gala <galak@codeaurora.org> Cc: Vineet Gupta <vgupta@synopsys.com> Cc: David Airlie <airlied@linux.ie> Cc: dri-devel@lists.freedesktop.org Cc: devicetree@vger.kernel.org Cc: linux-snps-arc@lists.infradead.org --- No changes v2 -> v3. Changes v1 -> v2: * Added missing "pxlclk" clock in axs10x_mb.dtsi arch/arc/boot/dts/axs10x_mb.dtsi | 61 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/arch/arc/boot/dts/axs10x_mb.dtsi b/arch/arc/boot/dts/axs10x_mb.dtsi index 44a578c..6e639c9 100644 --- a/arch/arc/boot/dts/axs10x_mb.dtsi +++ b/arch/arc/boot/dts/axs10x_mb.dtsi @@ -34,6 +34,12 @@ clock-frequency = <50000000>; #clock-cells = <0>; }; + + pguclk: pguclk { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <74440000>; + }; }; ethernet@0x18000 { @@ -147,6 +153,37 @@ clocks = <&i2cclk>; interrupts = <16>; + adv7511:adv7511@0x39{ + compatible="adi,adv7511"; + reg = <0x39>; + interrupts = <23>; + adi,input-depth = <8>; + adi,input-colorspace = "rgb"; + adi,input-clock = "1x"; + adi,clock-delay = <0x03>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + /* RGB/YUV input */ + port@0 { + reg = <0>; + adv7511_input:endpoint { + remote-endpoint = <&pgu_output>; + }; + }; + + /* HDMI output */ + port@1 { + reg = <1>; + adv7511_output: endpoint { + remote-endpoint = <&hdmi_connector_in>; + }; + }; + }; + }; + eeprom@0x54{ compatible = "24c01"; reg = <0x54>; @@ -160,6 +197,16 @@ }; }; + hdmi0: connector { + compatible = "hdmi-connector"; + type = "a"; + port { + hdmi_connector_in: endpoint { + remote-endpoint = <&adv7511_output>; + }; + }; + }; + gpio0:gpio@13000 { compatible = "snps,dw-apb-gpio"; reg = <0x13000 0x1000>; @@ -221,5 +268,19 @@ reg = <2>; }; }; + + pgu@0x17000 { + compatible = "snps,arcpgu"; + reg = <0x17000 0x400>; + encoder-slave = <&adv7511>; + clocks = <&pguclk>; + clock-names = "pxlclk"; + + port { + pgu_output: endpoint { + remote-endpoint = <&adv7511_input>; + }; + }; + }; }; }; -- 2.5.0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-03-24 14:57 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-03-11 15:42 [PATCH 0/4 v3] drm: Add support of ARC PGU display controller Alexey Brodkin 2016-03-11 15:42 ` [PATCH 2/4 v3] drm: Add DT bindings documentation for " Alexey Brodkin 2016-03-21 13:04 ` Rob Herring 2016-03-24 14:57 ` Alexey Brodkin 2016-03-11 15:42 ` [PATCH 3/4 v3] arc: axs10x - add support of ARC PGU Alexey Brodkin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox