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}/AES
27    ${MSDK_PERIPH_SRC_DIR}/AFE
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}/RTC
37    ${MSDK_PERIPH_SRC_DIR}/SPI
38    ${MSDK_PERIPH_SRC_DIR}/SYS
39    ${MSDK_PERIPH_SRC_DIR}/TMR
40    ${MSDK_PERIPH_SRC_DIR}/TRNG
41    ${MSDK_PERIPH_SRC_DIR}/UART
42    ${MSDK_PERIPH_SRC_DIR}/WDT
43)
44
45zephyr_library_sources(
46    ./max32xxx_system.c
47
48    ${MSDK_CMSIS_DIR}/Source/system_max32675.c
49
50    ${MSDK_PERIPH_SRC_DIR}/AES/aes_me15.c
51    ${MSDK_PERIPH_SRC_DIR}/AES/aes_revb.c
52
53    ${MSDK_PERIPH_SRC_DIR}/CRC/crc_me15.c
54    ${MSDK_PERIPH_SRC_DIR}/CRC/crc_reva.c
55
56    ${MSDK_PERIPH_SRC_DIR}/AFE/afe.c
57    ${MSDK_PERIPH_SRC_DIR}/AFE/afe_gpio.c
58    ${MSDK_PERIPH_SRC_DIR}/AFE/afe_timer.c
59    ${MSDK_PERIPH_SRC_DIR}/AFE/hart_uart.c
60    ${MSDK_PERIPH_SRC_DIR}/AFE/infoblock.c
61
62    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_common.c
63    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_me15.c
64    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_reva.c
65
66    ${MSDK_PERIPH_SRC_DIR}/LP/lp_me15.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/mxc_lock.c
71    ${MSDK_PERIPH_SRC_DIR}/SYS/pins_me16.c
72    ${MSDK_PERIPH_SRC_DIR}/SYS/sys_me15.c
73
74    ${MSDK_PERIPH_SRC_DIR}/DMA/dma_me15.c
75    ${MSDK_PERIPH_SRC_DIR}/DMA/dma_reva.c
76)
77
78if (CONFIG_UART_MAX32)
79zephyr_library_sources(
80    ${MSDK_PERIPH_SRC_DIR}/UART/uart_common.c
81    ${MSDK_PERIPH_SRC_DIR}/UART/uart_me16.c
82    ${MSDK_PERIPH_SRC_DIR}/UART/uart_revb.c
83)
84endif()
85
86if (CONFIG_GPIO_MAX32)
87zephyr_library_sources(
88    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_common.c
89    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_me16.c
90    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_reva.c
91)
92endif()
93
94if (CONFIG_SPI_MAX32)
95zephyr_library_sources(
96    ${MSDK_PERIPH_SRC_DIR}/SPI/spi_me15.c
97    ${MSDK_PERIPH_SRC_DIR}/SPI/spi_reva1.c
98)
99endif()
100
101if (CONFIG_I2C_MAX32)
102zephyr_library_sources(
103    ${MSDK_PERIPH_SRC_DIR}/I2C/i2c_me15.c
104    ${MSDK_PERIPH_SRC_DIR}/I2C/i2c_reva.c
105)
106endif()
107
108if (CONFIG_I2S_MAX32)
109zephyr_library_sources(
110    ${MSDK_PERIPH_SRC_DIR}/I2S/i2s_me15.c
111    ${MSDK_PERIPH_SRC_DIR}/I2S/i2s_reva.c
112)
113endif()
114
115if (CONFIG_WDT_MAX32)
116zephyr_library_sources(
117    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_common.c
118    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_me15.c
119    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_revb.c
120)
121endif()
122
123if (CONFIG_SOC_FLASH_MAX32 OR CONFIG_HWINFO_MAX32)
124zephyr_library_sources(
125    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_common.c
126    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_me15.c
127    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_reva.c
128)
129endif()
130
131if (CONFIG_PWM_MAX32 OR CONFIG_TIMER_MAX32 OR CONFIG_COUNTER_TIMER_MAX32)
132zephyr_library_sources(
133    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_common.c
134    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_me16.c
135    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_revb.c
136)
137endif()
138
139if (CONFIG_ENTROPY_MAX32_TRNG OR CONFIG_HWINFO_MAX32)
140zephyr_library_sources(
141    ${MSDK_PERIPH_SRC_DIR}/TRNG/trng_me15.c
142    ${MSDK_PERIPH_SRC_DIR}/TRNG/trng_revb.c
143)
144endif()
145