The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/display/allwinner,sun8i-r40-tcon-top.yaml

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 # SPDX-License-Identifier: GPL-2.0
    2 %YAML 1.2
    3 ---
    4 $id: http://devicetree.org/schemas/display/allwinner,sun8i-r40-tcon-top.yaml#
    5 $schema: http://devicetree.org/meta-schemas/core.yaml#
    6 
    7 title: Allwinner R40 TCON TOP Device Tree Bindings
    8 
    9 maintainers:
   10   - Chen-Yu Tsai <wens@csie.org>
   11   - Maxime Ripard <mripard@kernel.org>
   12 
   13 description: |
   14   TCON TOPs main purpose is to configure whole display pipeline. It
   15   determines relationships between mixers and TCONs, selects source
   16   TCON for HDMI, muxes LCD and TV encoder GPIO output, selects TV
   17   encoder clock source and contains additional TV TCON and DSI gates.
   18 
   19   It allows display pipeline to be configured in very different ways:
   20 
   21                                   / LCD0/LVDS0
   22                    / [0] TCON-LCD0
   23                    |              \ MIPI DSI
   24    mixer0          |
   25           \        / [1] TCON-LCD1 - LCD1/LVDS1
   26            TCON-TOP
   27           /        \ [2] TCON-TV0 [0] - TVE0/RGB
   28    mixer1          |                  \
   29                    |                   TCON-TOP - HDMI
   30                    |                  /
   31                    \ [3] TCON-TV1 [1] - TVE1/RGB
   32 
   33   Note that both TCON TOP references same physical unit. Both mixers
   34   can be connected to any TCON. Not all TCON TOP variants support all
   35   features.
   36 
   37 properties:
   38   "#clock-cells":
   39     const: 1
   40 
   41   compatible:
   42     enum:
   43       - allwinner,sun8i-r40-tcon-top
   44       - allwinner,sun20i-d1-tcon-top
   45       - allwinner,sun50i-h6-tcon-top
   46 
   47   reg:
   48     maxItems: 1
   49 
   50   clocks:
   51     minItems: 2
   52     maxItems: 6
   53 
   54   clock-names:
   55     minItems: 2
   56     maxItems: 6
   57 
   58   clock-output-names:
   59     minItems: 1
   60     maxItems: 3
   61 
   62   resets:
   63     maxItems: 1
   64 
   65   ports:
   66     $ref: /schemas/graph.yaml#/properties/ports
   67 
   68     properties:
   69       port@0:
   70         $ref: /schemas/graph.yaml#/properties/port
   71         description: |
   72           Input endpoint for Mixer 0 mux.
   73 
   74       port@1:
   75         $ref: /schemas/graph.yaml#/properties/port
   76         description: |
   77           Output endpoint for Mixer 0 mux
   78 
   79       port@2:
   80         $ref: /schemas/graph.yaml#/properties/port
   81         description: |
   82           Input endpoint for Mixer 1 mux.
   83 
   84       port@3:
   85         $ref: /schemas/graph.yaml#/properties/port
   86         description: |
   87           Output endpoint for Mixer 1 mux
   88 
   89       port@4:
   90         $ref: /schemas/graph.yaml#/properties/port
   91         description: |
   92           Input endpoint for HDMI mux.
   93 
   94       port@5:
   95         $ref: /schemas/graph.yaml#/properties/port
   96         description: |
   97           Output endpoint for HDMI mux
   98 
   99     required:
  100       - port@0
  101       - port@1
  102       - port@4
  103       - port@5
  104 
  105 required:
  106   - "#clock-cells"
  107   - compatible
  108   - reg
  109   - clocks
  110   - clock-names
  111   - clock-output-names
  112   - resets
  113   - ports
  114 
  115 additionalProperties: false
  116 
  117 allOf:
  118   - if:
  119       properties:
  120         compatible:
  121           contains:
  122             const: allwinner,sun8i-r40-tcon-top
  123 
  124     then:
  125       properties:
  126         clocks:
  127           items:
  128             - description: The TCON TOP interface clock
  129             - description: The TCON TOP TV0 clock
  130             - description: The TCON TOP TVE0 clock
  131             - description: The TCON TOP TV1 clock
  132             - description: The TCON TOP TVE1 clock
  133             - description: The TCON TOP MIPI DSI clock
  134 
  135         clock-names:
  136           items:
  137             - const: bus
  138             - const: tcon-tv0
  139             - const: tve0
  140             - const: tcon-tv1
  141             - const: tve1
  142             - const: dsi
  143 
  144         clock-output-names:
  145           items:
  146             - description: TCON TV0 output clock name
  147             - description: TCON TV1 output clock name
  148             - description: DSI output clock name
  149 
  150         ports:
  151           required:
  152             - port@2
  153             - port@3
  154 
  155   - if:
  156       properties:
  157         compatible:
  158           contains:
  159             const: allwinner,sun20i-d1-tcon-top
  160 
  161     then:
  162       properties:
  163         clocks:
  164           items:
  165             - description: The TCON TOP interface clock
  166             - description: The TCON TOP TV0 clock
  167             - description: The TCON TOP TVE0 clock
  168             - description: The TCON TOP MIPI DSI clock
  169 
  170         clock-names:
  171           items:
  172             - const: bus
  173             - const: tcon-tv0
  174             - const: tve0
  175             - const: dsi
  176 
  177         clock-output-names:
  178           items:
  179             - description: TCON TV0 output clock name
  180             - description: DSI output clock name
  181 
  182   - if:
  183       properties:
  184         compatible:
  185           contains:
  186             const: allwinner,sun50i-h6-tcon-top
  187 
  188     then:
  189       properties:
  190         clocks:
  191           items:
  192             - description: The TCON TOP interface clock
  193             - description: The TCON TOP TV0 clock
  194 
  195         clock-names:
  196           items:
  197             - const: bus
  198             - const: tcon-tv0
  199 
  200         clock-output-names:
  201           items:
  202             - description: TCON TV0 output clock name
  203 
  204 examples:
  205   - |
  206     #include <dt-bindings/interrupt-controller/arm-gic.h>
  207 
  208     #include <dt-bindings/clock/sun8i-r40-ccu.h>
  209     #include <dt-bindings/reset/sun8i-r40-ccu.h>
  210 
  211       tcon_top: tcon-top@1c70000 {
  212           compatible = "allwinner,sun8i-r40-tcon-top";
  213           reg = <0x01c70000 0x1000>;
  214           clocks = <&ccu CLK_BUS_TCON_TOP>,
  215                    <&ccu CLK_TCON_TV0>,
  216                    <&ccu CLK_TVE0>,
  217                    <&ccu CLK_TCON_TV1>,
  218                    <&ccu CLK_TVE1>,
  219                    <&ccu CLK_DSI_DPHY>;
  220           clock-names = "bus",
  221                         "tcon-tv0",
  222                         "tve0",
  223                         "tcon-tv1",
  224                         "tve1",
  225                         "dsi";
  226           clock-output-names = "tcon-top-tv0",
  227                                "tcon-top-tv1",
  228                                "tcon-top-dsi";
  229           resets = <&ccu RST_BUS_TCON_TOP>;
  230           #clock-cells = <1>;
  231 
  232           ports {
  233               #address-cells = <1>;
  234               #size-cells = <0>;
  235 
  236               tcon_top_mixer0_in: port@0 {
  237                   reg = <0>;
  238 
  239                   tcon_top_mixer0_in_mixer0: endpoint {
  240                       remote-endpoint = <&mixer0_out_tcon_top>;
  241                   };
  242               };
  243 
  244               tcon_top_mixer0_out: port@1 {
  245                   #address-cells = <1>;
  246                   #size-cells = <0>;
  247                   reg = <1>;
  248 
  249                   tcon_top_mixer0_out_tcon_lcd0: endpoint@0 {
  250                       reg = <0>;
  251                   };
  252 
  253                   tcon_top_mixer0_out_tcon_lcd1: endpoint@1 {
  254                       reg = <1>;
  255                   };
  256 
  257                   tcon_top_mixer0_out_tcon_tv0: endpoint@2 {
  258                       reg = <2>;
  259                       remote-endpoint = <&tcon_tv0_in_tcon_top_mixer0>;
  260                   };
  261 
  262                   tcon_top_mixer0_out_tcon_tv1: endpoint@3 {
  263                       reg = <3>;
  264                       remote-endpoint = <&tcon_tv1_in_tcon_top_mixer0>;
  265                   };
  266               };
  267 
  268               tcon_top_mixer1_in: port@2 {
  269                   #address-cells = <1>;
  270                   #size-cells = <0>;
  271                   reg = <2>;
  272 
  273                   tcon_top_mixer1_in_mixer1: endpoint@1 {
  274                       reg = <1>;
  275                       remote-endpoint = <&mixer1_out_tcon_top>;
  276                   };
  277               };
  278 
  279               tcon_top_mixer1_out: port@3 {
  280                   #address-cells = <1>;
  281                   #size-cells = <0>;
  282                   reg = <3>;
  283 
  284                   tcon_top_mixer1_out_tcon_lcd0: endpoint@0 {
  285                       reg = <0>;
  286                   };
  287 
  288                   tcon_top_mixer1_out_tcon_lcd1: endpoint@1 {
  289                       reg = <1>;
  290                   };
  291 
  292                   tcon_top_mixer1_out_tcon_tv0: endpoint@2 {
  293                       reg = <2>;
  294                       remote-endpoint = <&tcon_tv0_in_tcon_top_mixer1>;
  295                   };
  296 
  297                   tcon_top_mixer1_out_tcon_tv1: endpoint@3 {
  298                       reg = <3>;
  299                       remote-endpoint = <&tcon_tv1_in_tcon_top_mixer1>;
  300                   };
  301               };
  302 
  303               tcon_top_hdmi_in: port@4 {
  304                   #address-cells = <1>;
  305                   #size-cells = <0>;
  306                   reg = <4>;
  307 
  308                   tcon_top_hdmi_in_tcon_tv0: endpoint@0 {
  309                       reg = <0>;
  310                       remote-endpoint = <&tcon_tv0_out_tcon_top>;
  311                   };
  312 
  313                   tcon_top_hdmi_in_tcon_tv1: endpoint@1 {
  314                       reg = <1>;
  315                       remote-endpoint = <&tcon_tv1_out_tcon_top>;
  316                   };
  317               };
  318 
  319               tcon_top_hdmi_out: port@5 {
  320                   reg = <5>;
  321 
  322                   tcon_top_hdmi_out_hdmi: endpoint {
  323                       remote-endpoint = <&hdmi_in_tcon_top>;
  324                   };
  325               };
  326           };
  327       };
  328 
  329 ...

Cache object: d52e43b07e6ffafda9ec4d174108b9eb


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.