dts: arm: adi: Add Timer instance to MAX32655

Add timer instance in device tree
Add timer yaml file

Timer0/1/2/3 are common for MAX32xxx MCUs
MAX32655 has additional Timer4/5 which are low power timers

Co-authored-by: Mert Vatansever <mert.vatansever@analog.com>
Signed-off-by: Sadik Ozer <sadik.ozer@analog.com>
This commit is contained in:
Sadik Ozer 2023-11-15 19:38:15 +03:00 committed by Anas Nashif
parent e96a9df6d7
commit 166ac001bf
3 changed files with 113 additions and 0 deletions

View file

@ -95,5 +95,25 @@
interrupts = <16 0>;
status = "disabled";
};
lptimer0: timer@40080c00 {
compatible = "adi,max32-timer";
reg = <0x40080c00 0x400>;
interrupts = <9 0>;
status = "disabled";
clocks = <&gcr ADI_MAX32_CLOCK_BUS2 2>;
clock-source = <ADI_MAX32_PRPH_CLK_SRC_PCLK>;
prescaler = <1>;
};
lptimer1: timer@40081000 {
compatible = "adi,max32-timer";
reg = <0x40081000 0x400>;
interrupts = <10 0>;
status = "disabled";
clocks = <&gcr ADI_MAX32_CLOCK_BUS2 3>;
clock-source = <ADI_MAX32_PRPH_CLK_SRC_PCLK>;
prescaler = <1>;
};
};
};

View file

@ -218,6 +218,46 @@
vref-mv = <1220>;
status = "disabled";
};
timer0: timer@40010000 {
compatible = "adi,max32-timer";
reg = <0x40010000 0x1000>;
interrupts = <5 0>;
status = "disabled";
clocks = <&gcr ADI_MAX32_CLOCK_BUS0 15>;
clock-source = <ADI_MAX32_PRPH_CLK_SRC_PCLK>;
prescaler = <1>;
};
timer1: timer@40011000 {
compatible = "adi,max32-timer";
reg = <0x40011000 0x1000>;
interrupts = <6 0>;
status = "disabled";
clocks = <&gcr ADI_MAX32_CLOCK_BUS0 16>;
clock-source = <ADI_MAX32_PRPH_CLK_SRC_PCLK>;
prescaler = <1>;
};
timer2: timer@40012000 {
compatible = "adi,max32-timer";
reg = <0x40012000 0x1000>;
interrupts = <7 0>;
status = "disabled";
clocks = <&gcr ADI_MAX32_CLOCK_BUS0 17>;
clock-source = <ADI_MAX32_PRPH_CLK_SRC_PCLK>;
prescaler = <1>;
};
timer3: timer@40013000 {
compatible = "adi,max32-timer";
reg = <0x40013000 0x1000>;
interrupts = <8 0>;
status = "disabled";
clocks = <&gcr ADI_MAX32_CLOCK_BUS0 18>;
clock-source = <ADI_MAX32_PRPH_CLK_SRC_PCLK>;
prescaler = <1>;
};
};
};

View file

@ -0,0 +1,53 @@
# Copyright (c) 2023-2024 Analog Devices, Inc.
# SPDX-License-Identifier: Apache-2.0
description: ADI MAX32 timer
compatible: "adi,max32-timer"
include: [base.yaml, reset-device.yaml]
properties:
reg:
required: true
clocks:
required: true
clock-source:
type: int
enum: [0, 1, 2, 3, 4, 5, 6, 7]
description: |
Clock source to be used by the WDT peripheral. The following options
are available:
- 0: "ADI_MAX32_PRPH_CLK_SRC_PCLK" Peripheral clock
- 1: "ADI_MAX32_PRPH_CLK_SRC_EXTCLK" External Clock
- 2: "ADI_MAX32_PRPH_CLK_SRC_IBRO" Internal Baud Rate Oscillator
- 3: "ADI_MAX32_PRPH_CLK_SRC_ERFO" External Radio Frequency Oscillator
- 4: "ADI_MAX32_PRPH_CLK_SRC_ERTCO" External Real-Time Clock Oscillator
- 5: "ADI_MAX32_PRPH_CLK_SRC_INRO" Internal Ring Oscillator
- 6: "ADI_MAX32_PRPH_CLK_SRC_ISO" Internal Secondary Oscillator
- 7: "ADI_MAX32_PRPH_CLK_SRC_IBRO_DIV8" IBRO/8
The target device might not support every option please take a look on
target device user guide
prescaler:
type: int
required: true
enum:
- 1
- 2
- 4
- 8
- 16
- 32
- 64
- 128
- 256
- 512
- 1024
- 2048
- 4096
description: |
The prescaler that divides the timers source clock to set the timers count clock as follows:
F_cnt_clk = F_clock_source / prescaler