Commit 70de5572 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'timers-clocksource-2025-09-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull clocksource updates from Thomas Gleixner:

 - Further preparations for modular clocksource/event drivers

 - The usual device tree updates to support new chip variants and the
   related changes to thise drivers

 - Avoid a 64-bit division in the TEGRA186 driver, which caused a build
   fail on 32-bit machines.

 - Small fixes, improvements and cleanups all over the place

* tag 'timers-clocksource-2025-09-29' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (52 commits)
  dt-bindings: timer: exynos4210-mct: Add compatible for ARTPEC-9 SoC
  clocksource/drivers/sh_cmt: Split start/stop of clock source and events
  clocksource/drivers/clps711x: Fix resource leaks in error paths
  clocksource/drivers/arm_global_timer: Add auto-detection for initial prescaler values
  clocksource/drivers/ingenic-sysost: Convert from round_rate() to determine_rate()
  clocksource/drivers/timer-tegra186: Don't print superfluous errors
  clocksource/drivers/timer-rtl-otto: Simplify documentation
  clocksource/drivers/timer-rtl-otto: Do not interfere with interrupts
  clocksource/drivers/timer-rtl-otto: Drop set_counter function
  clocksource/drivers/timer-rtl-otto: Work around dying timers
  clocksource/drivers/timer-ti-dm : Capture functionality for OMAP DM timer
  clocksource/drivers/arm_arch_timer_mmio: Add MMIO clocksource
  clocksource/drivers/arm_arch_timer_mmio: Switch over to standalone driver
  clocksource/drivers/arm_arch_timer: Add standalone MMIO driver
  ACPI: GTDT: Generate platform devices for MMIO timers
  clocksource/drivers/nxp-pit: Add NXP Automotive s32g2 / s32g3 support
  dt: bindings: fsl,vf610-pit: Add compatible for s32g2 and s32g3
  clocksource/drivers/vf-pit: Rename the VF PIT to NXP PIT
  clocksource/drivers/vf-pit: Unify the function name for irq ack
  clocksource/drivers/vf-pit: Consolidate calls to pit_*_disable/enable
  ...
parents c5448d46 749b61c2
Loading
Loading
Loading
Loading
+0 −38
Original line number Diff line number Diff line
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";
};
+89 −0
Original line number Diff line number Diff line
# 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";
    };
+5 −2
Original line number Diff line number Diff line
@@ -14,7 +14,9 @@ properties:
    const: fsl,ftm-timer

  reg:
    maxItems: 1
    items:
      - description: clock event device
      - description: clock source device

  interrupts:
    maxItems: 1
@@ -50,7 +52,8 @@ examples:

    ftm@400b8000 {
        compatible = "fsl,ftm-timer";
        reg = <0x400b8000 0x1000>;
        reg = <0x400b8000 0x1000>,
              <0x400b9000 0x1000>;
        interrupts = <0 44 IRQ_TYPE_LEVEL_HIGH>;
        clock-names = "ftm-evt", "ftm-src", "ftm-evt-counter-en", "ftm-src-counter-en";
        clocks = <&clks VF610_CLK_FTM2>, <&clks VF610_CLK_FTM3>,
+48 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/timer/fsl,timrot.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Freescale MXS Timer

maintainers:
  - Frank Li <Frank.Li@nxp.com>

properties:
  compatible:
    items:
      - enum:
          - fsl,imx23-timrot
          - fsl,imx28-timrot
      - const: fsl,timrot

  reg:
    maxItems: 1

  interrupts:
    items:
      - description: irq for timer0
      - description: irq for timer1
      - description: irq for timer2
      - description: irq for timer3

  clocks:
    maxItems: 1

required:
  - compatible
  - reg
  - interrupts
  - clocks

additionalProperties: false

examples:
  - |
    timer: timer@80068000 {
        compatible = "fsl,imx28-timrot", "fsl,timrot";
        reg = <0x80068000 0x2000>;
        interrupts = <48>, <49>, <50>, <51>;
        clocks = <&clks 26>;
    };
+7 −2
Original line number Diff line number Diff line
@@ -15,8 +15,13 @@ description:

properties:
  compatible:
    enum:
    oneOf:
      - enum:
          - fsl,vf610-pit
          - nxp,s32g2-pit
      - items:
          - const: nxp,s32g3-pit
          - const: nxp,s32g2-pit

  reg:
    maxItems: 1
Loading