Commit 87dcebff authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'timers-core-2021-04-26' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull timer updates from Thomas Gleixner:
 "The time and timers updates contain:

  Core changes:

   - Allow runtime power management when the clocksource is changed.

   - A correctness fix for clock_adjtime32() so that the return value on
     success is not overwritten by the result of the copy to user.

   - Allow late installment of broadcast clockevent devices which was
     broken because nothing switched them over to oneshot mode. This
     went unnoticed so far because clockevent devices used to be built
     in, but now people started to make them modular.

   - Debugfs related simplifications

   - Small cleanups and improvements here and there

  Driver changes:

   - The usual set of device tree binding updates for a wide range of
     drivers/devices.

   - The usual updates and improvements for drivers all over the place
     but nothing outstanding.

   - No new clocksource/event drivers. They'll come back next time"

* tag 'timers-core-2021-04-26' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
  posix-timers: Preserve return value in clock_adjtime32()
  tick/broadcast: Allow late registered device to enter oneshot mode
  tick: Use tick_check_replacement() instead of open coding it
  time/timecounter: Mark 1st argument of timecounter_cyc2time() as const
  dt-bindings: timer: nuvoton,npcm7xx: Add wpcm450-timer
  clocksource/drivers/arm_arch_timer: Add __ro_after_init and __init
  clocksource/drivers/timer-ti-dm: Handle dra7 timer wrap errata i940
  clocksource/drivers/timer-ti-dm: Prepare to handle dra7 timer wrap issue
  clocksource/drivers/dw_apb_timer_of: Add handling for potential memory leak
  clocksource/drivers/npcm: Add support for WPCM450
  clocksource/drivers/sh_cmt: Don't use CMTOUT_IE with R-Car Gen2/3
  clocksource/drivers/pistachio: Fix trivial typo
  clocksource/drivers/ingenic_ost: Fix return value check in ingenic_ost_probe()
  clocksource/drivers/timer-ti-dm: Add missing set_state_oneshot_stopped
  clocksource/drivers/timer-ti-dm: Fix posted mode status check order
  dt-bindings: timer: renesas,cmt: Document R8A77961
  dt-bindings: timer: renesas,cmt: Add r8a779a0 CMT support
  clocksource/drivers/ingenic-ost: Add support for the JZ4760B
  clocksource/drivers/ingenic: Add support for the JZ4760
  dt-bindings: timer: ingenic: Add compatible strings for JZ4760(B)
  ...
parents 91552ab8 2d036dfa
Loading
Loading
Loading
Loading
+22 −8
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@ select:
        enum:
          - ingenic,jz4740-tcu
          - ingenic,jz4725b-tcu
          - ingenic,jz4760-tcu
          - ingenic,jz4760b-tcu
          - ingenic,jz4770-tcu
          - ingenic,jz4780-tcu
          - ingenic,x1000-tcu
@@ -52,12 +54,15 @@ properties:
          - enum:
              - ingenic,jz4740-tcu
              - ingenic,jz4725b-tcu
              - ingenic,jz4770-tcu
              - ingenic,jz4760-tcu
              - ingenic,x1000-tcu
          - const: simple-mfd
      - items:
          - const: ingenic,jz4780-tcu
          - const: ingenic,jz4770-tcu
          - enum:
              - ingenic,jz4780-tcu
              - ingenic,jz4770-tcu
              - ingenic,jz4760b-tcu
          - const: ingenic,jz4760-tcu
          - const: simple-mfd

  reg:
@@ -118,6 +123,8 @@ patternProperties:
          - items:
              - enum:
                  - ingenic,jz4770-watchdog
                  - ingenic,jz4760b-watchdog
                  - ingenic,jz4760-watchdog
                  - ingenic,jz4725b-watchdog
              - const: ingenic,jz4740-watchdog

@@ -147,6 +154,8 @@ patternProperties:
              - ingenic,jz4725b-pwm
          - items:
              - enum:
                  - ingenic,jz4760-pwm
                  - ingenic,jz4760b-pwm
                  - ingenic,jz4770-pwm
                  - ingenic,jz4780-pwm
              - const: ingenic,jz4740-pwm
@@ -183,10 +192,15 @@ patternProperties:
        oneOf:
          - enum:
              - ingenic,jz4725b-ost
              - ingenic,jz4770-ost
              - ingenic,jz4760b-ost
          - items:
              - const: ingenic,jz4760-ost
              - const: ingenic,jz4725b-ost
          - items:
              - const: ingenic,jz4780-ost
              - const: ingenic,jz4770-ost
              - enum:
                  - ingenic,jz4780-ost
                  - ingenic,jz4770-ost
              - const: ingenic,jz4760b-ost

      reg:
        maxItems: 1
@@ -226,7 +240,7 @@ examples:
    #include <dt-bindings/clock/jz4770-cgu.h>
    #include <dt-bindings/clock/ingenic,tcu.h>
    tcu: timer@10002000 {
      compatible = "ingenic,jz4770-tcu", "simple-mfd";
      compatible = "ingenic,jz4770-tcu", "ingenic,jz4760-tcu", "simple-mfd";
      reg = <0x10002000 0x1000>;
      #address-cells = <1>;
      #size-cells = <1>;
@@ -272,7 +286,7 @@ examples:
      };

      ost: timer@e0 {
        compatible = "ingenic,jz4770-ost";
        compatible = "ingenic,jz4770-ost", "ingenic,jz4760b-ost";
        reg = <0xe0 0x20>;

        clocks = <&tcu TCU_CLK_OST>;
+2 −1
Original line number Diff line number Diff line
@@ -4,7 +4,8 @@ Nuvoton NPCM7xx have three timer modules, each timer module provides five 24-bit
timer counters.

Required properties:
- compatible      : "nuvoton,npcm750-timer" for Poleg NPCM750.
- compatible      : "nuvoton,npcm750-timer" for Poleg NPCM750, or
                    "nuvoton,wpcm450-timer" for Hermon WPCM450.
- reg             : Offset and length of the register set for the device.
- interrupts      : Contain the timer interrupt of timer 0.
- clocks          : phandle of timer reference clock (usually a 25 MHz clock).
+4 −0
Original line number Diff line number Diff line
@@ -74,11 +74,13 @@ properties:
              - renesas,r8a774e1-cmt0     # 32-bit CMT0 on RZ/G2H
              - renesas,r8a7795-cmt0      # 32-bit CMT0 on R-Car H3
              - renesas,r8a7796-cmt0      # 32-bit CMT0 on R-Car M3-W
              - renesas,r8a77961-cmt0     # 32-bit CMT0 on R-Car M3-W+
              - renesas,r8a77965-cmt0     # 32-bit CMT0 on R-Car M3-N
              - renesas,r8a77970-cmt0     # 32-bit CMT0 on R-Car V3M
              - renesas,r8a77980-cmt0     # 32-bit CMT0 on R-Car V3H
              - renesas,r8a77990-cmt0     # 32-bit CMT0 on R-Car E3
              - renesas,r8a77995-cmt0     # 32-bit CMT0 on R-Car D3
              - renesas,r8a779a0-cmt0     # 32-bit CMT0 on R-Car V3U
          - const: renesas,rcar-gen3-cmt0 # 32-bit CMT0 on R-Car Gen3 and RZ/G2

      - items:
@@ -89,11 +91,13 @@ properties:
              - renesas,r8a774e1-cmt1     # 48-bit CMT on RZ/G2H
              - renesas,r8a7795-cmt1      # 48-bit CMT on R-Car H3
              - renesas,r8a7796-cmt1      # 48-bit CMT on R-Car M3-W
              - renesas,r8a77961-cmt1     # 48-bit CMT on R-Car M3-W+
              - renesas,r8a77965-cmt1     # 48-bit CMT on R-Car M3-N
              - renesas,r8a77970-cmt1     # 48-bit CMT on R-Car V3M
              - renesas,r8a77980-cmt1     # 48-bit CMT on R-Car V3H
              - renesas,r8a77990-cmt1     # 48-bit CMT on R-Car E3
              - renesas,r8a77995-cmt1     # 48-bit CMT on R-Car D3
              - renesas,r8a779a0-cmt1     # 48-bit CMT on R-Car V3U
          - const: renesas,rcar-gen3-cmt1 # 48-bit CMT on R-Car Gen3 and RZ/G2

  reg:
+6 −0
Original line number Diff line number Diff line
@@ -28,8 +28,14 @@ properties:
          - renesas,tmu-r8a774e1 # RZ/G2H
          - renesas,tmu-r8a7778  # R-Car M1A
          - renesas,tmu-r8a7779  # R-Car H1
          - renesas,tmu-r8a7795  # R-Car H3
          - renesas,tmu-r8a7796  # R-Car M3-W
          - renesas,tmu-r8a77961 # R-Car M3-W+
          - renesas,tmu-r8a77965 # R-Car M3-N
          - renesas,tmu-r8a77970 # R-Car V3M
          - renesas,tmu-r8a77980 # R-Car V3H
          - renesas,tmu-r8a77990 # R-Car E3
          - renesas,tmu-r8a77995 # R-Car D3
      - const: renesas,tmu

  reg:
+2 −2
Original line number Diff line number Diff line
@@ -1168,7 +1168,7 @@ timer2: timer@0 {
			};
		};

		target-module@34000 {			/* 0x48034000, ap 7 46.0 */
		timer3_target: target-module@34000 {	/* 0x48034000, ap 7 46.0 */
			compatible = "ti,sysc-omap4-timer", "ti,sysc";
			reg = <0x34000 0x4>,
			      <0x34010 0x4>;
@@ -1195,7 +1195,7 @@ timer3: timer@0 {
			};
		};

		target-module@36000 {			/* 0x48036000, ap 9 4e.0 */
		timer4_target: target-module@36000 {	/* 0x48036000, ap 9 4e.0 */
			compatible = "ti,sysc-omap4-timer", "ti,sysc";
			reg = <0x36000 0x4>,
			      <0x36010 0x4>;
Loading