soc: infineon: psoc4: Add PSOC 4100S Max series support
Add initial support for the PSOC 4100S Max series, starting with the CY8C4149AZI-S598 (100-TQFP package) used on the CY8CKIT-041S-MAX development board. The infrastructure supports adding additional part numbers in the future as needed. Signed-off-by: Braeden Lane <Braeden.Lane@infineon.com>
This commit is contained in:
committed by
Anas Nashif
parent
891d50c396
commit
14268793a9
@@ -375,4 +375,17 @@
|
||||
|
||||
#endif /* CONFIG_SOC_SERIES_PSOC4100TP */
|
||||
|
||||
#if defined(CONFIG_SOC_SERIES_PSOC4100SMAX)
|
||||
|
||||
#if defined(CONFIG_SOC_CY8C4149AZI_S598)
|
||||
#ifndef CY8C4149AZI_S598
|
||||
#define CY8C4149AZI_S598
|
||||
#endif
|
||||
#ifndef CY8C4149AZI_S598_
|
||||
#define CY8C4149AZI_S598_
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_SOC_SERIES_PSOC4100SMAX */
|
||||
|
||||
#endif /* INFINEON_KCONFIG_H__ */
|
||||
|
||||
10
soc/infineon/psoc4/psoc4100smax/CMakeLists.txt
Normal file
10
soc/infineon/psoc4/psoc4100smax/CMakeLists.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
# Copyright (c) 2025 Infineon Technologies AG,
|
||||
# or an affiliate of Infineon Technologies AG.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
zephyr_sources(soc.c)
|
||||
zephyr_include_directories(.)
|
||||
|
||||
#default Zephyr linker script
|
||||
set(SOC_LINKER_SCRIPT ${ZEPHYR_BASE}/include/zephyr/arch/arm/cortex_m/scripts/linker.ld CACHE INTERNAL "")
|
||||
25
soc/infineon/psoc4/psoc4100smax/Kconfig
Normal file
25
soc/infineon/psoc4/psoc4100smax/Kconfig
Normal file
@@ -0,0 +1,25 @@
|
||||
# Copyright (c) 2025 Infineon Technologies AG,
|
||||
# or an affiliate of Infineon Technologies AG.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# SOC Packages for Infineon PSOC4100Smax series MCUs
|
||||
config SOC_PACKAGE_PSOC4100SMAX_100_TQFP
|
||||
bool
|
||||
help
|
||||
100-pin TQFP package
|
||||
|
||||
# Hardware configuration for PSOC4100SMAX series
|
||||
config SOC_SERIES_PSOC4100SMAX
|
||||
select ARM
|
||||
select CPU_CORTEX_M0PLUS
|
||||
select CPU_CORTEX_M_HAS_VTOR
|
||||
select CPU_HAS_ARM_MPU
|
||||
select BUILD_OUTPUT_HEX
|
||||
select BUILD_OUTPUT_BIN
|
||||
select DYNAMIC_INTERRUPTS
|
||||
select SOC_EARLY_INIT_HOOK
|
||||
select CPU_CORTEX_M_HAS_SYSTICK
|
||||
|
||||
config SOC_CY8C4149AZI_S598
|
||||
select SOC_PACKAGE_PSOC4100SMAX_100_TQFP
|
||||
14
soc/infineon/psoc4/psoc4100smax/Kconfig.defconfig
Normal file
14
soc/infineon/psoc4/psoc4100smax/Kconfig.defconfig
Normal file
@@ -0,0 +1,14 @@
|
||||
# Copyright (c) 2025 Infineon Technologies AG,
|
||||
# or an affiliate of Infineon Technologies AG.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
if SOC_SERIES_PSOC4100SMAX
|
||||
|
||||
config NUM_IRQS
|
||||
default 32
|
||||
|
||||
config SYS_CLOCK_HW_CYCLES_PER_SEC
|
||||
default $(dt_node_int_prop_int,/cpus/cpu@0,clock-frequency)
|
||||
|
||||
endif # SOC_SERIES_PSOC4100SMAX
|
||||
21
soc/infineon/psoc4/psoc4100smax/Kconfig.soc
Normal file
21
soc/infineon/psoc4/psoc4100smax/Kconfig.soc
Normal file
@@ -0,0 +1,21 @@
|
||||
# Copyright (c) 2025 Infineon Technologies AG,
|
||||
# or an affiliate of Infineon Technologies AG.
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
# MCU series
|
||||
config SOC_SERIES_PSOC4100SMAX
|
||||
bool
|
||||
select SOC_FAMILY_INFINEON_PSOC4
|
||||
help
|
||||
PSOC4100Smax Series MCU
|
||||
|
||||
config SOC_SERIES
|
||||
default "psoc4100smax" if SOC_SERIES_PSOC4100SMAX
|
||||
|
||||
config SOC_CY8C4149AZI_S598
|
||||
bool
|
||||
select SOC_SERIES_PSOC4100SMAX
|
||||
|
||||
config SOC
|
||||
default "cy8c4149azi_s598" if SOC_CY8C4149AZI_S598
|
||||
21
soc/infineon/psoc4/psoc4100smax/soc.c
Normal file
21
soc/infineon/psoc4/psoc4100smax/soc.c
Normal file
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright (c) 2025 Infineon Technologies AG,
|
||||
* or an affiliate of Infineon Technologies AG.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#include <zephyr/device.h>
|
||||
#include <zephyr/init.h>
|
||||
#include <zephyr/kernel.h>
|
||||
|
||||
#include <cy_sysint.h>
|
||||
#include <system_cat2.h> /* PSoC4 system init header from PDL */
|
||||
#include "cy_pdl.h"
|
||||
|
||||
/* Minimal early initialization for PSoC 4100S Max */
|
||||
void soc_early_init_hook(void)
|
||||
{
|
||||
/* Initializes the system */
|
||||
SystemInit();
|
||||
}
|
||||
15
soc/infineon/psoc4/psoc4100smax/soc.h
Normal file
15
soc/infineon/psoc4/psoc4100smax/soc.h
Normal file
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* Copyright (c) 2025 Infineon Technologies AG,
|
||||
* or an affiliate of Infineon Technologies AG.
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#ifndef ZEPHYR_SOC_INFINEON_PSOC4_PSOC4100SMAX_SOC_H_
|
||||
#define ZEPHYR_SOC_INFINEON_PSOC4_PSOC4100SMAX_SOC_H_
|
||||
|
||||
#ifndef _ASMLANGUAGE
|
||||
#include <cy_device_headers.h>
|
||||
#endif /* !_ASMLANGUAGE */
|
||||
|
||||
#endif /* ZEPHYR_SOC_INFINEON_PSOC4_PSOC4100SMAX_SOC_H_ */
|
||||
@@ -48,3 +48,6 @@ family:
|
||||
- name: cy8c4146azq_t453
|
||||
- name: cy8c4147azq_t415
|
||||
- name: cy8c4147azq_t455
|
||||
- name: psoc4100smax
|
||||
socs:
|
||||
- name: cy8c4149azi_s598
|
||||
|
||||
Reference in New Issue
Block a user