[PATCH 06/11] dt-bindings: display: sun4i-drm: Add A83T HDMI pipeline
From: icenowy@aosc.io (Icenowy Zheng)
Date: 2018-01-05 02:51:20
Also in:
dri-devel, linux-clk, linux-devicetree, lkml
? 2018?1?4? GMT+08:00 ??5:32:26, "Jernej ?krabec" [off-list ref] ??:
Hi Rob, Dne sreda, 03. januar 2018 ob 21:21:54 CET je Rob Herring napisal(a):quoted
On Sat, Dec 30, 2017 at 10:01:58PM +0100, Jernej Skrabec wrote:quoted
This commit adds all necessary compatibles and descriptions neededtoquoted
quoted
implement A83T HDMI pipeline. Mixer is already properly described, so only compatible is added. However, A83T TCON1, which is connected to HDMI, doesn't havechannel 0,quoted
quoted
contrary to all TCONs currently described. Because of that, TCON documentation is extended. A83T features Synopsys DW HDMI controller with a custom PHY whichlooksquoted
quoted
like Synopsys Gen2 PHY with few additions. Since there is no documentation, needed properties were found out throughexperimentationquoted
quoted
and reading BSP code. At the end, example is added for newer SoCs, which features DE2 andDWquoted
quoted
HDMI. Signed-off-by: Jernej Skrabec <redacted> --- .../bindings/display/sunxi/sun4i-drm.txt | 188 ++++++++++++++++++++- 1 file changed, 181 insertions(+), 7deletions(-)quoted
quoted
diff --gita/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txtquoted
quoted
b/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txtindexquoted
quoted
9f073af4c711..3eca258096a5 100644--- a/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt +++ b/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt@@ -64,6 +64,40 @@ Required properties: first port should be the input endpoint. The second should bethequoted
quoted
output, usually to an HDMI connector. +DWC HDMI TX Encoder +----------------------------- + +The HDMI transmitter is a Synopsys DesignWare HDMI 1.4 TXcontroller IPquoted
quoted
+with Allwinner's own PHY IP. It supports audio and video outputsand CEC.quoted
quoted
+ +These DT bindings follow the Synopsys DWC HDMI TX bindings definedinquoted
quoted
+Documentation/devicetree/bindings/display/bridge/dw_hdmi.txt withthequoted
quoted
+following device-specific properties. + +Required properties: + + - compatible: value must be one of: + * "allwinner,sun8i-a83t-dw-hdmi" + - reg: two pairs of base address and size of memory-mappedregion,quoted
quoted
first + for controller and second for PHY + registers.Seems like the phy should be a separate node and use the phy binding. You can use the phy binding even if you don't use the kernel phy framework...Unfortunately, it's not so straighforward. Phy is actually accessed through I2C implemented in HDMI controller. Second memory region in this case has small influence on phy. However, it has big influence on controller.
To be honest you used inaccurate word. Use "glue" directly here may be more accurate.
For example, magic number has to be written in one register in second memory region in order to unlock read access to any register from first memory region (controller). However, they shouldn't be merged to one region, because first memory region requires byte access while second memory region can be accessed per byte or word. To complicate things more, later I want to add support for another SoC which has same glue layer (unlocking read access, etc.) and uses memory mapped phy registers in second memory region. I think current binding is the least complicated way to represent this.quoted
quoted
+ - reg-io-width: See dw_hdmi.txt. Shall be 1. + - interrupts: HDMI interrupt number + - clocks: phandles to the clocks feeding the HDMI encoder + * iahb: the HDMI bus clock + * isfr: the HDMI register clock + * tmds: the HDMI tmds clock + - clock-names: the clock names mentioned above + - resets: phandles to the reset controllers driving the encoder + * ctrl: the reset line for the controller + * phy: the reset line for the PHY + - reset-names: the reset names mentioned above + + - ports: A ports node with endpoint definitions as defined in + Documentation/devicetree/bindings/media/video-interfaces.txt.Thequoted
quoted
+ first port should be the input endpoint. The second should bethequoted
quoted
+ output, usually to an HDMI connector. + TV Encoder ----------@@ -94,18 +128,17 @@ Required properties: * allwinner,sun7i-a20-tcon * allwinner,sun8i-a33-tcon * allwinner,sun8i-a83t-tcon-lcd + * allwinner,sun8i-a83t-tcon-tv * allwinner,sun8i-v3s-tcon - reg: base address and size of memory-mapped region - interrupts: interrupt associated to this IP - - clocks: phandles to the clocks feeding the TCON. Three areneeded:quoted
quoted
+ - clocks: phandles to the clocks feeding the TCON. One is needed: - 'ahb': the interface clocks - - 'tcon-ch0': The clock driving the TCON channel 0 - resets: phandles to the reset controllers driving the encoder - "lcd": the reset line for the TCON channel 0 - clock-names: the clock names mentioned above - reset-names: the reset names mentioned above - - clock-output-names: Name of the pixel clock created - ports: A ports node with endpoint definitions as defined in Documentation/devicetree/bindings/media/video-interfaces.txt.Thequoted
quoted
@@ -119,11 +152,31 @@ Required properties: channel the endpoint is associated to. If that property is not present, the endpoint number will be used as the channel number. -On SoCs other than the A33 and V3s, there is one more clockrequired:quoted
quoted
+Following compatibles: + * allwinner,sun4i-a10-tcon + * allwinner,sun5i-a13-tcon + * allwinner,sun6i-a31-tcon + * allwinner,sun6i-a31s-tcon + * allwinner,sun7i-a20-tcon + * allwinner,sun8i-a33-tcon + * allwinner,sun8i-a83t-tcon-lcd + * allwinner,sun8i-v3s-tcon +have additional required properties: + - 'tcon-ch0': The clock driving the TCON channel 0tcon-ch0 is a clock name, not a property.right. Best regards, Jernej _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel at lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel