Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 19 May 2019 18:11:20 +0000 (11:11 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 19 May 2019 18:11:20 +0000 (11:11 -0700)
Pull clocksource updates from Ingo Molnar:
 "Misc clocksource/clockevent driver updates that came in a bit late but
  are ready for v5.2"

* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  misc: atmel_tclib: Do not probe already used TCBs
  clocksource/drivers/timer-atmel-tcb: Convert tc_clksrc_suspend|resume() to static
  clocksource/drivers/tcb_clksrc: Rename the file for consistency
  clocksource/drivers/timer-atmel-pit: Rework Kconfig option
  clocksource/drivers/tcb_clksrc: Move Kconfig option
  ARM: at91: Implement clocksource selection
  clocksource/drivers/tcb_clksrc: Use tcb as sched_clock
  clocksource/drivers/tcb_clksrc: Stop depending on atmel_tclib
  ARM: at91: move SoC specific definitions to SoC folder
  clocksource/drivers/timer-milbeaut: Cleanup common register accesses
  clocksource/drivers/timer-milbeaut: Add shutdown function
  clocksource/drivers/timer-milbeaut: Fix to enable one-shot timer
  clocksource/drivers/tegra: Rework for compensation of suspend time
  clocksource/drivers/sp804: Add COMPILE_TEST to CONFIG_ARM_TIMER_SP804
  clocksource/drivers/sun4i: Add a compatible for suniv
  dt-bindings: timer: Add Allwinner suniv timer

1  2 
arch/arm/mach-at91/Kconfig
drivers/clocksource/Kconfig
drivers/clocksource/Makefile
drivers/misc/Kconfig

index 01b1bdb4fb6e8031303fc2c0e810c87ca439a495,da1d97a06c53ae305a0decd4cdd30d99393eb72c..a2220e522f62c1fd24bf721a988881dfd6fe785a
@@@ -21,6 -21,7 +21,6 @@@ config SOC_SAMA5D
        depends on ARCH_MULTI_V7
        select SOC_SAMA5
        select CACHE_L2X0
 -      select HAVE_FB_ATMEL
        select HAVE_AT91_UTMI
        select HAVE_AT91_USB_CLK
        select HAVE_AT91_H32MX
@@@ -35,6 -36,7 +35,6 @@@ config SOC_SAMA5D
        bool "SAMA5D3 family"
        depends on ARCH_MULTI_V7
        select SOC_SAMA5
 -      select HAVE_FB_ATMEL
        select HAVE_AT91_UTMI
        select HAVE_AT91_SMD
        select HAVE_AT91_USB_CLK
@@@ -48,6 -50,7 +48,6 @@@ config SOC_SAMA5D
        depends on ARCH_MULTI_V7
        select SOC_SAMA5
        select CACHE_L2X0
 -      select HAVE_FB_ATMEL
        select HAVE_AT91_UTMI
        select HAVE_AT91_SMD
        select HAVE_AT91_USB_CLK
@@@ -104,6 -107,29 +104,29 @@@ config SOC_AT91SAM
            AT91SAM9X35
            AT91SAM9XE
  
+ comment "Clocksource driver selection"
+ config ATMEL_CLOCKSOURCE_PIT
+       bool "Periodic Interval Timer (PIT) support"
+       depends on SOC_AT91SAM9 || SOC_SAMA5
+       default SOC_AT91SAM9 || SOC_SAMA5
+       select ATMEL_PIT
+       help
+         Select this to get a clocksource based on the Atmel Periodic Interval
+         Timer. It has a relatively low resolution and the TC Block clocksource
+         should be preferred.
+ config ATMEL_CLOCKSOURCE_TCB
+       bool "Timer Counter Blocks (TCB) support"
+       default SOC_AT91RM9200 || SOC_AT91SAM9 || SOC_SAMA5
+       select ATMEL_TCB_CLKSRC
+       help
+         Select this to get a high precision clocksource based on a
+         TC block with a 5+ MHz base clock rate.
+         On platforms with 16-bit counters, two timer channels are combined
+         to make a single 32-bit timer.
+         It can also be used as a clock event device supporting oneshot mode.
  config HAVE_AT91_UTMI
        bool
  
index 48321488f0fd0bc644c8ca3c1b33597b73d5a87c,2137f672a12f4954f82fba920da736f63fe34dab..6bcaa4e2e72c0cfcd7098823fdc0dd5a73e56591
@@@ -69,13 -69,6 +69,13 @@@ config FTTMR010_TIME
          Enables support for the Faraday Technology timer block
          FTTMR010.
  
 +config IXP4XX_TIMER
 +      bool "Intel XScale IXP4xx timer driver" if COMPILE_TEST
 +      depends on HAS_IOMEM
 +      select CLKSRC_MMIO
 +      help
 +        Enables support for the Intel XScale IXP4xx SoC timer.
 +
  config ROCKCHIP_TIMER
        bool "Rockchip timer driver" if COMPILE_TEST
        depends on ARM || ARM64
@@@ -152,7 -145,6 +152,7 @@@ config VT8500_TIME
  config NPCM7XX_TIMER
        bool "NPCM7xx timer driver" if COMPILE_TEST
        depends on HAS_IOMEM
 +      select TIMER_OF
        select CLKSRC_MMIO
        help
          Enable 24-bit TIMER0 and TIMER1 counters in the NPCM7xx architecture,
@@@ -387,7 -379,7 +387,7 @@@ config ARM_GLOBAL_TIME
          This options enables support for the ARM global timer unit
  
  config ARM_TIMER_SP804
-       bool "Support for Dual Timer SP804 module"
+       bool "Support for Dual Timer SP804 module" if COMPILE_TEST
        depends on GENERIC_SCHED_CLOCK && CLKDEV_LOOKUP
        select CLKSRC_MMIO
        select TIMER_OF if OF
@@@ -407,8 -399,11 +407,11 @@@ config ARMV7M_SYSTIC
          This options enables support for the ARMv7M system timer unit
  
  config ATMEL_PIT
+       bool "Atmel PIT support" if COMPILE_TEST
+       depends on HAS_IOMEM
        select TIMER_OF if OF
-       def_bool SOC_AT91SAM9 || SOC_SAMA5
+       help
+         Support for the Periodic Interval Timer found on Atmel SoCs.
  
  config ATMEL_ST
        bool "Atmel ST timer support" if COMPILE_TEST
        help
          Support for the Atmel ST timer.
  
+ config ATMEL_TCB_CLKSRC
+       bool "Atmel TC Block timer driver" if COMPILE_TEST
+       depends on HAS_IOMEM
+       select TIMER_OF if OF
+       help
+         Support for Timer Counter Blocks on Atmel SoCs.
  config CLKSRC_EXYNOS_MCT
        bool "Exynos multi core timer driver" if COMPILE_TEST
        depends on ARM || ARM64
index dba4eff880def870c445d19174e8a9a11bde2526,923b9b60c90906615a5a223c75cbcd1a2a70944f..236858fa7fbf19d22dd4607c6b7360de101e66e4
@@@ -3,7 -3,7 +3,7 @@@ obj-$(CONFIG_TIMER_OF)           += timer-of.
  obj-$(CONFIG_TIMER_PROBE)     += timer-probe.o
  obj-$(CONFIG_ATMEL_PIT)               += timer-atmel-pit.o
  obj-$(CONFIG_ATMEL_ST)                += timer-atmel-st.o
- obj-$(CONFIG_ATMEL_TCB_CLKSRC)        += tcb_clksrc.o
+ obj-$(CONFIG_ATMEL_TCB_CLKSRC)        += timer-atmel-tcb.o
  obj-$(CONFIG_X86_PM_TIMER)    += acpi_pm.o
  obj-$(CONFIG_SCx200HR_TIMER)  += scx200_hrt.o
  obj-$(CONFIG_CS5535_CLOCK_EVENT_SRC)  += timer-cs5535.o
@@@ -20,7 -20,6 +20,7 @@@ obj-$(CONFIG_OMAP_DM_TIMER)   += timer-ti
  obj-$(CONFIG_DW_APB_TIMER)    += dw_apb_timer.o
  obj-$(CONFIG_DW_APB_TIMER_OF) += dw_apb_timer_of.o
  obj-$(CONFIG_FTTMR010_TIMER)  += timer-fttmr010.o
 +obj-$(CONFIG_IXP4XX_TIMER)    += timer-ixp4xx.o
  obj-$(CONFIG_ROCKCHIP_TIMER)      += timer-rockchip.o
  obj-$(CONFIG_CLKSRC_NOMADIK_MTU)      += nomadik-mtu.o
  obj-$(CONFIG_CLKSRC_DBX500_PRCMU)     += clksrc-dbx500-prcmu.o
diff --combined drivers/misc/Kconfig
index b80cb6af0cb4d1acacabbb1ec37ee4d212cb5d76,c84033909395f92a0d4aa9424786eec4eeedf2b7..6a0365b2332caa71a2393a0d376f359579eb6a87
@@@ -59,30 -59,6 +59,6 @@@ config ATMEL_TCLI
          blocks found on many Atmel processors.  This facilitates using
          these blocks by different drivers despite processor differences.
  
- config ATMEL_TCB_CLKSRC
-       bool "TC Block Clocksource"
-       depends on ATMEL_TCLIB
-       default y
-       help
-         Select this to get a high precision clocksource based on a
-         TC block with a 5+ MHz base clock rate.  Two timer channels
-         are combined to make a single 32-bit timer.
-         When GENERIC_CLOCKEVENTS is defined, the third timer channel
-         may be used as a clock event device supporting oneshot mode
-         (delays of up to two seconds) based on the 32 KiHz clock.
- config ATMEL_TCB_CLKSRC_BLOCK
-       int
-       depends on ATMEL_TCB_CLKSRC
-       default 0
-       range 0 1
-       help
-         Some chips provide more than one TC block, so you have the
-         choice of which one to use for the clock framework.  The other
-         TC can be used for other purposes, such as PWM generation and
-         interval timing.
  config DUMMY_IRQ
        tristate "Dummy IRQ handler"
        default n
@@@ -496,6 -472,22 +472,6 @@@ config VEXPRESS_SYSCF
          bus. System Configuration interface is one of the possible means
          of generating transactions on this bus.
  
 -config ASPEED_LPC_CTRL
 -      depends on (ARCH_ASPEED || COMPILE_TEST) && REGMAP && MFD_SYSCON
 -      tristate "Aspeed ast2400/2500 HOST LPC to BMC bridge control"
 -      ---help---
 -        Control Aspeed ast2400/2500 HOST LPC to BMC mappings through
 -        ioctl()s, the driver also provides a read/write interface to a BMC ram
 -        region where the host LPC read/write region can be buffered.
 -
 -config ASPEED_LPC_SNOOP
 -      tristate "Aspeed ast2500 HOST LPC snoop support"
 -      depends on (ARCH_ASPEED || COMPILE_TEST) && REGMAP && MFD_SYSCON
 -      help
 -        Provides a driver to control the LPC snoop interface which
 -        allows the BMC to listen on and save the data written by
 -        the host to an arbitrary LPC I/O port.
 -
  config PCI_ENDPOINT_TEST
        depends on PCI
        select CRC32