cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

allwinner,sun8i-r40-tcon-top.yaml (8825B)


      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
      7title: Allwinner R40 TCON TOP Device Tree Bindings
      8
      9maintainers:
     10  - Chen-Yu Tsai <wens@csie.org>
     11  - Maxime Ripard <mripard@kernel.org>
     12
     13description: |
     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
     37properties:
     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
    105required:
    106  - "#clock-cells"
    107  - compatible
    108  - reg
    109  - clocks
    110  - clock-names
    111  - clock-output-names
    112  - resets
    113  - ports
    114
    115additionalProperties: false
    116
    117allOf:
    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
    204examples:
    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...