2020-08-28 15:20:13 +01:00
# 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.
2020-09-19 20:44:12 +08:00
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" .
2020-08-28 15:20:13 +01:00
# Need a custom select here or 'arm,primecell' will match on lots of nodes
select :
properties :
compatible :
contains :
2021-08-24 14:51:54 -05:00
enum :
- arm,sp804
- hisilicon,sp804
2020-08-28 15:20:13 +01:00
required :
- compatible
properties :
compatible :
items :
2020-09-19 20:44:12 +08:00
- enum :
2020-04-20 21:24:47 -05:00
- arm,sp804
- hisilicon,sp804
2020-08-28 15:20:13 +01:00
- 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 :
2020-04-20 21:24:47 -05:00
- description : clock for timer 1
- description : clock for timer 2
- description : bus clock
2020-08-28 15:20:13 +01:00
- items :
2020-04-20 21:24:47 -05:00
- description : unified clock for both timers and the bus
2020-08-28 15:20:13 +01:00
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";
};