From: Thierry Reding <treding@xxxxxxxxxx> This set of patches adds the device tree bindings and a simplified driver for the timers found on Tegra186 and later SoCs. The driver itself currently only exposes a couple of clock sources and a watchdog, which in turn relies on the counter provided by one of the timers. The timers themselves are not used at the moment because the SoC also has an architected timer and there's currently no use for the additional timers provided by this hardware block. I suggest that patches 1 & 2 go through the clocksource tree, while I can carry the DTS changes in the Tegra tree for v5.8. Changes in v3: - request IRQ at the end of ->probe() to avoid potential race condition - only enable/disable watchdog when it's active - use _relaxed variants of register accessors - drop unneeded tegra186_timer.irq field Changes in v2: - address review comments on the bindings - make the driver buildable as a module - support various clock sources Thierry Thierry Reding (7): dt-bindings: timer: Add bindings for NVIDIA Tegra186 timers clocksource: Add Tegra186 timers support arm64: tegra: Order nodes by unit-address on Tegra194 arm64: tegra: Add native timer support on Tegra186 arm64: tegra: Enable native timers on Jetson TX2 arm64: tegra: Add native timer support on Tegra194 arm64: tegra: Enable native timers on Jetson AGX Xavier .../bindings/timer/nvidia,tegra186-timer.yaml | 61 +++ .../arm64/boot/dts/nvidia/tegra186-p3310.dtsi | 4 + arch/arm64/boot/dts/nvidia/tegra186.dtsi | 16 + .../arm64/boot/dts/nvidia/tegra194-p2888.dtsi | 4 + arch/arm64/boot/dts/nvidia/tegra194.dtsi | 81 +-- drivers/clocksource/Kconfig | 8 + drivers/clocksource/Makefile | 1 + drivers/clocksource/timer-tegra186.c | 508 ++++++++++++++++++ 8 files changed, 651 insertions(+), 32 deletions(-) create mode 100644 Documentation/devicetree/bindings/timer/nvidia,tegra186-timer.yaml create mode 100644 drivers/clocksource/timer-tegra186.c -- 2.24.1