1# SPDX-License-Identifier: GPL-2.0 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/timer/arm,arch_timer_mmio.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: ARM memory mapped architected timer 8 9maintainers: 10 - Marc Zyngier <marc.zyngier@arm.com> 11 - Mark Rutland <mark.rutland@arm.com> 12 13description: |+ 14 ARM cores may have a memory mapped architected timer, which provides up to 8 15 frames with a physical and optional virtual timer per frame. 16 17 The memory mapped timer is attached to a GIC to deliver its interrupts via SPIs. 18 19properties: 20 compatible: 21 items: 22 - enum: 23 - arm,armv7-timer-mem 24 25 reg: 26 maxItems: 1 27 description: The control frame base address 28 29 '#address-cells': 30 enum: [1, 2] 31 32 '#size-cells': 33 const: 1 34 35 ranges: true 36 37 clock-frequency: 38 description: The frequency of the main counter, in Hz. Should be present 39 only where necessary to work around broken firmware which does not configure 40 CNTFRQ on all CPUs to a uniform correct value. Use of this property is 41 strongly discouraged; fix your firmware unless absolutely impossible. 42 43 always-on: 44 type: boolean 45 description: If present, the timer is powered through an always-on power 46 domain, therefore it never loses context. 47 48 arm,cpu-registers-not-fw-configured: 49 type: boolean 50 description: Firmware does not initialize any of the generic timer CPU 51 registers, which contain their architecturally-defined reset values. Only 52 supported for 32-bit systems which follow the ARMv7 architected reset 53 values. 54 55 arm,no-tick-in-suspend: 56 type: boolean 57 description: The main counter does not tick when the system is in 58 low-power system suspend on some SoCs. This behavior does not match the 59 Architecture Reference Manual's specification that the system counter "must 60 be implemented in an always-on power domain." 61 62patternProperties: 63 '^frame@[0-9a-z]*$': 64 type: object 65 description: A timer node has up to 8 frame sub-nodes, each with the following properties. 66 properties: 67 frame-number: 68 allOf: 69 - $ref: "/schemas/types.yaml#/definitions/uint32" 70 - minimum: 0 71 maximum: 7 72 73 interrupts: 74 minItems: 1 75 maxItems: 2 76 items: 77 - description: physical timer irq 78 - description: virtual timer irq 79 80 reg : 81 minItems: 1 82 maxItems: 2 83 items: 84 - description: 1st view base address 85 - description: 2nd optional view base address 86 87 required: 88 - frame-number 89 - interrupts 90 - reg 91 92required: 93 - compatible 94 - reg 95 - '#address-cells' 96 - '#size-cells' 97 98additionalProperties: false 99 100examples: 101 - | 102 timer@f0000000 { 103 compatible = "arm,armv7-timer-mem"; 104 #address-cells = <1>; 105 #size-cells = <1>; 106 ranges = <0 0xf0001000 0x1000>; 107 reg = <0xf0000000 0x1000>; 108 clock-frequency = <50000000>; 109 110 frame@0 { 111 frame-number = <0>; 112 interrupts = <0 13 0x8>, 113 <0 14 0x8>; 114 reg = <0x0000 0x1000>, 115 <0x1000 0x1000>; 116 }; 117 118 frame@2000 { 119 frame-number = <1>; 120 interrupts = <0 15 0x8>; 121 reg = <0x2000 0x1000>; 122 }; 123 }; 124 125... 126