dt-bindings: timer: Convert faraday,fttmr010 to DT schema

Convert the Faraday fttmr010 Timer binding to DT schema format. Adjust
the compatible string values to match what's in use. The number of
interrupts can also be anywhere from 1 to 8. The clock-names order was
reversed compared to what's used.

Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20250611232621.1508116-1-robh@kernel.org
This commit is contained in:
Rob Herring (Arm) 2025-06-11 18:26:20 -05:00 committed by Daniel Lezcano
parent 84b1a903ae
commit ef0e000cd1
2 changed files with 89 additions and 38 deletions

View File

@ -1,38 +0,0 @@
Faraday Technology timer
This timer is a generic IP block from Faraday Technology, embedded in the
Cortina Systems Gemini SoCs and other designs.
Required properties:
- compatible : Must be one of
"faraday,fttmr010"
"cortina,gemini-timer", "faraday,fttmr010"
"moxa,moxart-timer", "faraday,fttmr010"
"aspeed,ast2400-timer"
"aspeed,ast2500-timer"
"aspeed,ast2600-timer"
- reg : Should contain registers location and length
- interrupts : Should contain the three timer interrupts usually with
flags for falling edge
Optionally required properties:
- clocks : a clock to provide the tick rate for "faraday,fttmr010"
- clock-names : should be "EXTCLK" and "PCLK" for the external tick timer
and peripheral clock respectively, for "faraday,fttmr010"
- syscon : a phandle to the global Gemini system controller if the compatible
type is "cortina,gemini-timer"
Example:
timer@43000000 {
compatible = "faraday,fttmr010";
reg = <0x43000000 0x1000>;
interrupts = <14 IRQ_TYPE_EDGE_FALLING>, /* Timer 1 */
<15 IRQ_TYPE_EDGE_FALLING>, /* Timer 2 */
<16 IRQ_TYPE_EDGE_FALLING>; /* Timer 3 */
clocks = <&extclk>, <&pclk>;
clock-names = "EXTCLK", "PCLK";
};

View File

@ -0,0 +1,89 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/timer/faraday,fttmr010.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Faraday FTTMR010 timer
maintainers:
- Joel Stanley <joel@jms.id.au>
- Linus Walleij <linus.walleij@linaro.org>
description:
This timer is a generic IP block from Faraday Technology, embedded in the
Cortina Systems Gemini SoCs and other designs.
properties:
compatible:
oneOf:
- items:
- const: moxa,moxart-timer
- const: faraday,fttmr010
- enum:
- aspeed,ast2400-timer
- aspeed,ast2500-timer
- aspeed,ast2600-timer
- cortina,gemini-timer
- faraday,fttmr010
reg:
maxItems: 1
interrupts:
minItems: 1
maxItems: 8
description: One interrupt per timer
clocks:
minItems: 1
items:
- description: Peripheral clock
- description: External tick clock
clock-names:
minItems: 1
items:
- const: PCLK
- const: EXTCLK
resets:
maxItems: 1
syscon:
description: System controller phandle for Gemini systems
$ref: /schemas/types.yaml#/definitions/phandle
required:
- compatible
- reg
- interrupts
allOf:
- if:
properties:
compatible:
contains:
const: cortina,gemini-timer
then:
required:
- syscon
else:
properties:
syscon: false
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
timer@43000000 {
compatible = "faraday,fttmr010";
reg = <0x43000000 0x1000>;
interrupts = <14 IRQ_TYPE_EDGE_FALLING>, /* Timer 1 */
<15 IRQ_TYPE_EDGE_FALLING>, /* Timer 2 */
<16 IRQ_TYPE_EDGE_FALLING>; /* Timer 3 */
clocks = <&pclk>, <&extclk>;
clock-names = "PCLK", "EXTCLK";
};