]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
drm/sun4i: Add compatible string for A31/A31s TCON (timing controller)
authorChen-Yu Tsai <wens@csie.org>
Thu, 20 Oct 2016 03:43:40 +0000 (11:43 +0800)
committerMaxime Ripard <maxime.ripard@free-electrons.com>
Thu, 20 Oct 2016 15:59:29 +0000 (17:59 +0200)
The A31 TCON has mux controls for how TCON outputs are routed to the
HDMI and MIPI DSI blocks.

Since the A31s does not have MIPI DSI, it only has a mux for the HDMI
controller input.

This patch only adds support for the compatible strings. Actual support
for the mux controls should be added with HDMI and MIPI DSI support.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt
drivers/gpu/drm/sun4i/sun4i_drv.c
drivers/gpu/drm/sun4i/sun4i_tcon.c

index 5368961cd72711217c31e19742cc78cb0be241a7..15fdca8909f2fa781b84ed31afe7b209b29c2511 100644 (file)
@@ -28,6 +28,8 @@ The TCON acts as a timing controller for RGB, LVDS and TV interfaces.
 Required properties:
  - compatible: value must be either:
    * allwinner,sun5i-a13-tcon
+   * allwinner,sun6i-a31-tcon
+   * allwinner,sun6i-a31s-tcon
    * allwinner,sun8i-a33-tcon
  - reg: base address and size of memory-mapped region
  - interrupts: interrupt associated to this IP
@@ -50,7 +52,7 @@ Required properties:
   second the block connected to the TCON channel 1 (usually the TV
   encoder)
 
-On the A13, there is one more clock required:
+On SoCs other than the A33, there is one more clock required:
    - 'tcon-ch1': The clock driving the TCON channel 1
 
 DRC
index 0da9862ad8ed928e23a6a1e089551967ad5273e8..a15c231fbd593a08830106971c44817820fe19f0 100644 (file)
@@ -207,6 +207,8 @@ static bool sun4i_drv_node_is_frontend(struct device_node *node)
 static bool sun4i_drv_node_is_tcon(struct device_node *node)
 {
        return of_device_is_compatible(node, "allwinner,sun5i-a13-tcon") ||
+               of_device_is_compatible(node, "allwinner,sun6i-a31-tcon") ||
+               of_device_is_compatible(node, "allwinner,sun6i-a31s-tcon") ||
                of_device_is_compatible(node, "allwinner,sun8i-a33-tcon");
 }
 
index 7658f0337e0b9850328c80641bdc5984d75435da..c6afb24486552d27b1c2fa5ebb0c6c130ded980f 100644 (file)
@@ -587,12 +587,22 @@ static const struct sun4i_tcon_quirks sun5i_a13_quirks = {
        .has_channel_1  = true,
 };
 
+static const struct sun4i_tcon_quirks sun6i_a31_quirks = {
+       .has_channel_1  = true,
+};
+
+static const struct sun4i_tcon_quirks sun6i_a31s_quirks = {
+       .has_channel_1  = true,
+};
+
 static const struct sun4i_tcon_quirks sun8i_a33_quirks = {
        /* nothing is supported */
 };
 
 static const struct of_device_id sun4i_tcon_of_table[] = {
        { .compatible = "allwinner,sun5i-a13-tcon", .data = &sun5i_a13_quirks },
+       { .compatible = "allwinner,sun6i-a31-tcon", .data = &sun6i_a31_quirks },
+       { .compatible = "allwinner,sun6i-a31s-tcon", .data = &sun6i_a31s_quirks },
        { .compatible = "allwinner,sun8i-a33-tcon", .data = &sun8i_a33_quirks },
        { }
 };