1##############################################################################
2#
3# Copyright (C) 2025 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}/DMA
29    ${MSDK_PERIPH_SRC_DIR}/FLC
30    ${MSDK_PERIPH_SRC_DIR}/GPIO
31    ${MSDK_PERIPH_SRC_DIR}/I2C
32    ${MSDK_PERIPH_SRC_DIR}/SPIMSS
33    ${MSDK_PERIPH_SRC_DIR}/ICC
34    ${MSDK_PERIPH_SRC_DIR}/LP
35    ${MSDK_PERIPH_SRC_DIR}/OWM
36    ${MSDK_PERIPH_SRC_DIR}/PT
37    ${MSDK_PERIPH_SRC_DIR}/RTC
38    ${MSDK_PERIPH_SRC_DIR}/SEMA
39    ${MSDK_PERIPH_SRC_DIR}/SPI
40    ${MSDK_PERIPH_SRC_DIR}/TRNG
41    ${MSDK_PERIPH_SRC_DIR}/TMR
42    ${MSDK_PERIPH_SRC_DIR}/UART
43    ${MSDK_PERIPH_SRC_DIR}/WDT
44)
45
46if(CONFIG_ARM)
47  zephyr_library_sources(${MSDK_CMSIS_DIR}/Source/system_max32650.c)
48  zephyr_library_sources(${MSDK_PERIPH_SRC_DIR}/SYS/mxc_lock.c)
49elseif(CONFIG_RISCV)
50  zephyr_library_sources(${MSDK_CMSIS_DIR}/Source/system_riscv_max32650.c)
51endif()
52
53zephyr_library_sources(
54    ./max32xxx_system.c
55
56    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_assert.c
57    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_delay.c
58    ${MSDK_PERIPH_SRC_DIR}/SYS/pins_me10.c
59    ${MSDK_PERIPH_SRC_DIR}/SYS/sys_me10.c
60
61    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_me10.c
62    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_reva.c
63    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_common.c
64
65    ${MSDK_PERIPH_SRC_DIR}/LP/lp_me10.c
66
67    ${MSDK_PERIPH_SRC_DIR}/PT/pt_me10.c
68    ${MSDK_PERIPH_SRC_DIR}/PT/pt_reva.c
69
70    ${MSDK_PERIPH_SRC_DIR}/SEMA/sema_me10.c
71    ${MSDK_PERIPH_SRC_DIR}/SEMA/sema_reva.c
72
73    ${MSDK_PERIPH_SRC_DIR}/DMA/dma_me10.c
74    ${MSDK_PERIPH_SRC_DIR}/DMA/dma_reva.c
75)
76
77if (CONFIG_UART_MAX32)
78zephyr_library_sources(
79    ${MSDK_PERIPH_SRC_DIR}/UART/uart_common.c
80    ${MSDK_PERIPH_SRC_DIR}/UART/uart_me10.c
81    ${MSDK_PERIPH_SRC_DIR}/UART/uart_reva.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_me10.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_me10.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_me10.c
103    ${MSDK_PERIPH_SRC_DIR}/I2C/i2c_reva.c
104)
105endif()
106
107if (CONFIG_WDT_MAX32)
108zephyr_library_sources(
109    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_common.c
110    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_me10.c
111    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_reva.c
112)
113endif()
114
115if (CONFIG_RTC_MAX32 OR CONFIG_COUNTER_RTC_MAX32)
116zephyr_library_sources(
117    ${MSDK_PERIPH_SRC_DIR}/RTC/rtc_me10.c
118    ${MSDK_PERIPH_SRC_DIR}/RTC/rtc_reva.c
119)
120endif()
121
122if (CONFIG_SOC_FLASH_MAX32 OR CONFIG_HWINFO_MAX32)
123zephyr_library_sources(
124    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_common.c
125    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_me10.c
126    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_reva.c
127)
128endif()
129
130if (CONFIG_ADC_MAX32)
131zephyr_library_sources(
132    ${MSDK_PERIPH_SRC_DIR}/ADC/adc_me10.c
133    ${MSDK_PERIPH_SRC_DIR}/ADC/adc_reva.c
134)
135endif()
136
137if (CONFIG_W1_MAX32)
138zephyr_library_sources(
139    ${MSDK_PERIPH_SRC_DIR}/OWM/owm_me10.c
140    ${MSDK_PERIPH_SRC_DIR}/OWM/owm_reva.c
141)
142endif()
143
144if (CONFIG_PWM_MAX32 OR CONFIG_TIMER_MAX32 OR CONFIG_COUNTER_TIMER_MAX32)
145zephyr_library_sources(
146    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_common.c
147    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_me10.c
148    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_reva.c
149)
150endif()
151
152if (CONFIG_I2S_MAX32)
153zephyr_library_sources(
154    ${MSDK_PERIPH_SRC_DIR}/SPIMSS/i2s_me10.c
155    ${MSDK_PERIPH_SRC_DIR}/SPIMSS/i2s_reva.c
156)
157endif()
158
159if (CONFIG_ENTROPY_MAX32_TRNG)
160zephyr_library_sources(
161    ${MSDK_PERIPH_SRC_DIR}/TRNG/trng_me10.c
162    ${MSDK_PERIPH_SRC_DIR}/TRNG/trng_reva.c
163)
164endif()
165
166