Skip to content

Commit fca19c1

Browse files
committed
soc: arm: Introduce Infineon CAT1/PSoC 6 SOC integration
Add initial version of Infineon CAT1/PSoC 6 SOC integration. Signed-off-by: Nazar Palamar <nazar.palamar@infineon.com>
1 parent cc848c2 commit fca19c1

17 files changed

+602
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Copyright (c) 2021 Cypress Semiconductor Corporation (an Infineon company) or
2+
# an affiliate of Cypress Semiconductor Corporation
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
zephyr_include_directories(common/)
6+
add_subdirectory(${SOC_SERIES})

soc/arm/infineon_cat1/Kconfig

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Copyright (c) 2021 Cypress Semiconductor Corporation (an Infineon company) or
2+
# an affiliate of Cypress Semiconductor Corporation
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
6+
config SOC_FAMILY_INFINEON_CAT1
7+
bool
8+
9+
config SOC_FAMILY_INFINEON_CAT1A
10+
bool
11+
12+
if SOC_FAMILY_INFINEON_CAT1
13+
source "soc/arm/infineon_cat1/*/Kconfig.soc"
14+
15+
config SOC_FAMILY
16+
string
17+
default "infineon_cat1"
18+
19+
endif # SOC_FAMILY_INFINEON_CAT1
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Copyright (c) 2021 Cypress Semiconductor Corporation (an Infineon company) or
2+
# an affiliate of Cypress Semiconductor Corporation
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
source "soc/arm/infineon_cat1/*/Kconfig.defconfig"

soc/arm/infineon_cat1/Kconfig.soc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Copyright (c) 2021 Cypress Semiconductor Corporation (an Infineon company) or
2+
# an affiliate of Cypress Semiconductor Corporation
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
source "soc/arm/infineon_cat1/*/Kconfig.series"
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Copyright (c) 2021 Cypress Semiconductor Corporation (an Infineon company) or
2+
# an affiliate of Cypress Semiconductor Corporation
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
zephyr_sources(soc.c)
6+
zephyr_include_directories(.)
7+
8+
# Add sections
9+
zephyr_linker_sources_ifdef(CONFIG_SOC_FAMILY_INFINEON_CAT1 NOINIT noinit.ld)
10+
11+
# Add section for cm0p image ROM
12+
zephyr_linker_sources_ifdef(CONFIG_SOC_FAMILY_INFINEON_CAT1A ROM_START SORT_KEY 0 rom_cm0image.ld)
13+
14+
# Add section for cm0p image RAM
15+
zephyr_linker_sources_ifdef(CONFIG_SOC_FAMILY_INFINEON_CAT1A RAM_SECTIONS SORT_KEY 0 ram_cm0image.ld)
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Copyright (c) 2021 Cypress Semiconductor Corporation (an Infineon company) or
2+
# an affiliate of Cypress Semiconductor Corporation
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
if SOC_FAMILY_INFINEON_CAT1
6+
source "soc/arm/infineon_cat1/psoc6/Kconfig.defconfig.soc.*"
7+
8+
config SOC_SERIES
9+
default "psoc6"
10+
11+
config SYS_CLOCK_HW_CYCLES_PER_SEC
12+
default 100000000
13+
14+
config SOC_PSOC6_CM0P_IMAGE_ROM_SIZE
15+
hex
16+
default 0x2000 if SOC_PSOC6_CM0P_IMAGE_SLEEP
17+
18+
config SOC_PSOC6_CM0P_IMAGE_RAM_SIZE
19+
hex
20+
default 0x2000 if SOC_PSOC6_CM0P_IMAGE_SLEEP
21+
22+
endif # SOC_FAMILY_INFINEON_CAT1A
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Copyright (c) 2021 Cypress Semiconductor Corporation (an Infineon company) or
2+
# an affiliate of Cypress Semiconductor Corporation
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
source "soc/arm/infineon_cat1/psoc6/Kconfig.defconfig.soc.*"
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# Copyright (c) 2022 Cypress Semiconductor Corporation (an Infineon company) or
2+
# an affiliate of Cypress Semiconductor Corporation
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
# Infineon PSoC6_02 based MCU default configuration
6+
7+
if SOC_DIE_PSOC6_02
8+
9+
config NUM_IRQS
10+
default 32 if CPU_CORTEX_M0PLUS
11+
default 168 if CPU_CORTEX_M4
12+
13+
config SOC
14+
default "CYB0644ABZI_S2D44" if SOC_CYB0644ABZI_S2D44
15+
default "CYS0644ABZI_S2D44" if SOC_CYS0644ABZI_S2D44
16+
default "CY8C624ABZI_S2D44A0" if SOC_CY8C624ABZI_S2D44A0
17+
default "CY8C624ABZI_S2D44" if SOC_CY8C624ABZI_S2D44
18+
default "CY8C624AAZI_S2D44" if SOC_CY8C624AAZI_S2D44
19+
default "CY8C624AFNI_S2D43" if SOC_CY8C624AFNI_S2D43
20+
default "CY8C624ABZI_S2D04" if SOC_CY8C624ABZI_S2D04
21+
default "CY8C624ABZI_S2D14" if SOC_CY8C624ABZI_S2D14
22+
default "CY8C624AAZI_S2D14" if SOC_CY8C624AAZI_S2D14
23+
default "CY8C6248AZI_S2D14" if SOC_CY8C6248AZI_S2D14
24+
default "CY8C6248BZI_S2D44" if SOC_CY8C6248BZI_S2D44
25+
default "CY8C6248AZI_S2D44" if SOC_CY8C6248AZI_S2D44
26+
default "CY8C6248FNI_S2D43" if SOC_CY8C6248FNI_S2D43
27+
default "CY8C614ABZI_S2F04" if SOC_CY8C614ABZI_S2F04
28+
default "CY8C614AAZI_S2F04" if SOC_CY8C614AAZI_S2F04
29+
default "CY8C614AFNI_S2F03" if SOC_CY8C614AFNI_S2F03
30+
default "CY8C614AAZI_S2F14" if SOC_CY8C614AAZI_S2F14
31+
default "CY8C614ABZI_S2F44" if SOC_CY8C614ABZI_S2F44
32+
default "CY8C614AAZI_S2F44" if SOC_CY8C614AAZI_S2F44
33+
default "CY8C614AFNI_S2F43" if SOC_CY8C614AFNI_S2F43
34+
default "CY8C6148BZI_S2F44" if SOC_CY8C6148BZI_S2F44
35+
default "CY8C6148AZI_S2F44" if SOC_CY8C6148AZI_S2F44
36+
default "CY8C6148FNI_S2F43" if SOC_CY8C6148FNI_S2F43
37+
default "CY8C624ABZI_D44" if SOC_CY8C624ABZI_D44
38+
default "CY8C624ALQI_S2D42" if SOC_CY8C624ALQI_S2D42
39+
default "CY8C624ALQI_S2D02" if SOC_CY8C624ALQI_S2D02
40+
default "CY8C6248LQI_S2D42" if SOC_CY8C6248LQI_S2D42
41+
default "CY8C6248LQI_S2D02" if SOC_CY8C6248LQI_S2D02
42+
default "CY8C614ALQI_S2F42" if SOC_CY8C614ALQI_S2F42
43+
default "CY8C614ALQI_S2F02" if SOC_CY8C614ALQI_S2F02
44+
default "CY8C6148LQI_S2F42" if SOC_CY8C6148LQI_S2F42
45+
default "CY8C6148LQI_S2F02" if SOC_CY8C6148LQI_S2F02
46+
47+
# add additional die specific params
48+
49+
endif # SOC_DIE_PSOC6_02
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Copyright (c) 2021 Cypress Semiconductor Corporation (an Infineon company) or
2+
# an affiliate of Cypress Semiconductor Corporation
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
# Cypress PSoC™ 6 MCU lines
6+
config SOC_SERIES_PSOC_60
7+
bool "Infineon PSoC™ 60 series MCU(Value Line)"
8+
select SOC_FAMILY_INFINEON_CAT1
9+
help
10+
Enable support for Infineon PSoC™ 60 MCU series
11+
12+
config SOC_SERIES_PSOC_61
13+
bool "Infineon PSoC™ 61 series MCU (Programmable Line)"
14+
select SOC_FAMILY_INFINEON_CAT1
15+
help
16+
Enable support for Infineon PSoC™ 61 MCU series
17+
18+
config SOC_SERIES_PSOC_62
19+
bool "Infineon PSoC™ 62 series MCU (Performance Line)"
20+
select SOC_FAMILY_INFINEON_CAT1
21+
help
22+
Enable support for Infineon PSoC™ 62 MCU series
23+
24+
config SOC_SERIES_PSOC_63
25+
bool "Infineon PSoC™ 63 series MCU (Connectivity Line)"
26+
select SOC_FAMILY_INFINEON_CAT1
27+
help
28+
Enable support for Infineon PSoC™ 63 MCU series
29+
30+
config SOC_SERIES_PSOC_64
31+
bool "Infineon PSoC™ 64 series MCU (Security Line)"
32+
select SOC_FAMILY_INFINEON_CAT1
33+
help
34+
Enable support for Infineon PSoC™ 64 MCU series
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
# Copyright (c) 2021 Cypress Semiconductor Corporation (an Infineon company) or
2+
# an affiliate of Cypress Semiconductor Corporation
3+
# SPDX-License-Identifier: Apache-2.0
4+
5+
# Infineon PSoC6 die
6+
config SOC_DIE_PSOC6
7+
bool
8+
select ARM
9+
select CPU_CORTEX_M4
10+
select CPU_HAS_ARM_MPU
11+
select SOC_FAMILY_INFINEON_CAT1A
12+
select DYNAMIC_INTERRUPTS
13+
14+
# Infineon PSoC6_01 die
15+
config SOC_DIE_PSOC6_01
16+
bool
17+
select SOC_DIE_PSOC6
18+
19+
# Infineon PSoC6_02 die
20+
config SOC_DIE_PSOC6_02
21+
bool
22+
select SOC_DIE_PSOC6
23+
24+
# Infineon PSoC6_03 die
25+
config SOC_DIE_PSOC6_03
26+
bool
27+
select SOC_DIE_PSOC6
28+
29+
# Infineon PSoC6_04 die
30+
config SOC_DIE_PSOC6_04
31+
bool
32+
select SOC_DIE_PSOC6
33+
34+
# Infineon soc packages
35+
config SOC_PACKAGE_PSOC6_01_124_BGA
36+
bool
37+
38+
config SOC_PACKAGE_PSOC6_01_116_BGA_BLE
39+
bool
40+
41+
config SOC_PACKAGE_PSOC6_01_104_M_CSP_BLE
42+
bool
43+
44+
config SOC_PACKAGE_PSOC6_01_80_WLCSP
45+
bool
46+
47+
config SOC_PACKAGE_PSOC6_01_116_BGA_USB
48+
bool
49+
50+
config SOC_PACKAGE_PSOC6_01_124_BGA_SIP
51+
bool
52+
53+
config SOC_PACKAGE_PSOC6_01_43_SMT
54+
bool
55+
56+
config SOC_PACKAGE_PSOC6_01_104_M_CSP_BLE_USB
57+
bool
58+
59+
config SOC_PACKAGE_PSOC6_01_68_QFN_BLE
60+
bool
61+
62+
config SOC_PACKAGE_PSOC6_02_124_BGA
63+
bool
64+
65+
config SOC_PACKAGE_PSOC6_02_128_TQFP
66+
bool
67+
68+
config SOC_PACKAGE_PSOC6_02_100_WLCSP
69+
bool
70+
71+
config SOC_PACKAGE_PSOC6_02_68_QFN
72+
bool
73+
74+
config SOC_PACKAGE_PSOC6_03_100_TQFP
75+
bool
76+
77+
config SOC_PACKAGE_PSOC6_03_68_QFN
78+
bool
79+
80+
config SOC_PACKAGE_PSOC6_03_49_WLCSP
81+
bool
82+
83+
config SOC_PACKAGE_PSOC6_04_64_TQFP
84+
bool
85+
86+
config SOC_PACKAGE_PSOC6_04_68_QFN
87+
bool
88+
89+
config SOC_PACKAGE_PSOC6_04_80_TQFP
90+
bool
91+
92+
## Infineon MCUs
93+
choice
94+
prompt "MPN"
95+
osource "soc/arm/infineon_cat1/psoc6/Kconfig.soc.psoc6_*"
96+
endchoice
97+
98+
if SOC_FAMILY_INFINEON_CAT1A
99+
## PSoC™ 6 Cortex M0+ prebuilt images
100+
choice
101+
prompt "PSoC™ 6 Cortex M0+ prebuilt images"
102+
help
103+
Choose the prebuilt application image to be executed on the Cortex-M0+ core of the PSoC™ 6
104+
dual-core MCU. The image is responsible for booting the Cortex-M4 on the device.
105+
106+
config SOC_PSOC6_CM0P_IMAGE_SLEEP
107+
bool "DeepSleep"
108+
help
109+
DeepSleep prebuilt application image is executed on the Cortex-M0+ core of the PSoC™ 6 BLE
110+
dual-core MCU.The image is provided as C array ready to be compiled as part of the Cortex-M4
111+
application. The Cortex-M0+ application code is placed to internal flash by the Cortex-M4
112+
linker script.
113+
114+
endchoice
115+
116+
endif # SOC_FAMILY_INFINEON_CAT1A

0 commit comments

Comments
 (0)