Skip to content

Commit a1c803d

Browse files
Phuc PhamKhiemNguyenT
authored andcommitted
hal: renesas: rz: Add initial support for RZ/A
This is the initial hal support for RZ/A series. The hal layer support for RZ/A3UL will based on RZ/A FSP Signed-off-by: Phuc Pham <[email protected]> Signed-off-by: Nhut Nguyen <[email protected]>
1 parent f00fd6c commit a1c803d

File tree

100 files changed

+125958
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+125958
-0
lines changed

drivers/rz/README

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ Flexible Software Package (FSP)
33

44
Origin:
55
Renesas Electronics Corporation
6+
RZ/A: https://github.com/renesas/rza-fsp
67
RZ/G: https://github.com/renesas/rzg-fsp
78
RZ/N: https://github.com/renesas/rzn-fsp
89
RZ/T: https://github.com/renesas/rzt-fsp
910

1011
Status:
12+
RZ/A FSP: version v3.3.0
1113
RZ/G FSP: version v2.1.0
1214
RZ/N FSP: version v2.1.0
1315
RZ/T FSP: version v2.2.0
@@ -23,6 +25,9 @@ Dependencies:
2325
None.
2426

2527
URL:
28+
https://github.com/renesas/rza-fsp
29+
Commit: efa73c09f98e6d124d98692fffc1091eac0bbe47
30+
2631
https://github.com/renesas/rzg-fsp
2732
Commit: 8db06f881784144e86361b1266ac4d3c026f6ad8
2833

drivers/rz/fsp/inc/instances/rza/fsp_common_api.h

Lines changed: 380 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
/*
2+
* Copyright (c) 2020 - 2024 Renesas Electronics Corporation and/or its affiliates
3+
*
4+
* SPDX-License-Identifier: BSD-3-Clause
5+
*/
6+
7+
#ifndef FSP_VERSION_H
8+
#define FSP_VERSION_H
9+
10+
/***********************************************************************************************************************
11+
* Includes
12+
**********************************************************************************************************************/
13+
14+
/* Includes board and MCU related header files. */
15+
#include "bsp_api.h"
16+
17+
/*******************************************************************************************************************//**
18+
* @addtogroup RENESAS_COMMON
19+
* @{
20+
**********************************************************************************************************************/
21+
22+
#ifdef __cplusplus
23+
extern "C" {
24+
#endif
25+
26+
/**********************************************************************************************************************
27+
* Macro definitions
28+
**********************************************************************************************************************/
29+
30+
/** FSP pack major version. */
31+
#define FSP_VERSION_MAJOR (3U)
32+
33+
/** FSP pack minor version. */
34+
#define FSP_VERSION_MINOR (3U)
35+
36+
/** FSP pack patch version. */
37+
#define FSP_VERSION_PATCH (0U)
38+
39+
/** FSP pack version build number (currently unused). */
40+
#define FSP_VERSION_BUILD (0U)
41+
42+
/** Public FSP version name. */
43+
#define FSP_VERSION_STRING ("3.3.0")
44+
45+
/** Unique FSP version ID. */
46+
#define FSP_VERSION_BUILD_STRING ("Built with RZ/A3UL Flexible Software Package version 3.3.0")
47+
48+
/**********************************************************************************************************************
49+
* Typedef definitions
50+
**********************************************************************************************************************/
51+
52+
/** FSP Pack version structure */
53+
typedef union st_fsp_pack_version
54+
{
55+
/** Version id */
56+
uint32_t version_id;
57+
58+
/**
59+
* Code version parameters, little endian order.
60+
*/
61+
struct version_id_b_s
62+
{
63+
uint8_t build; ///< Build version of FSP Pack
64+
uint8_t patch; ///< Patch version of FSP Pack
65+
uint8_t minor; ///< Minor version of FSP Pack
66+
uint8_t major; ///< Major version of FSP Pack
67+
} version_id_b;
68+
} fsp_pack_version_t;
69+
70+
/** @} */
71+
72+
#ifdef __cplusplus
73+
}
74+
#endif
75+
76+
#endif

drivers/rz/fsp/src/rza/CMakeLists.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# SPDX-License-Identifier: Apache-2.0
2+
3+
set(srcs
4+
bsp/mcu/all/bsp_clocks.c
5+
bsp/mcu/all/bsp_delay.c
6+
bsp/mcu/all/bsp_irq.c
7+
bsp/mcu/all/bsp_io.c
8+
bsp/mcu/all/bsp_gicv3.c
9+
bsp/mcu/${CONFIG_SOC_SERIES}/bsp_clocks_setup.c
10+
)
11+
12+
zephyr_library_sources(${srcs})
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/*
2+
* Copyright (c) 2020 - 2024 Renesas Electronics Corporation and/or its affiliates
3+
*
4+
* SPDX-License-Identifier: BSD-3-Clause
5+
*/
6+
#ifndef __BASE_ADDRESSES_H
7+
#define __BASE_ADDRESSES_H
8+
9+
#if 33U == __CORTEX_M // NOLINT(readability-magic-numbers)
10+
11+
/* =========================================================================================================================== */
12+
/* ================ Device Specific Peripheral Address Map ================ */
13+
/* =========================================================================================================================== */
14+
15+
/** @addtogroup Device_Peripheral_peripheralAddr
16+
* @{
17+
*/
18+
19+
/** @} */ /* End of group Device_Peripheral_peripheralAddr */
20+
21+
/* =========================================================================================================================== */
22+
/* ================ Peripheral declaration ================ */
23+
/* =========================================================================================================================== */
24+
25+
/** @addtogroup Device_Peripheral_declaration
26+
* @{
27+
*/
28+
29+
/** @} */ /* End of group Device_Peripheral_declaration */
30+
31+
#else
32+
33+
/* =========================================================================================================================== */
34+
/* ================ Device Specific Peripheral Address Map ================ */
35+
/* =========================================================================================================================== */
36+
37+
/** @addtogroup Device_Peripheral_peripheralAddr
38+
* @{
39+
*/
40+
41+
/** @} */ /* End of group Device_Peripheral_peripheralAddr */
42+
43+
/* =========================================================================================================================== */
44+
/* ================ Peripheral declaration ================ */
45+
/* =========================================================================================================================== */
46+
47+
/** @addtogroup Device_Peripheral_declaration
48+
* @{
49+
*/
50+
51+
/** @} */ /* End of group Device_Peripheral_declaration */
52+
53+
#endif
54+
55+
#endif
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/*
2+
* Copyright (c) 2020 - 2024 Renesas Electronics Corporation and/or its affiliates
3+
*
4+
* SPDX-License-Identifier: BSD-3-Clause
5+
*/
6+
7+
/**********************************************************************************************************************
8+
* File Name : iobitmask.h
9+
* Version : 1.00
10+
* Description : iobitmask header
11+
*********************************************************************************************************************/
12+
13+
#ifndef ___IOBITMASK_HEADER__
14+
#define ___IOBITMASK_HEADER__
15+
16+
#include "iobitmasks/adc_iobitmask.h"
17+
#include "iobitmasks/canfd_iobitmask.h"
18+
#include "iobitmasks/cpg_iobitmask.h"
19+
#include "iobitmasks/cru_iobitmask.h"
20+
#include "iobitmasks/dma_iobitmask.h"
21+
#include "iobitmasks/eccram_iobitmask.h"
22+
#include "iobitmasks/ether_iobitmask.h"
23+
#include "iobitmasks/gpio_iobitmask.h"
24+
#include "iobitmasks/gtm_iobitmask.h"
25+
#include "iobitmasks/intc_ia55_iobitmask.h"
26+
#include "iobitmasks/intc_gic_iobitmask.h"
27+
#include "iobitmasks/isu_iobitmask.h"
28+
#include "iobitmasks/lcdc_iobitmask.h"
29+
#include "iobitmasks/mstp_iobitmask.h"
30+
#include "iobitmasks/mtu_iobitmask.h"
31+
#include "iobitmasks/octa_iobitmask.h"
32+
#include "iobitmasks/riic_iobitmask.h"
33+
#include "iobitmasks/rspi_iobitmask.h"
34+
#include "iobitmasks/scifa_iobitmask.h"
35+
#include "iobitmasks/scig_iobitmask.h"
36+
#include "iobitmasks/sdhi_iobitmask.h"
37+
#include "iobitmasks/spibsc_iobitmask.h"
38+
#include "iobitmasks/ssi_iobitmask.h"
39+
#include "iobitmasks/sysc_iobitmask.h"
40+
#include "iobitmasks/tsu_iobitmask.h"
41+
#include "iobitmasks/usb_iobitmask.h"
42+
#include "iobitmasks/wdt_iobitmask.h"
43+
44+
#endif /* ___IOBITMASK_HEADER__ */
Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
/*
2+
* Copyright (c) 2020 - 2024 Renesas Electronics Corporation and/or its affiliates
3+
*
4+
* SPDX-License-Identifier: BSD-3-Clause
5+
*/
6+
7+
/**********************************************************************************************************************
8+
* File Name : adc_iobitmask.h
9+
* Version : 1.00
10+
* Description : IO bit mask file for adc.
11+
*********************************************************************************************************************/
12+
13+
#ifndef ADC_IOBITMASK_H
14+
#define ADC_IOBITMASK_H
15+
16+
#define R_ADC_ADM0_ADCE_Msk (0x00000001UL)
17+
#define R_ADC_ADM0_ADCE_Pos (0UL)
18+
#define R_ADC_ADM0_ADBSY_Msk (0x00000002UL)
19+
#define R_ADC_ADM0_ADBSY_Pos (1UL)
20+
#define R_ADC_ADM0_PWDWNB_Msk (0x00000004UL)
21+
#define R_ADC_ADM0_PWDWNB_Pos (2UL)
22+
#define R_ADC_ADM0_SRESB_Msk (0x00008000UL)
23+
#define R_ADC_ADM0_SRESB_Pos (15UL)
24+
#define R_ADC_ADM1_TRG_Msk (0x00000001UL)
25+
#define R_ADC_ADM1_TRG_Pos (0UL)
26+
#define R_ADC_ADM1_TRGIN_Msk (0x00000002UL)
27+
#define R_ADC_ADM1_TRGIN_Pos (1UL)
28+
#define R_ADC_ADM1_MS_Msk (0x00000004UL)
29+
#define R_ADC_ADM1_MS_Pos (2UL)
30+
#define R_ADC_ADM1_RPS_Msk (0x00000008UL)
31+
#define R_ADC_ADM1_RPS_Pos (3UL)
32+
#define R_ADC_ADM1_BS_Msk (0x00000010UL)
33+
#define R_ADC_ADM1_BS_Pos (4UL)
34+
#define R_ADC_ADM1_EGA_Msk (0x00003000UL)
35+
#define R_ADC_ADM1_EGA_Pos (12UL)
36+
#define R_ADC_ADM1_TRGEN_Msk (0x003F0000UL)
37+
#define R_ADC_ADM1_TRGEN_Pos (16UL)
38+
#define R_ADC_ADM2_CHSEL_Msk (0x00000003UL)
39+
#define R_ADC_ADM2_CHSEL_Pos (0UL)
40+
#define R_ADC_ADM3_ADSMP_Msk (0x0000FFFFUL)
41+
#define R_ADC_ADM3_ADSMP_Pos (0UL)
42+
#define R_ADC_ADM3_ADCMP_Msk (0x00FF0000UL)
43+
#define R_ADC_ADM3_ADCMP_Pos (16UL)
44+
#define R_ADC_ADM3_ADIL_Msk (0xFF000000UL)
45+
#define R_ADC_ADM3_ADIL_Pos (24UL)
46+
#define R_ADC_ADINT_INTEN_Msk (0x0000000FUL)
47+
#define R_ADC_ADINT_INTEN_Pos (0UL)
48+
#define R_ADC_ADINT_CSEEN_Msk (0x00010000UL)
49+
#define R_ADC_ADINT_CSEEN_Pos (16UL)
50+
#define R_ADC_ADINT_INTS_Msk (0x80000000UL)
51+
#define R_ADC_ADINT_INTS_Pos (31UL)
52+
#define R_ADC_ADSTS_INTST_Msk (0x0000000FUL)
53+
#define R_ADC_ADSTS_INTST_Pos (0UL)
54+
#define R_ADC_ADSTS_CSEST_Msk (0x00010000UL)
55+
#define R_ADC_ADSTS_CSEST_Pos (16UL)
56+
#define R_ADC_ADSTS_TRGS_Msk (0x80000000UL)
57+
#define R_ADC_ADSTS_TRGS_Pos (31UL)
58+
#define R_ADC_ADIVC_DIVADC_Msk (0x000001FFUL)
59+
#define R_ADC_ADIVC_DIVADC_Pos (0UL)
60+
#define R_ADC_ADFIL_FILONOFF_Msk (0x00000001UL)
61+
#define R_ADC_ADFIL_FILONOFF_Pos (0UL)
62+
#define R_ADC_ADFIL_FILNUM_Msk (0x00000030UL)
63+
#define R_ADC_ADFIL_FILNUM_Pos (4UL)
64+
#define R_ADC_ADCR0_AD0_Msk (0x00000001UL)
65+
#define R_ADC_ADCR0_AD0_Pos (0UL)
66+
#define R_ADC_ADCR0_AD1_Msk (0x00000002UL)
67+
#define R_ADC_ADCR0_AD1_Pos (1UL)
68+
#define R_ADC_ADCR0_AD2_Msk (0x00000004UL)
69+
#define R_ADC_ADCR0_AD2_Pos (2UL)
70+
#define R_ADC_ADCR0_AD3_Msk (0x00000008UL)
71+
#define R_ADC_ADCR0_AD3_Pos (3UL)
72+
#define R_ADC_ADCR0_AD4_Msk (0x00000010UL)
73+
#define R_ADC_ADCR0_AD4_Pos (4UL)
74+
#define R_ADC_ADCR0_AD5_Msk (0x00000020UL)
75+
#define R_ADC_ADCR0_AD5_Pos (5UL)
76+
#define R_ADC_ADCR0_AD6_Msk (0x00000040UL)
77+
#define R_ADC_ADCR0_AD6_Pos (6UL)
78+
#define R_ADC_ADCR0_AD7_Msk (0x00000080UL)
79+
#define R_ADC_ADCR0_AD7_Pos (7UL)
80+
#define R_ADC_ADCR0_AD8_Msk (0x00000100UL)
81+
#define R_ADC_ADCR0_AD8_Pos (8UL)
82+
#define R_ADC_ADCR0_AD9_Msk (0x00000200UL)
83+
#define R_ADC_ADCR0_AD9_Pos (9UL)
84+
#define R_ADC_ADCR0_AD10_Msk (0x00000400UL)
85+
#define R_ADC_ADCR0_AD10_Pos (10UL)
86+
#define R_ADC_ADCR0_AD11_Msk (0x00000800UL)
87+
#define R_ADC_ADCR0_AD11_Pos (11UL)
88+
#define R_ADC_ADCR1_AD0_Msk (0x00000001UL)
89+
#define R_ADC_ADCR1_AD0_Pos (0UL)
90+
#define R_ADC_ADCR1_AD1_Msk (0x00000002UL)
91+
#define R_ADC_ADCR1_AD1_Pos (1UL)
92+
#define R_ADC_ADCR1_AD2_Msk (0x00000004UL)
93+
#define R_ADC_ADCR1_AD2_Pos (2UL)
94+
#define R_ADC_ADCR1_AD3_Msk (0x00000008UL)
95+
#define R_ADC_ADCR1_AD3_Pos (3UL)
96+
#define R_ADC_ADCR1_AD4_Msk (0x00000010UL)
97+
#define R_ADC_ADCR1_AD4_Pos (4UL)
98+
#define R_ADC_ADCR1_AD5_Msk (0x00000020UL)
99+
#define R_ADC_ADCR1_AD5_Pos (5UL)
100+
#define R_ADC_ADCR1_AD6_Msk (0x00000040UL)
101+
#define R_ADC_ADCR1_AD6_Pos (6UL)
102+
#define R_ADC_ADCR1_AD7_Msk (0x00000080UL)
103+
#define R_ADC_ADCR1_AD7_Pos (7UL)
104+
#define R_ADC_ADCR1_AD8_Msk (0x00000100UL)
105+
#define R_ADC_ADCR1_AD8_Pos (8UL)
106+
#define R_ADC_ADCR1_AD9_Msk (0x00000200UL)
107+
#define R_ADC_ADCR1_AD9_Pos (9UL)
108+
#define R_ADC_ADCR1_AD10_Msk (0x00000400UL)
109+
#define R_ADC_ADCR1_AD10_Pos (10UL)
110+
#define R_ADC_ADCR1_AD11_Msk (0x00000800UL)
111+
#define R_ADC_ADCR1_AD11_Pos (11UL)
112+
#define R_ADC_ADCR2_AD0_Msk (0x00000001UL)
113+
#define R_ADC_ADCR2_AD0_Pos (0UL)
114+
#define R_ADC_ADCR2_AD1_Msk (0x00000002UL)
115+
#define R_ADC_ADCR2_AD1_Pos (1UL)
116+
#define R_ADC_ADCR2_AD2_Msk (0x00000004UL)
117+
#define R_ADC_ADCR2_AD2_Pos (2UL)
118+
#define R_ADC_ADCR2_AD3_Msk (0x00000008UL)
119+
#define R_ADC_ADCR2_AD3_Pos (3UL)
120+
#define R_ADC_ADCR2_AD4_Msk (0x00000010UL)
121+
#define R_ADC_ADCR2_AD4_Pos (4UL)
122+
#define R_ADC_ADCR2_AD5_Msk (0x00000020UL)
123+
#define R_ADC_ADCR2_AD5_Pos (5UL)
124+
#define R_ADC_ADCR2_AD6_Msk (0x00000040UL)
125+
#define R_ADC_ADCR2_AD6_Pos (6UL)
126+
#define R_ADC_ADCR2_AD7_Msk (0x00000080UL)
127+
#define R_ADC_ADCR2_AD7_Pos (7UL)
128+
#define R_ADC_ADCR2_AD8_Msk (0x00000100UL)
129+
#define R_ADC_ADCR2_AD8_Pos (8UL)
130+
#define R_ADC_ADCR2_AD9_Msk (0x00000200UL)
131+
#define R_ADC_ADCR2_AD9_Pos (9UL)
132+
#define R_ADC_ADCR2_AD10_Msk (0x00000400UL)
133+
#define R_ADC_ADCR2_AD10_Pos (10UL)
134+
#define R_ADC_ADCR2_AD11_Msk (0x00000800UL)
135+
#define R_ADC_ADCR2_AD11_Pos (11UL)
136+
#define R_ADC_ADCR3_AD0_Msk (0x00000001UL)
137+
#define R_ADC_ADCR3_AD0_Pos (0UL)
138+
#define R_ADC_ADCR3_AD1_Msk (0x00000002UL)
139+
#define R_ADC_ADCR3_AD1_Pos (1UL)
140+
#define R_ADC_ADCR3_AD2_Msk (0x00000004UL)
141+
#define R_ADC_ADCR3_AD2_Pos (2UL)
142+
#define R_ADC_ADCR3_AD3_Msk (0x00000008UL)
143+
#define R_ADC_ADCR3_AD3_Pos (3UL)
144+
#define R_ADC_ADCR3_AD4_Msk (0x00000010UL)
145+
#define R_ADC_ADCR3_AD4_Pos (4UL)
146+
#define R_ADC_ADCR3_AD5_Msk (0x00000020UL)
147+
#define R_ADC_ADCR3_AD5_Pos (5UL)
148+
#define R_ADC_ADCR3_AD6_Msk (0x00000040UL)
149+
#define R_ADC_ADCR3_AD6_Pos (6UL)
150+
#define R_ADC_ADCR3_AD7_Msk (0x00000080UL)
151+
#define R_ADC_ADCR3_AD7_Pos (7UL)
152+
#define R_ADC_ADCR3_AD8_Msk (0x00000100UL)
153+
#define R_ADC_ADCR3_AD8_Pos (8UL)
154+
#define R_ADC_ADCR3_AD9_Msk (0x00000200UL)
155+
#define R_ADC_ADCR3_AD9_Pos (9UL)
156+
#define R_ADC_ADCR3_AD10_Msk (0x00000400UL)
157+
#define R_ADC_ADCR3_AD10_Pos (10UL)
158+
#define R_ADC_ADCR3_AD11_Msk (0x00000800UL)
159+
#define R_ADC_ADCR3_AD11_Pos (11UL)
160+
161+
#endif

0 commit comments

Comments
 (0)