1##############################################################################
2#
3# Copyright (C) 2024 Analog Devices, Inc.
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9#     http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16#
17##############################################################################
18
19
20if(NOT TARGET_REV)
21  # Default version A1, not actively use in driver but requires to be defined.
22  zephyr_compile_definitions(-DTARGET_REV=0x4131)
23endif()
24
25zephyr_include_directories(
26    ${MSDK_PERIPH_SRC_DIR}/ADC
27    ${MSDK_PERIPH_SRC_DIR}/AES
28    ${MSDK_PERIPH_SRC_DIR}/CTB
29    ${MSDK_PERIPH_SRC_DIR}/DMA
30    ${MSDK_PERIPH_SRC_DIR}/FLC
31    ${MSDK_PERIPH_SRC_DIR}/GPIO
32    ${MSDK_PERIPH_SRC_DIR}/I2C
33    ${MSDK_PERIPH_SRC_DIR}/I2S
34    ${MSDK_PERIPH_SRC_DIR}/ICC
35    ${MSDK_PERIPH_SRC_DIR}/LP
36    ${MSDK_PERIPH_SRC_DIR}/QDEC
37    ${MSDK_PERIPH_SRC_DIR}/RTC
38    ${MSDK_PERIPH_SRC_DIR}/SPI
39    ${MSDK_PERIPH_SRC_DIR}/SYS
40    ${MSDK_PERIPH_SRC_DIR}/TMR
41    ${MSDK_PERIPH_SRC_DIR}/TRNG
42    ${MSDK_PERIPH_SRC_DIR}/UART
43    ${MSDK_PERIPH_SRC_DIR}/WDT
44)
45
46zephyr_library_sources(
47    ./max32xxx_system.c
48
49    ${MSDK_CMSIS_DIR}/Source/system_max32672.c
50
51    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_common.c
52    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_me21.c
53    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_reva.c
54
55    ${MSDK_PERIPH_SRC_DIR}/LP/lp_me21.c
56
57    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_assert.c
58    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_delay.c
59    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_lock.c
60    ${MSDK_PERIPH_SRC_DIR}/SYS/pins_me21.c
61    ${MSDK_PERIPH_SRC_DIR}/SYS/sys_me21.c
62
63    ${MSDK_PERIPH_SRC_DIR}/DMA/dma_me21.c
64    ${MSDK_PERIPH_SRC_DIR}/DMA/dma_reva.c
65
66    ${MSDK_PERIPH_SRC_DIR}/QDEC/qdec_me21.c
67    ${MSDK_PERIPH_SRC_DIR}/QDEC/qdec_reva.c
68)
69
70if (CONFIG_ADC_MAX32)
71zephyr_library_sources(
72    ${MSDK_PERIPH_SRC_DIR}/ADC/adc_me21.c
73    ${MSDK_PERIPH_SRC_DIR}/ADC/adc_revb.c
74)
75endif()
76
77if (CONFIG_UART_MAX32)
78zephyr_library_sources(
79    ${MSDK_PERIPH_SRC_DIR}/UART/uart_common.c
80    ${MSDK_PERIPH_SRC_DIR}/UART/uart_me21.c
81    ${MSDK_PERIPH_SRC_DIR}/UART/uart_revb.c
82)
83endif()
84
85if (CONFIG_GPIO_MAX32)
86zephyr_library_sources(
87    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_common.c
88    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_me21.c
89    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_reva.c
90)
91endif()
92
93if (CONFIG_SPI_MAX32)
94zephyr_library_sources(
95    ${MSDK_PERIPH_SRC_DIR}/SPI/spi_me21.c
96    ${MSDK_PERIPH_SRC_DIR}/SPI/spi_reva1.c
97)
98endif()
99
100if (CONFIG_I2C_MAX32)
101zephyr_library_sources(
102    ${MSDK_PERIPH_SRC_DIR}/I2C/i2c_me21.c
103    ${MSDK_PERIPH_SRC_DIR}/I2C/i2c_reva.c
104)
105endif()
106
107if (CONFIG_I2S_MAX32)
108zephyr_library_sources(
109    ${MSDK_PERIPH_SRC_DIR}/I2S/i2s_me21.c
110    ${MSDK_PERIPH_SRC_DIR}/I2S/i2s_reva.c
111)
112endif()
113
114if (CONFIG_WDT_MAX32)
115zephyr_library_sources(
116    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_common.c
117    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_me21.c
118    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_revb.c
119)
120endif()
121
122if (CONFIG_RTC_MAX32 OR CONFIG_COUNTER_RTC_MAX32)
123zephyr_library_sources(
124    ${MSDK_PERIPH_SRC_DIR}/RTC/rtc_me21.c
125    ${MSDK_PERIPH_SRC_DIR}/RTC/rtc_reva.c
126)
127endif()
128
129if (CONFIG_SOC_FLASH_MAX32 OR CONFIG_HWINFO_MAX32)
130zephyr_library_sources(
131    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_common.c
132    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_me21.c
133    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_reva.c
134)
135endif()
136
137if (CONFIG_PWM_MAX32 OR CONFIG_TIMER_MAX32 OR CONFIG_COUNTER_TIMER_MAX32)
138zephyr_library_sources(
139    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_common.c
140    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_me21.c
141    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_revb.c
142)
143endif()
144
145if (CONFIG_ENTROPY_MAX32_TRNG)
146zephyr_library_sources(
147    ${MSDK_PERIPH_SRC_DIR}/TRNG/trng_me21.c
148    ${MSDK_PERIPH_SRC_DIR}/TRNG/trng_revb.c
149)
150endif()
151
152if (CONFIG_CRYPTO_MAX32 OR CONFIG_HWINFO_MAX32)
153zephyr_library_sources(
154    ${MSDK_PERIPH_SRC_DIR}/AES/aes_me21.c
155    ${MSDK_PERIPH_SRC_DIR}/AES/aes_revb.c
156)
157endif()
158
159if (CONFIG_CRYPTO_MAX32)
160zephyr_library_sources(
161    ${MSDK_PERIPH_SRC_DIR}/CTB/ctb_me21.c
162    ${MSDK_PERIPH_SRC_DIR}/CTB/ctb_reva.c
163    ${MSDK_PERIPH_SRC_DIR}/CTB/ctb_common.c
164)
165endif()
166