brintos

brintos / linux-shallow public Read only

0
0
Text · 6.3 KiB · 585b5f5 Raw
303 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---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)8 9description: |10  For a description of the TCU hardware and drivers, have a look at11  Documentation/arch/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-tcu22          - ingenic,jz4725b-tcu23          - ingenic,jz4760-tcu24          - ingenic,jz4760b-tcu25          - ingenic,jz4770-tcu26          - ingenic,jz4780-tcu27          - ingenic,x1000-tcu28  required:29    - compatible30 31properties:32  $nodename:33    pattern: "^timer@[0-9a-f]+$"34 35  "#address-cells":36    const: 137 38  "#size-cells":39    const: 140 41  "#clock-cells":42    const: 143 44  "#interrupt-cells":45    const: 146 47  interrupt-controller: true48 49  ranges: true50 51  compatible:52    oneOf:53      - items:54          - enum:55              - ingenic,jz4740-tcu56              - ingenic,jz4725b-tcu57              - ingenic,jz4760-tcu58              - ingenic,x1000-tcu59          - const: simple-mfd60      - items:61          - enum:62              - ingenic,jz4780-tcu63              - ingenic,jz4770-tcu64              - ingenic,jz4760b-tcu65          - const: ingenic,jz4760-tcu66          - const: simple-mfd67 68  reg:69    maxItems: 170 71  clocks:72    items:73      - description: RTC clock74      - description: EXT clock75      - description: PCLK clock76      - description: TCU clock77    minItems: 378 79  clock-names:80    items:81      - const: rtc82      - const: ext83      - const: pclk84      - const: tcu85    minItems: 386 87  interrupts:88    items:89      - description: TCU0 interrupt90      - description: TCU1 interrupt91      - description: TCU2 interrupt92    minItems: 193 94  assigned-clocks:95    minItems: 196    maxItems: 897 98  assigned-clock-parents:99    minItems: 1100    maxItems: 8101 102  assigned-clock-rates:103    minItems: 1104    maxItems: 8105 106  ingenic,pwm-channels-mask:107    description: Bitmask of TCU channels reserved for PWM use.108    $ref: /schemas/types.yaml#/definitions/uint32109    minimum: 0x00110    maximum: 0xff111    default: 0xfc112 113patternProperties:114  "^watchdog@[a-f0-9]+$":115    type: object116    $ref: /schemas/watchdog/watchdog.yaml#117    unevaluatedProperties: false118 119    properties:120      compatible:121        oneOf:122          - enum:123              - ingenic,jz4740-watchdog124              - ingenic,jz4780-watchdog125          - items:126              - enum:127                  - ingenic,jz4770-watchdog128                  - ingenic,jz4760b-watchdog129                  - ingenic,jz4760-watchdog130                  - ingenic,jz4725b-watchdog131              - const: ingenic,jz4740-watchdog132 133      reg:134        maxItems: 1135 136      clocks:137        maxItems: 1138 139      clock-names:140        const: wdt141 142    required:143      - compatible144      - reg145      - clocks146      - clock-names147 148  "^pwm@[a-f0-9]+$":149    type: object150    $ref: /schemas/pwm/pwm.yaml#151    unevaluatedProperties: false152 153    properties:154      compatible:155        oneOf:156          - enum:157              - ingenic,jz4740-pwm158              - ingenic,jz4725b-pwm159              - ingenic,x1000-pwm160          - items:161              - enum:162                  - ingenic,jz4760-pwm163                  - ingenic,jz4760b-pwm164                  - ingenic,jz4770-pwm165                  - ingenic,jz4780-pwm166              - const: ingenic,jz4740-pwm167 168      reg:169        maxItems: 1170 171      clocks:172        minItems: 6173        maxItems: 8174 175      clock-names:176        items:177          - const: timer0178          - const: timer1179          - const: timer2180          - const: timer3181          - const: timer4182          - const: timer5183          - const: timer6184          - const: timer7185        minItems: 6186 187    required:188      - compatible189      - reg190      - clocks191      - clock-names192 193  "^timer@[a-f0-9]+$":194    type: object195    properties:196      compatible:197        oneOf:198          - enum:199              - ingenic,jz4725b-ost200              - ingenic,jz4760b-ost201          - items:202              - const: ingenic,jz4760-ost203              - const: ingenic,jz4725b-ost204          - items:205              - enum:206                  - ingenic,jz4780-ost207                  - ingenic,jz4770-ost208              - const: ingenic,jz4760b-ost209 210      reg:211        maxItems: 1212 213      clocks:214        maxItems: 1215 216      clock-names:217        const: ost218 219      interrupts:220        maxItems: 1221 222    required:223      - compatible224      - reg225      - clocks226      - clock-names227      - interrupts228 229    additionalProperties: false230 231required:232  - "#clock-cells"233  - "#interrupt-cells"234  - interrupt-controller235  - compatible236  - reg237  - clocks238  - clock-names239  - interrupts240 241additionalProperties: false242 243examples:244  - |245    #include <dt-bindings/clock/ingenic,jz4770-cgu.h>246    #include <dt-bindings/clock/ingenic,tcu.h>247    tcu: timer@10002000 {248      compatible = "ingenic,jz4770-tcu", "ingenic,jz4760-tcu", "simple-mfd";249      reg = <0x10002000 0x1000>;250      #address-cells = <1>;251      #size-cells = <1>;252      ranges = <0x0 0x10002000 0x1000>;253 254      #clock-cells = <1>;255 256      clocks = <&cgu JZ4770_CLK_RTC>,257               <&cgu JZ4770_CLK_EXT>,258               <&cgu JZ4770_CLK_PCLK>;259      clock-names = "rtc", "ext", "pclk";260 261      interrupt-controller;262      #interrupt-cells = <1>;263 264      interrupt-parent = <&intc>;265      interrupts = <27 26 25>;266 267      watchdog: watchdog@0 {268        compatible = "ingenic,jz4770-watchdog", "ingenic,jz4740-watchdog";269        reg = <0x0 0xc>;270 271        clocks = <&tcu TCU_CLK_WDT>;272        clock-names = "wdt";273      };274 275      pwm: pwm@40 {276        compatible = "ingenic,jz4770-pwm", "ingenic,jz4740-pwm";277        reg = <0x40 0x80>;278 279        #pwm-cells = <3>;280 281        clocks = <&tcu TCU_CLK_TIMER0>,282                 <&tcu TCU_CLK_TIMER1>,283                 <&tcu TCU_CLK_TIMER2>,284                 <&tcu TCU_CLK_TIMER3>,285                 <&tcu TCU_CLK_TIMER4>,286                 <&tcu TCU_CLK_TIMER5>,287                 <&tcu TCU_CLK_TIMER6>,288                 <&tcu TCU_CLK_TIMER7>;289        clock-names = "timer0", "timer1", "timer2", "timer3",290                "timer4", "timer5", "timer6", "timer7";291      };292 293      ost: timer@e0 {294        compatible = "ingenic,jz4770-ost", "ingenic,jz4760b-ost";295        reg = <0xe0 0x20>;296 297        clocks = <&tcu TCU_CLK_OST>;298        clock-names = "ost";299 300        interrupts = <15>;301      };302    };303