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}/ADC
27    ${MSDK_PERIPH_SRC_DIR}/AES
28    ${MSDK_PERIPH_SRC_DIR}/CAMERAIF
29    ${MSDK_PERIPH_SRC_DIR}/CRC
30    ${MSDK_PERIPH_SRC_DIR}/DMA
31    ${MSDK_PERIPH_SRC_DIR}/FLC
32    ${MSDK_PERIPH_SRC_DIR}/GPIO
33    ${MSDK_PERIPH_SRC_DIR}/I2C
34    ${MSDK_PERIPH_SRC_DIR}/I2S
35    ${MSDK_PERIPH_SRC_DIR}/ICC
36    ${MSDK_PERIPH_SRC_DIR}/LP
37    ${MSDK_PERIPH_SRC_DIR}/LPCMP
38    ${MSDK_PERIPH_SRC_DIR}/OWM
39    ${MSDK_PERIPH_SRC_DIR}/PT
40    ${MSDK_PERIPH_SRC_DIR}/RTC
41    ${MSDK_PERIPH_SRC_DIR}/SEMA
42    ${MSDK_PERIPH_SRC_DIR}/SPI
43    ${MSDK_PERIPH_SRC_DIR}/SYS
44    ${MSDK_PERIPH_SRC_DIR}/TMR
45    ${MSDK_PERIPH_SRC_DIR}/TRNG
46    ${MSDK_PERIPH_SRC_DIR}/UART
47    ${MSDK_PERIPH_SRC_DIR}/WDT
48    ${MSDK_PERIPH_SRC_DIR}/WUT
49)
50
51if(CONFIG_ARM)
52  zephyr_library_sources(${MSDK_CMSIS_DIR}/Source/system_max78000.c)
53  zephyr_library_sources(${MSDK_PERIPH_SRC_DIR}/SYS/mxc_lock.c)
54elseif(CONFIG_RISCV)
55  zephyr_library_sources(${MSDK_CMSIS_DIR}/Source/system_riscv_max78000.c)
56endif()
57
58zephyr_library_sources(
59    ./max78xxx_system.c
60
61    ${MSDK_PERIPH_SRC_DIR}/CAMERAIF/cameraif_ai85.c
62    ${MSDK_PERIPH_SRC_DIR}/CAMERAIF/cameraif_reva.c
63
64    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_me17.c
65    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_reva.c
66
67    ${MSDK_PERIPH_SRC_DIR}/LP/lp_ai85.c
68
69    ${MSDK_PERIPH_SRC_DIR}/LPCMP/lpcmp_ai85.c
70    ${MSDK_PERIPH_SRC_DIR}/LPCMP/lpcmp_reva.c
71
72    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_assert.c
73    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_delay.c
74    ${MSDK_PERIPH_SRC_DIR}/SYS/pins_ai85.c
75    ${MSDK_PERIPH_SRC_DIR}/SYS/sys_ai85.c
76
77    ${MSDK_PERIPH_SRC_DIR}/DMA/dma_me17.c
78    ${MSDK_PERIPH_SRC_DIR}/DMA/dma_reva.c
79
80    ${MSDK_PERIPH_SRC_DIR}/SEMA/sema_me17.c
81    ${MSDK_PERIPH_SRC_DIR}/SEMA/sema_reva.c
82
83    ${MSDK_PERIPH_SRC_DIR}/PT/pt_ai85.c
84    ${MSDK_PERIPH_SRC_DIR}/PT/pt_reva.c
85
86    ${MSDK_PERIPH_SRC_DIR}/WUT/wut_ai85.c
87    ${MSDK_PERIPH_SRC_DIR}/WUT/wut_reva.c
88)
89
90if (CONFIG_ADC_MAX32)
91zephyr_library_sources(
92    ${MSDK_PERIPH_SRC_DIR}/ADC/adc_me17.c
93    ${MSDK_PERIPH_SRC_DIR}/ADC/adc_reva.c
94)
95endif()
96
97if (CONFIG_UART_MAX32)
98zephyr_library_sources(
99    ${MSDK_PERIPH_SRC_DIR}/UART/uart_common.c
100    ${MSDK_PERIPH_SRC_DIR}/UART/uart_ai85.c
101    ${MSDK_PERIPH_SRC_DIR}/UART/uart_revb.c
102)
103endif()
104
105if (CONFIG_GPIO_MAX32)
106zephyr_library_sources(
107    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_common.c
108    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_ai85.c
109    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_reva.c
110)
111endif()
112
113if (CONFIG_SPI_MAX32)
114zephyr_library_sources(
115    ${MSDK_PERIPH_SRC_DIR}/SPI/spi_me17.c
116    ${MSDK_PERIPH_SRC_DIR}/SPI/spi_reva1.c
117)
118endif()
119
120if (CONFIG_I2C_MAX32)
121zephyr_library_sources(
122    ${MSDK_PERIPH_SRC_DIR}/I2C/i2c_me17.c
123    ${MSDK_PERIPH_SRC_DIR}/I2C/i2c_reva.c
124)
125endif()
126
127if (CONFIG_I2S_MAX32)
128zephyr_library_sources(
129    ${MSDK_PERIPH_SRC_DIR}/I2S/i2s_ai85.c
130    ${MSDK_PERIPH_SRC_DIR}/I2S/i2s_reva.c
131)
132endif()
133
134if (CONFIG_WDT_MAX32)
135zephyr_library_sources(
136    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_common.c
137    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_me17.c
138    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_revb.c
139)
140endif()
141
142if (CONFIG_RTC_MAX32 OR CONFIG_COUNTER_RTC_MAX32)
143zephyr_library_sources(
144    ${MSDK_PERIPH_SRC_DIR}/RTC/rtc_me17.c
145    ${MSDK_PERIPH_SRC_DIR}/RTC/rtc_reva.c
146)
147endif()
148
149if (CONFIG_SOC_FLASH_MAX32 OR CONFIG_HWINFO_MAX32)
150zephyr_library_sources(
151    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_common.c
152    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_me17.c
153    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_reva.c
154)
155endif()
156
157if (CONFIG_PWM_MAX32 OR CONFIG_TIMER_MAX32 OR CONFIG_COUNTER_TIMER_MAX32)
158zephyr_library_sources(
159    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_common.c
160    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_ai85.c
161    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_revb.c
162)
163endif()
164
165if (CONFIG_ENTROPY_MAX32_TRNG OR CONFIG_HWINFO_MAX32)
166zephyr_library_sources(
167    ${MSDK_PERIPH_SRC_DIR}/TRNG/trng_ai85.c
168    ${MSDK_PERIPH_SRC_DIR}/TRNG/trng_revb.c
169)
170endif()
171
172if (CONFIG_CRYPTO_MAX32 OR CONFIG_HWINFO_MAX32)
173zephyr_library_sources(
174    ${MSDK_PERIPH_SRC_DIR}/AES/aes_me17.c
175    ${MSDK_PERIPH_SRC_DIR}/AES/aes_revb.c
176
177    ${MSDK_PERIPH_SRC_DIR}/CRC/crc_me17.c
178    ${MSDK_PERIPH_SRC_DIR}/CRC/crc_reva.c
179)
180endif()
181
182if (CONFIG_W1_MAX32)
183zephyr_library_sources(
184    ${MSDK_PERIPH_SRC_DIR}/OWM/owm_me17.c
185    ${MSDK_PERIPH_SRC_DIR}/OWM/owm_reva.c
186)
187endif()
188