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}/DMA
28    ${MSDK_PERIPH_SRC_DIR}/FLC
29    ${MSDK_PERIPH_SRC_DIR}/GPIO
30    ${MSDK_PERIPH_SRC_DIR}/I2C
31    ${MSDK_PERIPH_SRC_DIR}/SPIMSS
32    ${MSDK_PERIPH_SRC_DIR}/ICC
33    ${MSDK_PERIPH_SRC_DIR}/LP
34    ${MSDK_PERIPH_SRC_DIR}/RTC
35    ${MSDK_PERIPH_SRC_DIR}/SPI
36    ${MSDK_PERIPH_SRC_DIR}/TMR
37    ${MSDK_PERIPH_SRC_DIR}/UART
38    ${MSDK_PERIPH_SRC_DIR}/WDT
39)
40
41zephyr_library_sources(
42    ./max32xxx_system.c
43
44    ${MSDK_CMSIS_DIR}/Source/system_max32660.c
45
46    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_assert.c
47    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_delay.c
48    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_lock.c
49    ${MSDK_PERIPH_SRC_DIR}/SYS/pins_me11.c
50    ${MSDK_PERIPH_SRC_DIR}/SYS/sys_me11.c
51
52    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_me11.c
53    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_reva.c
54    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_common.c
55
56    ${MSDK_PERIPH_SRC_DIR}/LP/lp_me11.c
57
58    ${MSDK_PERIPH_SRC_DIR}/DMA/dma_me11.c
59    ${MSDK_PERIPH_SRC_DIR}/DMA/dma_reva.c
60)
61
62if (CONFIG_UART_MAX32)
63zephyr_library_sources(
64    ${MSDK_PERIPH_SRC_DIR}/UART/uart_common.c
65    ${MSDK_PERIPH_SRC_DIR}/UART/uart_me11.c
66    ${MSDK_PERIPH_SRC_DIR}/UART/uart_reva.c
67)
68endif()
69
70if (CONFIG_GPIO_MAX32)
71zephyr_library_sources(
72    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_common.c
73    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_me11.c
74    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_reva.c
75)
76endif()
77
78if (CONFIG_SPI_MAX32)
79zephyr_library_sources(
80    ${MSDK_PERIPH_SRC_DIR}/SPI/spi_me11.c
81    ${MSDK_PERIPH_SRC_DIR}/SPI/spi_reva1.c
82    ${MSDK_PERIPH_SRC_DIR}/SPIMSS/spimss_me11.c
83    ${MSDK_PERIPH_SRC_DIR}/SPIMSS/spimss_reva1.c
84)
85endif()
86
87if (CONFIG_I2C_MAX32)
88zephyr_library_sources(
89    ${MSDK_PERIPH_SRC_DIR}/I2C/i2c_me11.c
90    ${MSDK_PERIPH_SRC_DIR}/I2C/i2c_reva.c
91)
92endif()
93
94if (CONFIG_WDT_MAX32)
95zephyr_library_sources(
96    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_common.c
97    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_me11.c
98    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_reva.c
99)
100endif()
101
102if (CONFIG_RTC_MAX32 OR CONFIG_COUNTER_RTC_MAX32)
103zephyr_library_sources(
104    ${MSDK_PERIPH_SRC_DIR}/RTC/rtc_me11.c
105    ${MSDK_PERIPH_SRC_DIR}/RTC/rtc_reva.c
106)
107endif()
108
109if (CONFIG_SOC_FLASH_MAX32 OR CONFIG_HWINFO_MAX32)
110zephyr_library_sources(
111    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_common.c
112    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_me11.c
113    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_reva.c
114)
115endif()
116
117if (CONFIG_PWM_MAX32 OR CONFIG_TIMER_MAX32 OR CONFIG_COUNTER_TIMER_MAX32)
118zephyr_library_sources(
119    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_common.c
120    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_me11.c
121    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_reva.c
122)
123endif()
124
125if (CONFIG_I2S_MAX32)
126zephyr_library_sources(
127    ${MSDK_PERIPH_SRC_DIR}/SPIMSS/i2s_me11.c
128    ${MSDK_PERIPH_SRC_DIR}/SPIMSS/i2s_reva.c
129)
130endif()
131