1##############################################################################
2#
3# Copyright (C) 2023-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}/SYS
27    ${MSDK_PERIPH_SRC_DIR}/ADC
28    ${MSDK_PERIPH_SRC_DIR}/CAN
29    ${MSDK_PERIPH_SRC_DIR}/CTB
30    ${MSDK_PERIPH_SRC_DIR}/DMA
31    ${MSDK_PERIPH_SRC_DIR}/EMCC
32    ${MSDK_PERIPH_SRC_DIR}/FLC
33    ${MSDK_PERIPH_SRC_DIR}/GPIO
34    ${MSDK_PERIPH_SRC_DIR}/HPB
35    ${MSDK_PERIPH_SRC_DIR}/I2C
36    ${MSDK_PERIPH_SRC_DIR}/I2S
37    ${MSDK_PERIPH_SRC_DIR}/ICC
38    ${MSDK_PERIPH_SRC_DIR}/LP
39    ${MSDK_PERIPH_SRC_DIR}/LPCMP
40    ${MSDK_PERIPH_SRC_DIR}/OWM
41    ${MSDK_PERIPH_SRC_DIR}/PT
42    ${MSDK_PERIPH_SRC_DIR}/RTC
43    ${MSDK_PERIPH_SRC_DIR}/SEMA
44    ${MSDK_PERIPH_SRC_DIR}/SPI
45    ${MSDK_PERIPH_SRC_DIR}/SPIXF
46    ${MSDK_PERIPH_SRC_DIR}/SPIXR
47    ${MSDK_PERIPH_SRC_DIR}/TRNG
48    ${MSDK_PERIPH_SRC_DIR}/TMR
49    ${MSDK_PERIPH_SRC_DIR}/UART
50    ${MSDK_PERIPH_SRC_DIR}/WDT
51    ${MSDK_PERIPH_SRC_DIR}/WUT
52)
53
54zephyr_library_sources(
55    ./max32xxx_system.c
56
57    ${MSDK_CMSIS_DIR}/Source/system_max32690.c
58
59    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_assert.c
60    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_delay.c
61    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_lock.c
62    ${MSDK_PERIPH_SRC_DIR}/SYS/pins_me18.c
63    ${MSDK_PERIPH_SRC_DIR}/SYS/sys_me18.c
64
65    ${MSDK_PERIPH_SRC_DIR}/EMCC/emcc_me18.c
66    ${MSDK_PERIPH_SRC_DIR}/EMCC/emcc_reva.c
67
68    ${MSDK_PERIPH_SRC_DIR}/HPB/hpb_me18.c
69    ${MSDK_PERIPH_SRC_DIR}/HPB/hpb_reva.c
70
71    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_me18.c
72    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_reva.c
73
74    ${MSDK_PERIPH_SRC_DIR}/LP/lp_me18.c
75
76    ${MSDK_PERIPH_SRC_DIR}/LPCMP/lpcmp_me18.c
77    ${MSDK_PERIPH_SRC_DIR}/LPCMP/lpcmp_reva.c
78
79    ${MSDK_PERIPH_SRC_DIR}/PT/pt_me18.c
80    ${MSDK_PERIPH_SRC_DIR}/PT/pt_reva.c
81
82    ${MSDK_PERIPH_SRC_DIR}/SEMA/sema_me18.c
83    ${MSDK_PERIPH_SRC_DIR}/SEMA/sema_reva.c
84
85    ${MSDK_PERIPH_SRC_DIR}/SPIXF/spixf_me18.c
86    ${MSDK_PERIPH_SRC_DIR}/SPIXF/spixf_reva.c
87
88    ${MSDK_PERIPH_SRC_DIR}/SPIXR/spixr_me18.c
89    ${MSDK_PERIPH_SRC_DIR}/SPIXR/spixr_reva.c
90
91    ${MSDK_PERIPH_SRC_DIR}/WUT/wut_me18.c
92    ${MSDK_PERIPH_SRC_DIR}/WUT/wut_reva.c
93
94    ${MSDK_PERIPH_SRC_DIR}/DMA/dma_me18.c
95    ${MSDK_PERIPH_SRC_DIR}/DMA/dma_reva.c
96)
97
98if (CONFIG_UART_MAX32)
99zephyr_library_sources(
100    ${MSDK_PERIPH_SRC_DIR}/UART/uart_common.c
101    ${MSDK_PERIPH_SRC_DIR}/UART/uart_me18.c
102    ${MSDK_PERIPH_SRC_DIR}/UART/uart_revb.c
103)
104endif()
105
106if (CONFIG_GPIO_MAX32)
107zephyr_library_sources(
108    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_common.c
109    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_me18.c
110    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_reva.c
111)
112endif()
113
114if (CONFIG_SPI_MAX32)
115zephyr_library_sources(
116    ${MSDK_PERIPH_SRC_DIR}/SPI/spi_me18.c
117    ${MSDK_PERIPH_SRC_DIR}/SPI/spi_reva1.c
118)
119endif()
120
121if (CONFIG_I2C_MAX32)
122zephyr_library_sources(
123    ${MSDK_PERIPH_SRC_DIR}/I2C/i2c_me18.c
124    ${MSDK_PERIPH_SRC_DIR}/I2C/i2c_reva.c
125)
126endif()
127
128if (CONFIG_WDT_MAX32)
129zephyr_library_sources(
130    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_common.c
131    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_me18.c
132    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_revb.c
133)
134endif()
135
136if (CONFIG_RTC_MAX32 OR CONFIG_COUNTER_RTC_MAX32)
137zephyr_library_sources(
138    ${MSDK_PERIPH_SRC_DIR}/RTC/rtc_me18.c
139    ${MSDK_PERIPH_SRC_DIR}/RTC/rtc_reva.c
140)
141endif()
142
143if (CONFIG_SOC_FLASH_MAX32 OR CONFIG_HWINFO_MAX32)
144zephyr_library_sources(
145    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_common.c
146    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_me18.c
147    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_reva.c
148)
149endif()
150
151if (CONFIG_ADC_MAX32)
152zephyr_library_sources(
153    ${MSDK_PERIPH_SRC_DIR}/ADC/adc_me18.c
154    ${MSDK_PERIPH_SRC_DIR}/ADC/adc_revb.c
155)
156endif()
157
158if (CONFIG_W1_MAX32)
159zephyr_library_sources(
160    ${MSDK_PERIPH_SRC_DIR}/OWM/owm_me18.c
161    ${MSDK_PERIPH_SRC_DIR}/OWM/owm_reva.c
162)
163endif()
164
165if (CONFIG_PWM_MAX32 OR CONFIG_TIMER_MAX32 OR CONFIG_COUNTER_TIMER_MAX32)
166zephyr_library_sources(
167    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_common.c
168    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_me18.c
169    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_revb.c
170)
171endif()
172
173if (CONFIG_I2S_MAX32)
174zephyr_library_sources(
175    ${MSDK_PERIPH_SRC_DIR}/I2S/i2s_me18.c
176    ${MSDK_PERIPH_SRC_DIR}/I2S/i2s_reva.c
177)
178endif()
179
180if (CONFIG_ENTROPY_MAX32_TRNG)
181zephyr_library_sources(
182    ${MSDK_PERIPH_SRC_DIR}/TRNG/trng_me18.c
183    ${MSDK_PERIPH_SRC_DIR}/TRNG/trng_revb.c
184)
185endif()
186
187if (CONFIG_CRYPTO_MAX32 OR CONFIG_HWINFO_MAX32)
188zephyr_library_sources(
189    ${MSDK_PERIPH_SRC_DIR}/CTB/ctb_me18.c
190    ${MSDK_PERIPH_SRC_DIR}/CTB/ctb_reva.c
191    ${MSDK_PERIPH_SRC_DIR}/CTB/ctb_common.c
192)
193endif()
194
195if (CONFIG_CAN_MAX32)
196zephyr_library_sources(
197    ${MSDK_PERIPH_SRC_DIR}/CAN/can_me18.c
198    ${MSDK_PERIPH_SRC_DIR}/CAN/can_reva.c
199)
200endif()
201