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}/DMA
29    ${MSDK_PERIPH_SRC_DIR}/FLC
30    ${MSDK_PERIPH_SRC_DIR}/GPIO
31    ${MSDK_PERIPH_SRC_DIR}/I2C
32    ${MSDK_PERIPH_SRC_DIR}/I2S
33    ${MSDK_PERIPH_SRC_DIR}/ICC
34    ${MSDK_PERIPH_SRC_DIR}/LP
35    ${MSDK_PERIPH_SRC_DIR}/RTC
36    ${MSDK_PERIPH_SRC_DIR}/SPI
37    ${MSDK_PERIPH_SRC_DIR}/SYS
38    ${MSDK_PERIPH_SRC_DIR}/TMR
39    ${MSDK_PERIPH_SRC_DIR}/TRNG
40    ${MSDK_PERIPH_SRC_DIR}/UART
41    ${MSDK_PERIPH_SRC_DIR}/WDT
42    ${MSDK_PERIPH_SRC_DIR}/CAN
43    ${MSDK_PERIPH_SRC_DIR}/PT
44)
45
46zephyr_library_sources(
47    ./max32xxx_system.c
48
49    ${MSDK_CMSIS_DIR}/Source/system_max32662.c
50
51    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_common.c
52    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_me12.c
53    ${MSDK_PERIPH_SRC_DIR}/ICC/icc_reva.c
54
55    ${MSDK_PERIPH_SRC_DIR}/LP/lp_me12.c
56
57    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_assert.c
58    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_delay.c
59    ${MSDK_PERIPH_SRC_DIR}/SYS/mxc_lock.c
60    ${MSDK_PERIPH_SRC_DIR}/SYS/pins_me12.c
61    ${MSDK_PERIPH_SRC_DIR}/SYS/sys_me12.c
62
63    ${MSDK_PERIPH_SRC_DIR}/DMA/dma_me12.c
64    ${MSDK_PERIPH_SRC_DIR}/DMA/dma_reva.c
65
66    ${MSDK_PERIPH_SRC_DIR}/CAN/can_me12.c
67    ${MSDK_PERIPH_SRC_DIR}/CAN/can_reva.c
68
69    ${MSDK_PERIPH_SRC_DIR}/PT/pt_me12.c
70    ${MSDK_PERIPH_SRC_DIR}/PT/pt_reva.c
71)
72
73if (CONFIG_ADC_MAX32)
74zephyr_library_sources(
75    ${MSDK_PERIPH_SRC_DIR}/ADC/adc_me12.c
76    ${MSDK_PERIPH_SRC_DIR}/ADC/adc_revb.c
77)
78endif()
79
80if (CONFIG_UART_MAX32)
81zephyr_library_sources(
82    ${MSDK_PERIPH_SRC_DIR}/UART/uart_common.c
83    ${MSDK_PERIPH_SRC_DIR}/UART/uart_me12.c
84    ${MSDK_PERIPH_SRC_DIR}/UART/uart_revb.c
85)
86endif()
87
88if (CONFIG_GPIO_MAX32)
89zephyr_library_sources(
90    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_common.c
91    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_me12.c
92    ${MSDK_PERIPH_SRC_DIR}/GPIO/gpio_reva.c
93)
94endif()
95
96if (CONFIG_SPI_MAX32)
97zephyr_library_sources(
98    ${MSDK_PERIPH_SRC_DIR}/SPI/spi_me12.c
99    ${MSDK_PERIPH_SRC_DIR}/SPI/spi_reva1.c
100)
101endif()
102
103if (CONFIG_I2C_MAX32)
104zephyr_library_sources(
105    ${MSDK_PERIPH_SRC_DIR}/I2C/i2c_me12.c
106    ${MSDK_PERIPH_SRC_DIR}/I2C/i2c_reva.c
107)
108endif()
109
110if (CONFIG_I2S_MAX32)
111zephyr_library_sources(
112    ${MSDK_PERIPH_SRC_DIR}/I2S/i2s_me12.c
113    ${MSDK_PERIPH_SRC_DIR}/I2S/i2s_reva.c
114)
115endif()
116
117if (CONFIG_WDT_MAX32)
118zephyr_library_sources(
119    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_common.c
120    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_me12.c
121    ${MSDK_PERIPH_SRC_DIR}/WDT/wdt_revb.c
122)
123endif()
124
125if (CONFIG_RTC_MAX32 OR CONFIG_COUNTER_RTC_MAX32)
126zephyr_library_sources(
127    ${MSDK_PERIPH_SRC_DIR}/RTC/rtc_me12.c
128    ${MSDK_PERIPH_SRC_DIR}/RTC/rtc_reva.c
129)
130endif()
131
132if (CONFIG_SOC_FLASH_MAX32 OR CONFIG_HWINFO_MAX32)
133zephyr_library_sources(
134    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_common.c
135    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_me12.c
136    ${MSDK_PERIPH_SRC_DIR}/FLC/flc_reva.c
137)
138endif()
139
140if (CONFIG_PWM_MAX32 OR CONFIG_TIMER_MAX32 OR CONFIG_COUNTER_TIMER_MAX32)
141zephyr_library_sources(
142    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_common.c
143    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_me12.c
144    ${MSDK_PERIPH_SRC_DIR}/TMR/tmr_revb.c
145)
146endif()
147
148if (CONFIG_ENTROPY_MAX32_TRNG)
149zephyr_library_sources(
150    ${MSDK_PERIPH_SRC_DIR}/TRNG/trng_me12.c
151    ${MSDK_PERIPH_SRC_DIR}/TRNG/trng_revb.c
152)
153endif()
154
155if (CONFIG_CRYPTO_MAX32 OR CONFIG_HWINFO_MAX32)
156zephyr_library_sources(
157    ${MSDK_PERIPH_SRC_DIR}/AES/aes_me12.c
158    ${MSDK_PERIPH_SRC_DIR}/AES/aes_revb.c
159)
160endif()
161