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,sun4i-a10-tcon.yaml (16593B)


      1# SPDX-License-Identifier: GPL-2.0
      2%YAML 1.2
      3---
      4$id: http://devicetree.org/schemas/display/allwinner,sun4i-a10-tcon.yaml#
      5$schema: http://devicetree.org/meta-schemas/core.yaml#
      6
      7title: Allwinner A10 Timings Controller (TCON) Device Tree Bindings
      8
      9maintainers:
     10  - Chen-Yu Tsai <wens@csie.org>
     11  - Maxime Ripard <mripard@kernel.org>
     12
     13description: |
     14  The TCON acts as a timing controller for RGB, LVDS and TV
     15  interfaces.
     16
     17properties:
     18  "#clock-cells":
     19    const: 0
     20
     21  compatible:
     22    oneOf:
     23      - const: allwinner,sun4i-a10-tcon
     24      - const: allwinner,sun5i-a13-tcon
     25      - const: allwinner,sun6i-a31-tcon
     26      - const: allwinner,sun6i-a31s-tcon
     27      - const: allwinner,sun7i-a20-tcon
     28      - const: allwinner,sun8i-a23-tcon
     29      - const: allwinner,sun8i-a33-tcon
     30      - const: allwinner,sun8i-a83t-tcon-lcd
     31      - const: allwinner,sun8i-a83t-tcon-tv
     32      - const: allwinner,sun8i-r40-tcon-tv
     33      - const: allwinner,sun8i-v3s-tcon
     34      - const: allwinner,sun9i-a80-tcon-lcd
     35      - const: allwinner,sun9i-a80-tcon-tv
     36      - const: allwinner,sun20i-d1-tcon-lcd
     37      - const: allwinner,sun20i-d1-tcon-tv
     38
     39      - items:
     40          - enum:
     41              - allwinner,sun7i-a20-tcon0
     42              - allwinner,sun7i-a20-tcon1
     43          - const: allwinner,sun7i-a20-tcon
     44
     45      - items:
     46          - enum:
     47              - allwinner,sun50i-a64-tcon-lcd
     48          - const: allwinner,sun8i-a83t-tcon-lcd
     49
     50      - items:
     51          - enum:
     52              - allwinner,sun8i-h3-tcon-tv
     53              - allwinner,sun50i-a64-tcon-tv
     54          - const: allwinner,sun8i-a83t-tcon-tv
     55
     56      - items:
     57          - enum:
     58              - allwinner,sun50i-h6-tcon-tv
     59          - const: allwinner,sun8i-r40-tcon-tv
     60
     61  reg:
     62    maxItems: 1
     63
     64  interrupts:
     65    maxItems: 1
     66
     67  clocks:
     68    minItems: 1
     69    maxItems: 4
     70
     71  clock-names:
     72    minItems: 1
     73    maxItems: 4
     74
     75  clock-output-names:
     76    description:
     77      Name of the LCD pixel clock created.
     78    maxItems: 1
     79
     80  dmas:
     81    maxItems: 1
     82
     83  resets:
     84    anyOf:
     85      - items:
     86          - description: TCON Reset Line
     87
     88      - items:
     89          - description: TCON Reset Line
     90          - description: TCON LVDS Reset Line
     91
     92      - items:
     93          - description: TCON Reset Line
     94          - description: TCON eDP Reset Line
     95
     96      - items:
     97          - description: TCON Reset Line
     98          - description: TCON eDP Reset Line
     99          - description: TCON LVDS Reset Line
    100
    101  reset-names:
    102    oneOf:
    103      - const: lcd
    104
    105      - items:
    106          - const: lcd
    107          - const: lvds
    108
    109      - items:
    110          - const: lcd
    111          - const: edp
    112
    113      - items:
    114          - const: lcd
    115          - const: edp
    116          - const: lvds
    117
    118  ports:
    119    $ref: /schemas/graph.yaml#/properties/ports
    120
    121    properties:
    122      port@0:
    123        $ref: /schemas/graph.yaml#/properties/port
    124        description: |
    125          Input endpoints of the controller.
    126
    127      port@1:
    128        $ref: /schemas/graph.yaml#/$defs/port-base
    129        unevaluatedProperties: false
    130        description: |
    131          Output endpoints of the controller.
    132
    133        patternProperties:
    134          "^endpoint(@[0-9])$":
    135            $ref: /schemas/graph.yaml#/$defs/endpoint-base
    136            unevaluatedProperties: false
    137
    138            properties:
    139              allwinner,tcon-channel:
    140                $ref: /schemas/types.yaml#/definitions/uint32
    141                description: |
    142                  TCON can have 1 or 2 channels, usually with the
    143                  first channel being used for the panels interfaces
    144                  (RGB, LVDS, etc.), and the second being used for the
    145                  outputs that require another controller (TV Encoder,
    146                  HDMI, etc.).
    147
    148                  If that property is present, specifies the TCON
    149                  channel the endpoint is associated to. If that
    150                  property is not present, the endpoint number will be
    151                  used as the channel number.
    152
    153    required:
    154      - port@0
    155      - port@1
    156
    157required:
    158  - compatible
    159  - reg
    160  - interrupts
    161  - clocks
    162  - clock-names
    163  - resets
    164  - ports
    165
    166additionalProperties: false
    167
    168allOf:
    169  - if:
    170      properties:
    171        compatible:
    172          contains:
    173            enum:
    174              - allwinner,sun4i-a10-tcon
    175              - allwinner,sun5i-a13-tcon
    176              - allwinner,sun7i-a20-tcon
    177
    178    then:
    179      properties:
    180        clocks:
    181          minItems: 3
    182
    183        clock-names:
    184          items:
    185            - const: ahb
    186            - const: tcon-ch0
    187            - const: tcon-ch1
    188
    189  - if:
    190      properties:
    191        compatible:
    192          contains:
    193            enum:
    194              - allwinner,sun6i-a31-tcon
    195              - allwinner,sun6i-a31s-tcon
    196
    197    then:
    198      properties:
    199        clocks:
    200          minItems: 4
    201
    202        clock-names:
    203          items:
    204            - const: ahb
    205            - const: tcon-ch0
    206            - const: tcon-ch1
    207            - const: lvds-alt
    208
    209  - if:
    210      properties:
    211        compatible:
    212          contains:
    213            enum:
    214              - allwinner,sun8i-a23-tcon
    215              - allwinner,sun8i-a33-tcon
    216
    217    then:
    218      properties:
    219        clocks:
    220          minItems: 3
    221
    222        clock-names:
    223          items:
    224            - const: ahb
    225            - const: tcon-ch0
    226            - const: lvds-alt
    227
    228  - if:
    229      properties:
    230        compatible:
    231          contains:
    232            enum:
    233              - allwinner,sun8i-a83t-tcon-lcd
    234              - allwinner,sun8i-v3s-tcon
    235              - allwinner,sun9i-a80-tcon-lcd
    236
    237    then:
    238      properties:
    239        clocks:
    240          minItems: 2
    241
    242        clock-names:
    243          items:
    244            - const: ahb
    245            - const: tcon-ch0
    246
    247  - if:
    248      properties:
    249        compatible:
    250          contains:
    251            enum:
    252              - allwinner,sun8i-a83t-tcon-tv
    253              - allwinner,sun8i-r40-tcon-tv
    254              - allwinner,sun9i-a80-tcon-tv
    255
    256    then:
    257      properties:
    258        clocks:
    259          minItems: 2
    260
    261        clock-names:
    262          items:
    263            - const: ahb
    264            - const: tcon-ch1
    265
    266  - if:
    267      properties:
    268        compatible:
    269          contains:
    270            enum:
    271              - allwinner,sun5i-a13-tcon
    272              - allwinner,sun6i-a31-tcon
    273              - allwinner,sun6i-a31s-tcon
    274              - allwinner,sun7i-a20-tcon
    275              - allwinner,sun8i-a23-tcon
    276              - allwinner,sun8i-a33-tcon
    277              - allwinner,sun8i-v3s-tcon
    278              - allwinner,sun9i-a80-tcon-lcd
    279              - allwinner,sun4i-a10-tcon
    280              - allwinner,sun8i-a83t-tcon-lcd
    281
    282    then:
    283      required:
    284        - "#clock-cells"
    285        - clock-output-names
    286
    287  - if:
    288      properties:
    289        compatible:
    290          contains:
    291            enum:
    292              - allwinner,sun6i-a31-tcon
    293              - allwinner,sun6i-a31s-tcon
    294              - allwinner,sun8i-a23-tcon
    295              - allwinner,sun8i-a33-tcon
    296              - allwinner,sun8i-a83t-tcon-lcd
    297
    298    then:
    299      properties:
    300        resets:
    301          minItems: 2
    302
    303        reset-names:
    304          items:
    305            - const: lcd
    306            - const: lvds
    307
    308  - if:
    309      properties:
    310        compatible:
    311          contains:
    312            enum:
    313              - allwinner,sun9i-a80-tcon-lcd
    314
    315    then:
    316      properties:
    317        resets:
    318          minItems: 3
    319
    320        reset-names:
    321          items:
    322            - const: lcd
    323            - const: edp
    324            - const: lvds
    325
    326  - if:
    327      properties:
    328        compatible:
    329          contains:
    330            enum:
    331              - allwinner,sun9i-a80-tcon-tv
    332
    333    then:
    334      properties:
    335        resets:
    336          minItems: 2
    337
    338        reset-names:
    339          items:
    340            - const: lcd
    341            - const: edp
    342
    343  - if:
    344      properties:
    345        compatible:
    346          contains:
    347            enum:
    348              - allwinner,sun4i-a10-tcon
    349              - allwinner,sun5i-a13-tcon
    350              - allwinner,sun6i-a31-tcon
    351              - allwinner,sun6i-a31s-tcon
    352              - allwinner,sun7i-a20-tcon
    353              - allwinner,sun8i-a23-tcon
    354              - allwinner,sun8i-a33-tcon
    355
    356    then:
    357      required:
    358        - dmas
    359
    360examples:
    361  - |
    362    #include <dt-bindings/dma/sun4i-a10.h>
    363
    364    /*
    365     * This comes from the clock/sun4i-a10-ccu.h and
    366     * reset/sun4i-a10-ccu.h headers, but we can't include them since
    367     * it would trigger a bunch of warnings for redefinitions of
    368     * symbols with the other example.
    369     */
    370
    371    #define CLK_AHB_LCD0	56
    372    #define CLK_TCON0_CH0	149
    373    #define CLK_TCON0_CH1	155
    374    #define RST_TCON0		11
    375
    376    lcd-controller@1c0c000 {
    377        compatible = "allwinner,sun4i-a10-tcon";
    378        reg = <0x01c0c000 0x1000>;
    379        interrupts = <44>;
    380        resets = <&ccu RST_TCON0>;
    381        reset-names = "lcd";
    382        clocks = <&ccu CLK_AHB_LCD0>,
    383                 <&ccu CLK_TCON0_CH0>,
    384                 <&ccu CLK_TCON0_CH1>;
    385        clock-names = "ahb",
    386                      "tcon-ch0",
    387                      "tcon-ch1";
    388        clock-output-names = "tcon0-pixel-clock";
    389        #clock-cells = <0>;
    390        dmas = <&dma SUN4I_DMA_DEDICATED 14>;
    391
    392        ports {
    393            #address-cells = <1>;
    394            #size-cells = <0>;
    395
    396            port@0 {
    397                #address-cells = <1>;
    398                #size-cells = <0>;
    399                reg = <0>;
    400
    401                endpoint@0 {
    402                    reg = <0>;
    403                    remote-endpoint = <&be0_out_tcon0>;
    404                };
    405
    406                endpoint@1 {
    407                    reg = <1>;
    408                    remote-endpoint = <&be1_out_tcon0>;
    409                };
    410            };
    411
    412            port@1 {
    413                #address-cells = <1>;
    414                #size-cells = <0>;
    415                reg = <1>;
    416
    417                endpoint@1 {
    418                    reg = <1>;
    419                    remote-endpoint = <&hdmi_in_tcon0>;
    420                    allwinner,tcon-channel = <1>;
    421                };
    422            };
    423        };
    424    };
    425
    426    #undef CLK_AHB_LCD0
    427    #undef CLK_TCON0_CH0
    428    #undef CLK_TCON0_CH1
    429    #undef RST_TCON0
    430
    431  - |
    432    #include <dt-bindings/interrupt-controller/arm-gic.h>
    433
    434    /*
    435     * This comes from the clock/sun6i-a31-ccu.h and
    436     * reset/sun6i-a31-ccu.h headers, but we can't include them since
    437     * it would trigger a bunch of warnings for redefinitions of
    438     * symbols with the other example.
    439     */
    440
    441    #define CLK_PLL_MIPI	15
    442    #define CLK_AHB1_LCD0	47
    443    #define CLK_LCD0_CH0	127
    444    #define CLK_LCD0_CH1	129
    445    #define RST_AHB1_LCD0	27
    446    #define RST_AHB1_LVDS	41
    447
    448    lcd-controller@1c0c000 {
    449        compatible = "allwinner,sun6i-a31-tcon";
    450        reg = <0x01c0c000 0x1000>;
    451        interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
    452        dmas = <&dma 11>;
    453        resets = <&ccu RST_AHB1_LCD0>, <&ccu RST_AHB1_LVDS>;
    454        reset-names = "lcd", "lvds";
    455        clocks = <&ccu CLK_AHB1_LCD0>,
    456                 <&ccu CLK_LCD0_CH0>,
    457                 <&ccu CLK_LCD0_CH1>,
    458                 <&ccu CLK_PLL_MIPI>;
    459        clock-names = "ahb",
    460                      "tcon-ch0",
    461                      "tcon-ch1",
    462                      "lvds-alt";
    463        clock-output-names = "tcon0-pixel-clock";
    464        #clock-cells = <0>;
    465
    466        ports {
    467            #address-cells = <1>;
    468            #size-cells = <0>;
    469
    470            port@0 {
    471                #address-cells = <1>;
    472                #size-cells = <0>;
    473                reg = <0>;
    474
    475                endpoint@0 {
    476                    reg = <0>;
    477                    remote-endpoint = <&drc0_out_tcon0>;
    478                };
    479
    480                endpoint@1 {
    481                    reg = <1>;
    482                    remote-endpoint = <&drc1_out_tcon0>;
    483                };
    484            };
    485
    486            port@1 {
    487                #address-cells = <1>;
    488                #size-cells = <0>;
    489                reg = <1>;
    490
    491                endpoint@1 {
    492                    reg = <1>;
    493                    remote-endpoint = <&hdmi_in_tcon0>;
    494                    allwinner,tcon-channel = <1>;
    495                };
    496            };
    497        };
    498    };
    499
    500    #undef CLK_PLL_MIPI
    501    #undef CLK_AHB1_LCD0
    502    #undef CLK_LCD0_CH0
    503    #undef CLK_LCD0_CH1
    504    #undef RST_AHB1_LCD0
    505    #undef RST_AHB1_LVDS
    506
    507  - |
    508    #include <dt-bindings/interrupt-controller/arm-gic.h>
    509
    510    /*
    511     * This comes from the clock/sun9i-a80-ccu.h and
    512     * reset/sun9i-a80-ccu.h headers, but we can't include them since
    513     * it would trigger a bunch of warnings for redefinitions of
    514     * symbols with the other example.
    515     */
    516
    517    #define CLK_BUS_LCD0	102
    518    #define CLK_LCD0		58
    519    #define RST_BUS_LCD0	22
    520    #define RST_BUS_EDP		24
    521    #define RST_BUS_LVDS	25
    522
    523    lcd-controller@3c00000 {
    524        compatible = "allwinner,sun9i-a80-tcon-lcd";
    525        reg = <0x03c00000 0x10000>;
    526        interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
    527        clocks = <&ccu CLK_BUS_LCD0>, <&ccu CLK_LCD0>;
    528        clock-names = "ahb", "tcon-ch0";
    529        resets = <&ccu RST_BUS_LCD0>, <&ccu RST_BUS_EDP>, <&ccu RST_BUS_LVDS>;
    530        reset-names = "lcd", "edp", "lvds";
    531        clock-output-names = "tcon0-pixel-clock";
    532        #clock-cells = <0>;
    533
    534        ports {
    535            #address-cells = <1>;
    536            #size-cells = <0>;
    537
    538            port@0 {
    539                reg = <0>;
    540
    541                endpoint {
    542                    remote-endpoint = <&drc0_out_tcon0>;
    543                };
    544            };
    545
    546            port@1 {
    547                reg = <1>;
    548            };
    549        };
    550    };
    551
    552    #undef CLK_BUS_TCON0
    553    #undef CLK_TCON0
    554    #undef RST_BUS_TCON0
    555    #undef RST_BUS_EDP
    556    #undef RST_BUS_LVDS
    557
    558  - |
    559    #include <dt-bindings/interrupt-controller/arm-gic.h>
    560
    561    /*
    562     * This comes from the clock/sun8i-a83t-ccu.h and
    563     * reset/sun8i-a83t-ccu.h headers, but we can't include them since
    564     * it would trigger a bunch of warnings for redefinitions of
    565     * symbols with the other example.
    566     */
    567
    568    #define CLK_BUS_TCON0	36
    569    #define CLK_TCON0		85
    570    #define RST_BUS_TCON0	22
    571    #define RST_BUS_LVDS	31
    572
    573    lcd-controller@1c0c000 {
    574        compatible = "allwinner,sun8i-a83t-tcon-lcd";
    575        reg = <0x01c0c000 0x1000>;
    576        interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
    577        clocks = <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>;
    578        clock-names = "ahb", "tcon-ch0";
    579        clock-output-names = "tcon-pixel-clock";
    580        #clock-cells = <0>;
    581        resets = <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>;
    582        reset-names = "lcd", "lvds";
    583
    584        ports {
    585            #address-cells = <1>;
    586            #size-cells = <0>;
    587
    588            port@0 {
    589                #address-cells = <1>;
    590                #size-cells = <0>;
    591                reg = <0>;
    592
    593                endpoint@0 {
    594                    reg = <0>;
    595                    remote-endpoint = <&mixer0_out_tcon0>;
    596                };
    597
    598                endpoint@1 {
    599                    reg = <1>;
    600                    remote-endpoint = <&mixer1_out_tcon0>;
    601                };
    602            };
    603
    604            port@1 {
    605                reg = <1>;
    606            };
    607        };
    608    };
    609
    610    #undef CLK_BUS_TCON0
    611    #undef CLK_TCON0
    612    #undef RST_BUS_TCON0
    613    #undef RST_BUS_LVDS
    614
    615  - |
    616    #include <dt-bindings/interrupt-controller/arm-gic.h>
    617
    618    /*
    619     * This comes from the clock/sun8i-r40-ccu.h and
    620     * reset/sun8i-r40-ccu.h headers, but we can't include them since
    621     * it would trigger a bunch of warnings for redefinitions of
    622     * symbols with the other example.
    623     */
    624
    625    #define CLK_BUS_TCON_TV0	73
    626    #define RST_BUS_TCON_TV0	49
    627
    628    tcon_tv0: lcd-controller@1c73000 {
    629        compatible = "allwinner,sun8i-r40-tcon-tv";
    630        reg = <0x01c73000 0x1000>;
    631        interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
    632        clocks = <&ccu CLK_BUS_TCON_TV0>, <&tcon_top 0>;
    633        clock-names = "ahb", "tcon-ch1";
    634        resets = <&ccu RST_BUS_TCON_TV0>;
    635        reset-names = "lcd";
    636
    637        ports {
    638            #address-cells = <1>;
    639            #size-cells = <0>;
    640
    641            port@0 {
    642                #address-cells = <1>;
    643                #size-cells = <0>;
    644                reg = <0>;
    645
    646                endpoint@0 {
    647                    reg = <0>;
    648                    remote-endpoint = <&tcon_top_mixer0_out_tcon_tv0>;
    649                };
    650
    651                endpoint@1 {
    652                    reg = <1>;
    653                    remote-endpoint = <&tcon_top_mixer1_out_tcon_tv0>;
    654                };
    655            };
    656
    657            tcon_tv0_out: port@1 {
    658                #address-cells = <1>;
    659                #size-cells = <0>;
    660                reg = <1>;
    661
    662                endpoint@1 {
    663                    reg = <1>;
    664                    remote-endpoint = <&tcon_top_hdmi_in_tcon_tv0>;
    665                };
    666            };
    667        };
    668    };
    669
    670    #undef CLK_BUS_TCON_TV0
    671    #undef RST_BUS_TCON_TV0
    672
    673...