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/timer/ingenic,tcu.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-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 
    7 title: Ingenic SoCs Timer/Counter Unit (TCU) devicetree bindings
    8 
    9 description: |
   10   For a description of the TCU hardware and drivers, have a look at
   11   Documentation/mips/ingenic-tcu.rst.
   12 
   13 maintainers:
   14   - Paul Cercueil <paul@crapouillou.net>
   15 
   16 select:
   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 
   31 properties:
   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 
  113 patternProperties:
  114   "^watchdog@[a-f0-9]+$":
  115     type: object
  116     $ref: /schemas/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: /schemas/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 
  227 required:
  228   - "#clock-cells"
  229   - "#interrupt-cells"
  230   - interrupt-controller
  231   - compatible
  232   - reg
  233   - clocks
  234   - clock-names
  235   - interrupts
  236 
  237 additionalProperties: false
  238 
  239 examples:
  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     };

Cache object: b2159a4a09cafdddc66ca065afd7c8cd


[ 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.