xref: /linux/Documentation/devicetree/bindings/timer/riscv,timer.yaml (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
1e2bcf2d8SAnup Patel# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2e2bcf2d8SAnup Patel%YAML 1.2
3e2bcf2d8SAnup Patel---
4e2bcf2d8SAnup Patel$id: http://devicetree.org/schemas/timer/riscv,timer.yaml#
5e2bcf2d8SAnup Patel$schema: http://devicetree.org/meta-schemas/core.yaml#
6e2bcf2d8SAnup Patel
7e2bcf2d8SAnup Pateltitle: RISC-V timer
8e2bcf2d8SAnup Patel
9e2bcf2d8SAnup Patelmaintainers:
10e2bcf2d8SAnup Patel  - Anup Patel <anup@brainfault.org>
11e2bcf2d8SAnup Patel
12e2bcf2d8SAnup Pateldescription: |+
13e2bcf2d8SAnup Patel  RISC-V platforms always have a RISC-V timer device for the supervisor-mode
14e2bcf2d8SAnup Patel  based on the time CSR defined by the RISC-V privileged specification. The
15e2bcf2d8SAnup Patel  timer interrupts of this device are configured using the RISC-V SBI Time
16e2bcf2d8SAnup Patel  extension or the RISC-V Sstc extension.
17e2bcf2d8SAnup Patel
18e2bcf2d8SAnup Patel  The clock frequency of RISC-V timer device is specified via the
19e2bcf2d8SAnup Patel  "timebase-frequency" DT property of "/cpus" DT node which is described
20e2bcf2d8SAnup Patel  in Documentation/devicetree/bindings/riscv/cpus.yaml
21e2bcf2d8SAnup Patel
22e2bcf2d8SAnup Patelproperties:
23e2bcf2d8SAnup Patel  compatible:
24e2bcf2d8SAnup Patel    enum:
25e2bcf2d8SAnup Patel      - riscv,timer
26e2bcf2d8SAnup Patel
27e2bcf2d8SAnup Patel  interrupts-extended:
28e2bcf2d8SAnup Patel    minItems: 1
29e2bcf2d8SAnup Patel    maxItems: 4096   # Should be enough?
30e2bcf2d8SAnup Patel
31e2bcf2d8SAnup Patel  riscv,timer-cannot-wake-cpu:
32e2bcf2d8SAnup Patel    type: boolean
33e2bcf2d8SAnup Patel    description:
34e2bcf2d8SAnup Patel      If present, the timer interrupt cannot wake up the CPU from one or
35e2bcf2d8SAnup Patel      more suspend/idle states.
36e2bcf2d8SAnup Patel
37e2bcf2d8SAnup PateladditionalProperties: false
38e2bcf2d8SAnup Patel
39e2bcf2d8SAnup Patelrequired:
40e2bcf2d8SAnup Patel  - compatible
41e2bcf2d8SAnup Patel  - interrupts-extended
42e2bcf2d8SAnup Patel
43e2bcf2d8SAnup Patelexamples:
44e2bcf2d8SAnup Patel  - |
45e2bcf2d8SAnup Patel    timer {
46e2bcf2d8SAnup Patel      compatible = "riscv,timer";
47e2bcf2d8SAnup Patel      interrupts-extended = <&cpu1intc 5>,
48e2bcf2d8SAnup Patel                            <&cpu2intc 5>,
49e2bcf2d8SAnup Patel                            <&cpu3intc 5>,
50e2bcf2d8SAnup Patel                            <&cpu4intc 5>;
51e2bcf2d8SAnup Patel    };
52e2bcf2d8SAnup Patel...
53