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

ingenic,tcu.yaml (6424B)


      1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
      2%YAML 1.2
      3---
      4$id: http://devicetree.org/schemas/timer/ingenic,tcu.yaml#
      5$schema: http://devicetree.org/meta-schemas/core.yaml#
      6
      7title: Ingenic SoCs Timer/Counter Unit (TCU) devicetree bindings
      8
      9description: |
     10  For a description of the TCU hardware and drivers, have a look at
     11  Documentation/mips/ingenic-tcu.rst.
     12
     13maintainers:
     14  - Paul Cercueil <paul@crapouillou.net>
     15
     16select:
     17  properties:
     18    compatible:
     19      contains:
     20        enum:
     21          - ingenic,jz4740-tcu
     22          - ingenic,jz4725b-tcu
     23          - ingenic,jz4760-tcu
     24          - ingenic,jz4760b-tcu
     25          - ingenic,jz4770-tcu
     26          - ingenic,jz4780-tcu
     27          - ingenic,x1000-tcu
     28  required:
     29    - compatible
     30
     31properties:
     32  $nodename:
     33    pattern: "^timer@[0-9a-f]+$"
     34
     35  "#address-cells":
     36    const: 1
     37
     38  "#size-cells":
     39    const: 1
     40
     41  "#clock-cells":
     42    const: 1
     43
     44  "#interrupt-cells":
     45    const: 1
     46
     47  interrupt-controller: true
     48
     49  ranges: true
     50
     51  compatible:
     52    oneOf:
     53      - items:
     54          - enum:
     55              - ingenic,jz4740-tcu
     56              - ingenic,jz4725b-tcu
     57              - ingenic,jz4760-tcu
     58              - ingenic,x1000-tcu
     59          - const: simple-mfd
     60      - items:
     61          - enum:
     62              - ingenic,jz4780-tcu
     63              - ingenic,jz4770-tcu
     64              - ingenic,jz4760b-tcu
     65          - const: ingenic,jz4760-tcu
     66          - const: simple-mfd
     67
     68  reg:
     69    maxItems: 1
     70
     71  clocks:
     72    items:
     73      - description: RTC clock
     74      - description: EXT clock
     75      - description: PCLK clock
     76      - description: TCU clock
     77    minItems: 3
     78
     79  clock-names:
     80    items:
     81      - const: rtc
     82      - const: ext
     83      - const: pclk
     84      - const: tcu
     85    minItems: 3
     86
     87  interrupts:
     88    items:
     89      - description: TCU0 interrupt
     90      - description: TCU1 interrupt
     91      - description: TCU2 interrupt
     92    minItems: 1
     93
     94  assigned-clocks:
     95    minItems: 1
     96    maxItems: 8
     97
     98  assigned-clock-parents:
     99    minItems: 1
    100    maxItems: 8
    101
    102  assigned-clock-rates:
    103    minItems: 1
    104    maxItems: 8
    105
    106  ingenic,pwm-channels-mask:
    107    description: Bitmask of TCU channels reserved for PWM use.
    108    $ref: /schemas/types.yaml#/definitions/uint32
    109    minimum: 0x00
    110    maximum: 0xff
    111    default: 0xfc
    112
    113patternProperties:
    114  "^watchdog@[a-f0-9]+$":
    115    type: object
    116    $ref: ../watchdog/watchdog.yaml#
    117    properties:
    118      compatible:
    119        oneOf:
    120          - enum:
    121              - ingenic,jz4740-watchdog
    122              - ingenic,jz4780-watchdog
    123          - items:
    124              - enum:
    125                  - ingenic,jz4770-watchdog
    126                  - ingenic,jz4760b-watchdog
    127                  - ingenic,jz4760-watchdog
    128                  - ingenic,jz4725b-watchdog
    129              - const: ingenic,jz4740-watchdog
    130
    131      reg:
    132        maxItems: 1
    133
    134      clocks:
    135        maxItems: 1
    136
    137      clock-names:
    138        const: wdt
    139
    140    required:
    141      - compatible
    142      - reg
    143      - clocks
    144      - clock-names
    145
    146  "^pwm@[a-f0-9]+$":
    147    type: object
    148    $ref: ../pwm/pwm.yaml#
    149    properties:
    150      compatible:
    151        oneOf:
    152          - enum:
    153              - ingenic,jz4740-pwm
    154              - ingenic,jz4725b-pwm
    155              - ingenic,x1000-pwm
    156          - items:
    157              - enum:
    158                  - ingenic,jz4760-pwm
    159                  - ingenic,jz4760b-pwm
    160                  - ingenic,jz4770-pwm
    161                  - ingenic,jz4780-pwm
    162              - const: ingenic,jz4740-pwm
    163
    164      reg:
    165        maxItems: 1
    166
    167      clocks:
    168        minItems: 6
    169        maxItems: 8
    170
    171      clock-names:
    172        items:
    173          - const: timer0
    174          - const: timer1
    175          - const: timer2
    176          - const: timer3
    177          - const: timer4
    178          - const: timer5
    179          - const: timer6
    180          - const: timer7
    181        minItems: 6
    182
    183    required:
    184      - compatible
    185      - reg
    186      - clocks
    187      - clock-names
    188
    189  "^timer@[a-f0-9]+$":
    190    type: object
    191    properties:
    192      compatible:
    193        oneOf:
    194          - enum:
    195              - ingenic,jz4725b-ost
    196              - ingenic,jz4760b-ost
    197          - items:
    198              - const: ingenic,jz4760-ost
    199              - const: ingenic,jz4725b-ost
    200          - items:
    201              - enum:
    202                  - ingenic,jz4780-ost
    203                  - ingenic,jz4770-ost
    204              - const: ingenic,jz4760b-ost
    205
    206      reg:
    207        maxItems: 1
    208
    209      clocks:
    210        maxItems: 1
    211
    212      clock-names:
    213        const: ost
    214
    215      interrupts:
    216        maxItems: 1
    217
    218    required:
    219      - compatible
    220      - reg
    221      - clocks
    222      - clock-names
    223      - interrupts
    224
    225    additionalProperties: false
    226
    227required:
    228  - "#clock-cells"
    229  - "#interrupt-cells"
    230  - interrupt-controller
    231  - compatible
    232  - reg
    233  - clocks
    234  - clock-names
    235  - interrupts
    236
    237additionalProperties: false
    238
    239examples:
    240  - |
    241    #include <dt-bindings/clock/ingenic,jz4770-cgu.h>
    242    #include <dt-bindings/clock/ingenic,tcu.h>
    243    tcu: timer@10002000 {
    244      compatible = "ingenic,jz4770-tcu", "ingenic,jz4760-tcu", "simple-mfd";
    245      reg = <0x10002000 0x1000>;
    246      #address-cells = <1>;
    247      #size-cells = <1>;
    248      ranges = <0x0 0x10002000 0x1000>;
    249
    250      #clock-cells = <1>;
    251
    252      clocks = <&cgu JZ4770_CLK_RTC>,
    253               <&cgu JZ4770_CLK_EXT>,
    254               <&cgu JZ4770_CLK_PCLK>;
    255      clock-names = "rtc", "ext", "pclk";
    256
    257      interrupt-controller;
    258      #interrupt-cells = <1>;
    259
    260      interrupt-parent = <&intc>;
    261      interrupts = <27 26 25>;
    262
    263      watchdog: watchdog@0 {
    264        compatible = "ingenic,jz4770-watchdog", "ingenic,jz4740-watchdog";
    265        reg = <0x0 0xc>;
    266
    267        clocks = <&tcu TCU_CLK_WDT>;
    268        clock-names = "wdt";
    269      };
    270
    271      pwm: pwm@40 {
    272        compatible = "ingenic,jz4770-pwm", "ingenic,jz4740-pwm";
    273        reg = <0x40 0x80>;
    274
    275        #pwm-cells = <3>;
    276
    277        clocks = <&tcu TCU_CLK_TIMER0>,
    278                 <&tcu TCU_CLK_TIMER1>,
    279                 <&tcu TCU_CLK_TIMER2>,
    280                 <&tcu TCU_CLK_TIMER3>,
    281                 <&tcu TCU_CLK_TIMER4>,
    282                 <&tcu TCU_CLK_TIMER5>,
    283                 <&tcu TCU_CLK_TIMER6>,
    284                 <&tcu TCU_CLK_TIMER7>;
    285        clock-names = "timer0", "timer1", "timer2", "timer3",
    286                "timer4", "timer5", "timer6", "timer7";
    287      };
    288
    289      ost: timer@e0 {
    290        compatible = "ingenic,jz4770-ost", "ingenic,jz4760b-ost";
    291        reg = <0xe0 0x20>;
    292
    293        clocks = <&tcu TCU_CLK_OST>;
    294        clock-names = "ost";
    295
    296        interrupts = <15>;
    297      };
    298    };