Commit graph

24 commits

Author SHA1 Message Date
Sadik Ozer
4e858066bc soc: adi: max32: Add dependency to idle cpu hook
To simplify usage add dependecy to MAX32_ON_ENTER_CPU_IDLE_HOOK
If CONFIG_PM not defined set to to y as current,
If CONFIG_PM defined not set it
If user set CONFIG_PM not need to disable
MAX32_ON_ENTER_CPU_IDLE_HOOK anymore

Signed-off-by: Sadik Ozer <sadik.ozer@analog.com>
2025-05-28 01:46:50 +02:00
Sadik Ozer
9b7927f2a3 soc: arm: adi: max32: Add power management feature
This commit add power.c file that provides device goes to low power modes

Signed-off-by: Sadik Ozer <sadik.ozer@analog.com>
2025-05-28 01:46:50 +02:00
Sadik Ozer
367cd74ed1 soc: Add the MAX32657 NS Peripheral
This commit adds MAX32657 Non-Secure peripheral support

Signed-off-by: Sadik Ozer <sadik.ozer@analog.com>
2025-05-21 08:01:25 +02:00
Sadik Ozer
f9ce25fd05 soc: Add the MAX32657 SoC
MAX32657 is Cortex-M33 based Analog Devices MCU.
It supports ARM TrustZone security model.
There will be two boards of this MCU Secure and Non-Secure

This commit defines Secure version of peripherals.

Basic feature of MAX32657 device:
- Core is Cortex-M33
- 50MHz IPO clock
- There are 54 interrupt vectors
- 1MB flash & 256 SRAM
- MAX32657 has:
   - 1 x UART
   - 1 x I2C/I3C
   - 1 x SPI
   - 6 x TIMER
   - 1 x RTC
   - 1 x WDT
   - 1 x TRNG

Signed-off-by: Sadik Ozer <sadik.ozer@analog.com>
2025-04-28 16:40:10 +02:00
Martin Hoff
eac798fc51 soc: adi: remove unused symbol sram_vector_table
The symbol SRAM_VECTOR_TABLE is not used in the adi/max32 soc. Removed
it in order to clean up the Kconfig file and avoid confusion with the
upcoming new definition of SRAM_VECTOR_TABLE symbol. (PR #87468)

Signed-off-by: Martin Hoff <martin.hoff@silabs.com>
2025-04-25 11:05:17 +02:00
Yasin Ustuner
de9f48ee33 soc: adi: Add MAX32660 SoC
This commit adds MAX32660 SoC
and dts files.

Signed-off-by: Yasin Ustuner <Yasin.Ustuner@analog.com>
2025-02-14 17:04:57 +01:00
Burak Babaoglu
1db033dd62 soc: adi: Add the MAX32650 SoC
This commit adds MAX32650 Kconfig
and dts files for basic port.

Signed-off-by: Burak Babaoglu <Burak.Babaoglu@analog.com>
Signed-off-by: Yasin Ustuner <Yasin.Ustuner@analog.com>
2025-02-14 13:35:26 +01:00
Maureen Helm
398d9e3d49 soc: adi: max32: Enable primary core to configure/start secondary core
Adds support for the primary m4 core to configure the boot address and
start the clock for the secondary risc-v core. Unlike the msdk which
defers this function to applications and requires users to copy/paste
code from an msdk example application into their own application, in
zephyr it is implemented in the common soc init routine of the primary
core. It can be enabled/disabled and configured with Kconfig symbols and
a devicetree chosen node, allowing applications to override board-level
defaults if desired using overlays instead of modifying zephyr code.

Signed-off-by: Maureen Helm <maureen.helm@analog.com>
2025-01-29 17:55:32 +01:00
Maureen Helm
466a322f14 soc: adi: max32: Refactor core configuration
Refactors the max32 soc family configuration to allow socs with cores
other than arm cortex-m4. This will make it possible to add support for
the secondary risc-v core that exists on some max32 variants.

Signed-off-by: Maureen Helm <maureen.helm@analog.com>
2025-01-29 17:55:32 +01:00
Yasin Ustuner
d0a95b4083 soc: adi: max32: Add. shared section for MAX7800X SoC
The SystemCoreClock variable must be placed in the '.shared' section for
the MAX78000 and MAX78002 because the ARM core is responsible for changing
the System Clock and updating the SystemCoreClock variable, and the
RISC-V core knows what the System Clock frequency is through the
shared variable.

Signed-off-by: Yasin Ustuner <Yasin.Ustuner@analog.com>
2025-01-22 20:47:21 +01:00
Yasin Ustuner
ab278c2419 soc: adi: Add the MAX78000 SoC
This commit adds MAX78000 SoC
and dts files.

Signed-off-by: Yasin Ustuner <Yasin.Ustuner@analog.com>
2025-01-22 20:47:21 +01:00
Furkan Akkiz
f42568ca7b soc: adi: Add the MAX78002 SoC
Added MAX78002 Kconfig and dts files.

Signed-off-by: Furkan Akkiz <hasanfurkan.akkiz@analog.com>
2024-11-16 15:09:57 -05:00
Maureen Helm
2f03561399 soc: adi: Extract max32 flashprog section to a dedicated linker script
Extracts the max32 flashprog linker section to a dedicated linker script
that is conditionally included only when the flash driver is enabled.
This prepares max32 soc family to set SOC_LINKER_SCRIPT directly to the
common arm cortex-m linker script.

Signed-off-by: Maureen Helm <maureen.helm@analog.com>
2024-10-22 20:39:41 +02:00
Maureen Helm
82a00c9cb8 soc: adi: max32: Indicate Segger RTT support
Sets CONFIG_HAS_SEGGER_RTT on the max32 soc family to allow using RTT
backends in the logging, shell, and tracing subsystems.

Signed-off-by: Maureen Helm <maureen.helm@analog.com>
2024-10-06 20:51:27 +01:00
Anas Nashif
b60efecdf6 soc: adi: move init code from SYS_INIT to hooks
Replace SYS_INIT with SoC hooks and adapt SoC init code

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2024-09-20 13:15:31 +02:00
Sadik Ozer
6b41240038 soc: Add the MAX32666 SoC
Add MAX32666 Kconfig and dts files

Co-authored-by: Okan Sahin <okan.sahin@analog.com>
Signed-off-by: Sadik Ozer <sadik.ozer@analog.com>
2024-08-09 09:55:01 +02:00
Sadik Ozer
7323757e36 soc: Add the MAX32662 SoC
Add MAX32662 Kconfig and dts files

Co-authored-by: Maureen Helm <maureen.helm@analog.com>
Signed-off-by: Sadik Ozer <sadik.ozer@analog.com>
2024-08-07 19:04:26 -04:00
Sadik Ozer
a055587721 soc: Add the MAX32675 SoC
Add MAX32675 Kconfig and dts files

Co-authored-by: Maureen Helm <maureen.helm@analog.com>
Signed-off-by: Sadik Ozer <sadik.ozer@analog.com>
2024-08-06 17:18:02 -04:00
Sadik Ozer
b5fb89cb52 soc: Add the MAX32670 SoC
Add MAX32670 Kconfig and dts files

Co-authored-by: Maureen Helm <maureen.helm@analog.com>
Signed-off-by: Sadik Ozer <sadik.ozer@analog.com>
2024-06-14 21:06:16 -04:00
Sadik Ozer
406764aec6 soc: Add the MAX32672 SoC
Add MAX32672 Kconfig and dts files

Co-authored-by: Maureen Helm <maureen.helm@analog.com>
Signed-off-by: Sadik Ozer <sadik.ozer@analog.com>
2024-06-13 20:17:49 -04:00
Sadik Ozer
6a8674ce12 soc: Add the MAX32680 SoC
Add MAX32680 Kconfig and dts files

Co-authored-by: Tahsin Mutlugun <Tahsin.Mutlugun@analog.com>
Signed-off-by: Sadik Ozer <sadik.ozer@analog.com>
2024-06-04 19:12:21 -04:00
Sadik Ozer
84a0dee00b soc: Add the MAX32655 SoC
Add MAX32655 Kconfig and dts files

Co-authored-by: Maureen Helm <maureen.helm@analog.com>
Co-authored-by: Okan Sahin <okan.sahin@analog.com>
Signed-off-by: Sadik Ozer <sadik.ozer@analog.com>
2024-06-04 13:40:44 +02:00
Sadik Ozer
d33d5b3a79 soc: Add the MAX32690 SoC
Added ADI MAX series soc, first partnumber is MAX32690
The family structure will be
ADI_MAX
  MAX32xxx
    MAX32655
      MAX32655EVKIT
      MAX32655FTHR
    MAX32666
      MAX32666FTHR
      MAX32666FTHR2
    MAX32690
      MAX32690EVKIT
  MAX78xxx
    MAX78000
    MAX78002
        ...

When MAX32 MCUs goes to sleep mode debugger could not access it
and flashing fails, ARM_ON_ENTER_CPU_IDLE_HOOK prevent
the CPU from actually entering sleep
by skipping the WFE/WFI instruction.
Due to ARM_ON_ENTER_CPU_IDLE_HOOK is not configurable at the user
space, added a config wrapper as MAX32_ON_ENTER_CPU_IDLE_HOOK.

If MAX32_ON_ENTER_CPU_IDLE_HOOK config being defined (default y)
devicei will not goes to sleep mode in idle state.

To disable it add below line in your configuration file
CONFIG_MAX32_ON_ENTER_CPU_IDLE_HOOK=n

MAX32690 has two core Cortex-M4 and Risc-V this commit adds M4 core
support.

Co-authored-by: Jason Murphy <jason.murphy@analog.com>
Signed-off-by: Sadik Ozer <sadik.ozer@analog.com>
2024-05-29 07:30:12 +02:00
Sadik Ozer
f76256d2f1 drivers: Add MAX32690 pinctrl driver
Pincontrol driver for MAX32690

Co-authored-by: Okan Sahin <okan.sahin@analog.com>
Signed-off-by: Sadik Ozer <sadik.ozer@analog.com>
2024-05-29 07:30:12 +02:00