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}/CRC
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}/LPCMP
37    ${MSDK_PERIPH_SRC_DIR}/OWM
38    ${MSDK_PERIPH_SRC_DIR}/PT
39    ${MSDK_PERIPH_SRC_DIR}/RTC
40    ${MSDK_PERIPH_SRC_DIR}/SPI
41    ${MSDK_PERIPH_SRC_DIR}/SDHC
42    ${MSDK_PERIPH_SRC_DIR}/SYS
43    ${MSDK_PERIPH_SRC_DIR}/TMR
44    ${MSDK_PERIPH_SRC_DIR}/TRNG
45    ${MSDK_PERIPH_SRC_DIR}/UART
46    ${MSDK_PERIPH_SRC_DIR}/WDT
47    ${MSDK_PERIPH_SRC_DIR}/WUT
48)
49
50if(CONFIG_ARM)
51  zephyr_library_sources(${MSDK_CMSIS_DIR}/Source/system_max78002.c)
52  zephyr_library_sources(${MSDK_PERIPH_SRC_DIR}/SYS/mxc_lock.c)
53elseif(CONFIG_RISCV)
54  zephyr_library_sources(${MSDK_CMSIS_DIR}/Source/system_riscv_max78002.c)
55endif()
56
57zephyr_library_sources(
58    ./max78xxx_system.c
59
60    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_ai87.c
61    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_reva.c
62
63    ${MSDK_PERIPH_SRC_DIR}/LP/lp_ai87.c
64
65    ${MSDK_PERIPH_SRC_DIR}/LPCMP/lpcmp_ai87.c
66    ${MSDK_PERIPH_SRC_DIR}/LPCMP/lpcmp_reva.c
67
68    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_assert.c
69    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_delay.c
70    ${MSDK_PERIPH_SRC_DIR}/SYS/pins_ai87.c
71    ${MSDK_PERIPH_SRC_DIR}/SYS/sys_ai87.c
72
73    ${MSDK_PERIPH_SRC_DIR}/DMA/dma_ai87.c
74    ${MSDK_PERIPH_SRC_DIR}/DMA/dma_reva.c
75
76    ${MSDK_PERIPH_SRC_DIR}/PT/pt_ai87.c
77    ${MSDK_PERIPH_SRC_DIR}/PT/pt_reva.c
78
79    ${MSDK_PERIPH_SRC_DIR}/SDHC/sdhc_ai87.c
80    ${MSDK_PERIPH_SRC_DIR}/SDHC/sdhc_reva.c
81
82    ${MSDK_PERIPH_SRC_DIR}/WUT/wut_ai87.c
83    ${MSDK_PERIPH_SRC_DIR}/WUT/wut_reva.c
84)
85
86if (CONFIG_ADC_MAX32)
87zephyr_library_sources(
88    ${MSDK_PERIPH_SRC_DIR}/ADC/adc_ai87.c
89    ${MSDK_PERIPH_SRC_DIR}/ADC/adc_revb.c
90)
91endif()
92
93if (CONFIG_UART_MAX32)
94zephyr_library_sources(
95    ${MSDK_PERIPH_SRC_DIR}/UART/uart_common.c
96    ${MSDK_PERIPH_SRC_DIR}/UART/uart_ai87.c
97    ${MSDK_PERIPH_SRC_DIR}/UART/uart_revb.c
98)
99endif()
100
101if (CONFIG_GPIO_MAX32)
102zephyr_library_sources(
103    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_common.c
104    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_ai87.c
105    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_reva.c
106)
107endif()
108
109if (CONFIG_SPI_MAX32)
110zephyr_library_sources(
111    ${MSDK_PERIPH_SRC_DIR}/SPI/spi_ai87.c
112    ${MSDK_PERIPH_SRC_DIR}/SPI/spi_reva1.c
113)
114endif()
115
116if (CONFIG_I2C_MAX32)
117zephyr_library_sources(
118    ${MSDK_PERIPH_SRC_DIR}/I2C/i2c_ai87.c
119    ${MSDK_PERIPH_SRC_DIR}/I2C/i2c_reva.c
120)
121endif()
122
123if (CONFIG_I2S_MAX32)
124zephyr_library_sources(
125    ${MSDK_PERIPH_SRC_DIR}/I2S/i2s_ai87.c
126    ${MSDK_PERIPH_SRC_DIR}/I2S/i2s_reva.c
127)
128endif()
129
130if (CONFIG_WDT_MAX32)
131zephyr_library_sources(
132    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_common.c
133    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_ai87.c
134    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_revb.c
135)
136endif()
137
138if (CONFIG_RTC_MAX32 OR CONFIG_COUNTER_RTC_MAX32)
139zephyr_library_sources(
140    ${MSDK_PERIPH_SRC_DIR}/RTC/rtc_ai87.c
141    ${MSDK_PERIPH_SRC_DIR}/RTC/rtc_reva.c
142)
143endif()
144
145if (CONFIG_SOC_FLASH_MAX32 OR CONFIG_HWINFO_MAX32)
146zephyr_library_sources(
147    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_common.c
148    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_ai87.c
149    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_reva.c
150)
151endif()
152
153if (CONFIG_PWM_MAX32 OR CONFIG_TIMER_MAX32 OR CONFIG_COUNTER_TIMER_MAX32)
154zephyr_library_sources(
155    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_common.c
156    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_ai87.c
157    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_revb.c
158)
159endif()
160
161if (CONFIG_ENTROPY_MAX32_TRNG OR CONFIG_HWINFO_MAX32)
162zephyr_library_sources(
163    ${MSDK_PERIPH_SRC_DIR}/TRNG/trng_ai87.c
164    ${MSDK_PERIPH_SRC_DIR}/TRNG/trng_revb.c
165)
166endif()
167
168if (CONFIG_CRYPTO_MAX32 OR CONFIG_HWINFO_MAX32)
169zephyr_library_sources(
170    ${MSDK_PERIPH_SRC_DIR}/AES/aes_ai87.c
171    ${MSDK_PERIPH_SRC_DIR}/AES/aes_revb.c
172)
173endif()
174
175if (CONFIG_CRYPTO_MAX32)
176zephyr_library_sources(
177    ${MSDK_PERIPH_SRC_DIR}/CRC/crc_ai87.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_ai87.c
185    ${MSDK_PERIPH_SRC_DIR}/OWM/owm_reva.c
186)
187endif()
188