| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- # SPDX-License-Identifier: GPL-2.0
- %YAML 1.2
- ---
- $id: http://devicetree.org/schemas/timer/arm,sp804.yaml#
- $schema: http://devicetree.org/meta-schemas/core.yaml#
- title: ARM sp804 Dual Timers
- maintainers:
- - Haojian Zhuang <haojian.zhuang@linaro.org>
- description: |+
- The Arm SP804 IP implements two independent timers, configurable for
- 16 or 32 bit operation and capable of running in one-shot, periodic, or
- free-running mode. The input clock is shared, but can be gated and prescaled
- independently for each timer.
- There is a viriant of Arm SP804: Hisilicon 64-bit SP804 timer. Some Hisilicon
- SoCs, such as Hi1212, should use the dedicated compatible: "hisilicon,sp804".
- # Need a custom select here or 'arm,primecell' will match on lots of nodes
- select:
- properties:
- compatible:
- contains:
- enum:
- - arm,sp804
- - hisilicon,sp804
- required:
- - compatible
- properties:
- compatible:
- items:
- - enum:
- - arm,sp804
- - hisilicon,sp804
- - const: arm,primecell
- interrupts:
- description: |
- If two interrupts are listed, those are the interrupts for timer
- 1 and 2, respectively. If there is only a single interrupt, it is
- either a combined interrupt or the sole interrupt of one timer, as
- specified by the "arm,sp804-has-irq" property.
- minItems: 1
- maxItems: 2
- reg:
- description: The physical base address of the SP804 IP.
- maxItems: 1
- clocks:
- description: |
- Clocks driving the dual timer hardware. This list should
- be 1 or 3 clocks. With 3 clocks, the order is timer0 clock, timer1
- clock, apb_pclk. A single clock can also be specified if the same
- clock is used for all clock inputs.
- oneOf:
- - items:
- - description: clock for timer 1
- - description: clock for timer 2
- - description: bus clock
- - items:
- - description: unified clock for both timers and the bus
- clock-names: true
- # The original binding did not specify any clock names, and there is no
- # consistent naming used in the existing DTs. The primecell binding
- # requires the "apb_pclk" name, so we need this property.
- # Use "timer0clk", "timer1clk", "apb_pclk" for new DTs.
- arm,sp804-has-irq:
- description: If only one interrupt line is connected to the interrupt
- controller, this property specifies which timer is connected to this
- line.
- $ref: /schemas/types.yaml#/definitions/uint32
- minimum: 1
- maximum: 2
- required:
- - compatible
- - interrupts
- - reg
- - clocks
- additionalProperties: false
- examples:
- - |
- timer0: timer@fc800000 {
- compatible = "arm,sp804", "arm,primecell";
- reg = <0xfc800000 0x1000>;
- interrupts = <0 0 4>, <0 1 4>;
- clocks = <&timclk1>, <&timclk2>, <&pclk>;
- clock-names = "timer1", "timer2", "apb_pclk";
- };
|