[PATCH v8 0/2] Add the driver for Intel Keem Bay SoC timer block

shruthi.sanil
2022-02-22T09:57:01Z

From: Shruthi Sanil <shruthi.sanil@intel.com>

The timer block supports 1 64-bit free running counter
and 8 32-bit general purpose timers.

Patch 1 holds the device tree binding documentation.
Patch 2 holds the device driver.

This driver is tested on the Keem Bay evaluation module board.

Changes since v7:
- Added back the compatible string "intel,keembay-gpt-creg"
as an enum to the mfd device node in the device tree bindings.
- As the timer is used as a broadcast timer during CPU idle,
only one timer is needed. Hence updated the driver accordingly
incorporating the review comments.

Changes since v6:
- Removed the unused compatible string from the mfd device node
to fix the error thrown by the make dt-binding command.

Changes since v5:
- Created a MFD device for the common configuration register
in the device tree bindings.
- Updated the timer driver with the MFD framework to access the
common configuration register.

Changes since v4:
- Updated the description in the device tree bindings.
- Updated the unit address of all the timers and counter
in the device tree binding.

Changes since v3:
- Update in KConfig file to support COMPILE_TEST for Keem Bay timer.
- Update in device tree bindings to remove status field.
- Update in device tree bindings to remove 64-bit address space for
the child nodes by using non-empty ranges.

Changes since v2:
- Add multi timer support.
- Update in the device tree binding to support multi timers.
- Code optimization.

Changes since v1:
- Add support for KEEMBAY_TIMER to get selected through Kconfig.platforms.
- Add CLOCK_EVT_FEAT_DYNIRQ as part of clockevent feature.
- Avoid overlapping reg regions across 2 device nodes.
- Simplify 2 device nodes as 1 because both are from same IP block.
- Adapt the driver code according to the new simplified devicetree.

Shruthi Sanil (2):
dt-bindings: timer: Add bindings for Intel Keem Bay SoC Timer
clocksource: Add Intel Keem Bay timer support

.../bindings/timer/intel,keembay-timer.yaml | 128 ++++++++++
MAINTAINERS | 6 +
drivers/clocksource/Kconfig | 11 +
drivers/clocksource/Makefile | 1 +
drivers/clocksource/timer-keembay.c | 230 ++++++++++++++++++
5 files changed, 376 insertions(+)
create mode 100644 Documentation/devicetree/bindings/timer/intel,keembay-timer.yaml
create mode 100644 drivers/clocksource/timer-keembay.c

base-commit: cfb92440ee71adcc2105b0890bb01ac3cddb8507
--
2.17.1