Commit 5d3d7234 authored by AngeloGioacchino Del Regno's avatar AngeloGioacchino Del Regno Committed by Rob Herring
Browse files

dt-bindings: timer: mediatek: Convert to json-schema



Convert the MediaTek SoC timer txt binding to json-schema.

Signed-off-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20220929122901.614315-3-angelogioacchino.delregno@collabora.com


[robh: Add mt8365 compatible, drop duplicate mediatek,mt6795-systimer, drop quotes]
Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent 4d4f986d
Loading
Loading
Loading
Loading
+0 −48
Original line number Diff line number Diff line
MediaTek Timers
---------------

MediaTek SoCs have different timers on different platforms,
- CPUX (ARM/ARM64 System Timer)
- GPT (General Purpose Timer)
- SYST (System Timer)

The proper timer will be selected automatically by driver.

Required properties:
- compatible should contain:
	For those SoCs that use GPT
	* "mediatek,mt2701-timer" for MT2701 compatible timers (GPT)
	* "mediatek,mt6580-timer" for MT6580 compatible timers (GPT)
	* "mediatek,mt6582-timer" for MT6582 compatible timers (GPT)
	* "mediatek,mt6589-timer" for MT6589 compatible timers (GPT)
	* "mediatek,mt7623-timer" for MT7623 compatible timers (GPT)
	* "mediatek,mt8127-timer" for MT8127 compatible timers (GPT)
	* "mediatek,mt8135-timer" for MT8135 compatible timers (GPT)
	* "mediatek,mt8173-timer" for MT8173 compatible timers (GPT)
	* "mediatek,mt8516-timer" for MT8516 compatible timers (GPT)
	* "mediatek,mt6577-timer" for MT6577 and all above compatible timers (GPT)

	For those SoCs that use SYST
	* "mediatek,mt8183-timer" for MT8183 compatible timers (SYST)
	* "mediatek,mt8186-timer" for MT8186 compatible timers (SYST)
	* "mediatek,mt8188-timer" for MT8188 compatible timers (SYST)
	* "mediatek,mt8192-timer" for MT8192 compatible timers (SYST)
	* "mediatek,mt8195-timer" for MT8195 compatible timers (SYST)
	* "mediatek,mt7629-timer" for MT7629 compatible timers (SYST)
	* "mediatek,mt6765-timer" for MT6765 and all above compatible timers (SYST)

	For those SoCs that use CPUX
	* "mediatek,mt6795-systimer" for MT6795 compatible timers (CPUX)
	* "mediatek,mt8365-systimer" for MT8365 compatible timers (CPUX)

- reg: Should contain location and length for timer register.
- clocks: Should contain system clock.

Examples:

	timer@10008000 {
		compatible = "mediatek,mt6577-timer";
		reg = <0x10008000 0x80>;
		interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_LOW>;
		clocks = <&system_clk>;
	};
+84 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/timer/mediatek,timer.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: MediaTek SoC timers

maintainers:
  - Matthias Brugger <matthias.bgg@gmail.com>

description:
  MediaTek SoCs have different timers on different platforms,
  CPUX (ARM/ARM64 System Timer), GPT (General Purpose Timer)
  and SYST (System Timer).

properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - mediatek,mt6577-timer
              - mediatek,mt6765-timer
              - mediatek,mt6795-systimer
      # GPT Timers
      - items:
          - enum:
              - mediatek,mt2701-timer
              - mediatek,mt6580-timer
              - mediatek,mt6582-timer
              - mediatek,mt6589-timer
              - mediatek,mt7623-timer
              - mediatek,mt8127-timer
              - mediatek,mt8135-timer
              - mediatek,mt8173-timer
              - mediatek,mt8516-timer
          - const: mediatek,mt6577-timer
      # SYST Timers
      - items:
          - enum:
              - mediatek,mt7629-timer
              - mediatek,mt8183-timer
              - mediatek,mt8186-timer
              - mediatek,mt8188-timer
              - mediatek,mt8192-timer
              - mediatek,mt8195-timer
              - mediatek,mt8365-systimer
          - const: mediatek,mt6765-timer

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    minItems: 1
    items:
      - description: Timer clock
      - description: RTC or bus clock

  clock-names:
    minItems: 1
    maxItems: 2

required:
  - compatible
  - reg
  - interrupts
  - clocks

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    timer@10008000 {
      compatible = "mediatek,mt6577-timer";
      reg = <0x10008000 0x80>;
      interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_LOW>;
      clocks = <&system_clk>;
    };