Zephyr API Documentation 4.2.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
renesas_rzv_clock.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2025 Renesas Electronics Corporation
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_RENESAS_RZV_CLOCK_H_
8#define ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_RENESAS_RZV_CLOCK_H_
9
10/* RZ/V clock configuration values */
11#define RZ_IP_MASK 0xFF000000UL
12#define RZ_IP_SHIFT 24UL
13#define RZ_IP_CH_MASK 0xFF0000UL
14#define RZ_IP_CH_SHIFT 16UL
15#define RZ_CLOCK_MASK 0xFF00UL
16#define RZ_CLOCK_SHIFT 8UL
17#define RZ_CLOCK_DIV_MASK 0xFFUL
18#define RZ_CLOCK_DIV_SHIFT 0UL
19
20#define RZ_IP_GTM 0UL /* General Timer */
21#define RZ_IP_GPT 1UL /* General PWM Timer */
22#define RZ_IP_SCI 2UL /* Serial Communications Interface */
23#define RZ_IP_SCIF 3UL /* Serial Communications Interface with FIFO */
24#define RZ_IP_RIIC 4UL /* I2C Bus Interface */
25#define RZ_IP_RSPI 5UL /* Renesas Serial Peripheral Interface */
26#define RZ_IP_MHU 6UL /* Message Handling Unit */
27#define RZ_IP_DMAC 7UL /* Direct Memory Access Controller */
28#define RZ_IP_CANFD 8UL /* CANFD Interface (RS-CANFD) */
29#if !defined(CONFIG_SOC_SERIES_RZV2L)
30#define RZ_IP_ADC 10UL /* A/D Converter */
31#define RZ_IP_WDT 11UL /* Watchdog Timer */
32#endif
33
34#define RZ_CLOCK_ICLK 0UL /* Cortex-A55 Clock */
35#define RZ_CLOCK_I2CLK 1UL /* Cortex-M33 Clock */
36#define RZ_CLOCK_GCLK 2UL /* GPU Clock */
37#define RZ_CLOCK_S0CLK 3UL /* DDR-PHY Clock */
38#define RZ_CLOCK_SPI0CLK 4UL /* SPI0 Clock */
39#define RZ_CLOCK_SPI1CLK 5UL /* SPI1 Clock */
40#define RZ_CLOCK_SD0CLK 6UL /* SDH0 Clock */
41#define RZ_CLOCK_SD1CLK 7UL /* SDH1 Clock */
42#define RZ_CLOCK_M0CLK 8UL /* VCP, LCDC Clock */
43#define RZ_CLOCK_M1CLK 9UL /* MIPI-DSI, MIPI-CSI Clock */
44#define RZ_CLOCK_M2CLK 10UL /* CRU, MIPI-DSI Clock */
45#define RZ_CLOCK_M3CLK 11UL /* MIPI-DSI, LCDC Clock */
46#define RZ_CLOCK_M4CLK 12UL /* MIPI-DSI Clock */
47#define RZ_CLOCK_HPCLK 13UL /* Ethernet Clock */
48#define RZ_CLOCK_TSUCLK 14UL /* TSU Clock */
49#define RZ_CLOCK_ZTCLK 15UL /* JAUTH Clock */
50#define RZ_CLOCK_P0CLK 16UL /* APB-BUS Clock */
51#define RZ_CLOCK_P1CLK 17UL /* AXI-BUS Clock */
52#define RZ_CLOCK_P2CLK 18UL /* P2CLK */
53#define RZ_CLOCK_ATCLK 19UL /* ATCLK */
54#define RZ_CLOCK_OSCCLK 20UL /* OSC Clock */
55
56#define RZ_CLOCK(IP, ch, clk, div) \
57 ((RZ_IP_##IP << RZ_IP_SHIFT) | ((ch) << RZ_IP_CH_SHIFT) | ((clk) << RZ_CLOCK_SHIFT) | \
58 ((div) << RZ_CLOCK_DIV_SHIFT))
59
66
67/* GTM */
68#define RZ_CLOCK_GTM(ch) RZ_CLOCK(GTM, ch, RZ_CLOCK_P0CLK, 1)
69
70/* GPT */
71#define RZ_CLOCK_GPT(ch) RZ_CLOCK(GPT, ch, RZ_CLOCK_P0CLK, 1)
72
73/* SCI */
74#define RZ_CLOCK_SCI(ch) RZ_CLOCK(SCI, ch, RZ_CLOCK_P0CLK, 1)
75
76/* SCIF */
77#define RZ_CLOCK_SCIF(ch) RZ_CLOCK(SCIF, ch, RZ_CLOCK_P0CLK, 1)
78
79/* RIIC */
80#define RZ_CLOCK_RIIC(ch) RZ_CLOCK(RIIC, ch, RZ_CLOCK_P0CLK, 1)
81
82/* RSPI */
83#define RZ_CLOCK_RSPI(ch) RZ_CLOCK(RSPI, ch, RZ_CLOCK_P0CLK, 1)
84
85/* MHU */
86#define RZ_CLOCK_MHU(ch) RZ_CLOCK(MHU, ch, RZ_CLOCK_P1CLK, 2)
87
88/* DMAC */
89#define RZ_CLOCK_DMAC(ch) RZ_CLOCK(DMAC, ch, RZ_CLOCK_P1CLK, 1)
90
91/* CAN */
92#define RZ_CLOCK_CANFD(ch) RZ_CLOCK(CANFD, ch, RZ_CLOCK_P0CLK, 1)
93
94#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_CLOCK_RENESAS_RZV_CLOCK_H_ */