drivers: clock_control: add clock_control support for kit_pse84_eval

- add support for kit_pse84_eval board
- refactor infineon,fixed-clock binding
- refactor infineon,fixed-factor binding
- refactor infinein,peri-div binding

Signed-off-by: McAtee Maxwell <maxwell.mcatee@infineon.com>
diff --git a/boards/infineon/kit_psc3m5_evk/kit_psc3m5_evk.dts b/boards/infineon/kit_psc3m5_evk/kit_psc3m5_evk.dts
index 29f4694..755b120 100644
--- a/boards/infineon/kit_psc3m5_evk/kit_psc3m5_evk.dts
+++ b/boards/infineon/kit_psc3m5_evk/kit_psc3m5_evk.dts
@@ -39,8 +39,9 @@
 
 &peri0_group4_8bit_0 {
 	status = "okay";
-	scb-block = <3>;
-	div-value = <109>;
+	resource-type = <IFX_RSC_SCB>;
+	resource-instance = <3>;
+	clock-div = <109>;
 };
 
 &path_mux0 {
diff --git a/boards/infineon/kit_psc3m5_evk/kit_psc3m5_evk_psc3m5fds2afq1_ns.dts b/boards/infineon/kit_psc3m5_evk/kit_psc3m5_evk_psc3m5fds2afq1_ns.dts
index 49dd081..6a12db4 100644
--- a/boards/infineon/kit_psc3m5_evk/kit_psc3m5_evk_psc3m5fds2afq1_ns.dts
+++ b/boards/infineon/kit_psc3m5_evk/kit_psc3m5_evk_psc3m5fds2afq1_ns.dts
@@ -39,8 +39,9 @@
 
 &peri0_group4_8bit_0 {
 	status = "okay";
-	scb-block = <3>;
-	div-value = <109>;
+	resource-type = <IFX_RSC_SCB>;
+	resource-instance = <3>;
+	clock-div = <109>;
 };
 
 &path_mux0 {
diff --git a/drivers/clock_control/CMakeLists.txt b/drivers/clock_control/CMakeLists.txt
index 659c058..c5e9c9e 100644
--- a/drivers/clock_control/CMakeLists.txt
+++ b/drivers/clock_control/CMakeLists.txt
@@ -27,9 +27,9 @@
 zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_NRF_DRIVER_CALIBRATION nrf_clock_calibration.c)
 zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_RV32M1_PCC          clock_control_rv32m1_pcc.c)
 zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_INFINEON_CAT1       clock_control_ifx_cat1.c)
-zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_IFX_CAT1_FIXED_CLOCK       clock_control_ifx_cat1_fixed_clock.c)
-zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_IFX_CAT1_FIXED_FACTOR_CLOCK       clock_control_ifx_cat1_fixed_factor_clock.c)
-zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_IFX_CAT1_PERI_CLOCK       clock_control_ifx_cat1_peri_clock.c)
+zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_IFX_FIXED_CLOCK       clock_control_ifx_fixed_clock.c)
+zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_IFX_FIXED_FACTOR_CLOCK       clock_control_ifx_fixed_factor_clock.c)
+zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_IFX_PERI_CLOCK       clock_control_ifx_peri_clock.c)
 zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_SAM                 clock_control_sam_pmc.c)
 zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_SAMA7G5             clock_control_sama7g5_pmc.c)
 zephyr_library_sources_ifdef(CONFIG_CLOCK_CONTROL_SAMA7G5             clock_control_sama7g5_sckc.c)
diff --git a/drivers/clock_control/Kconfig.ifx_cat1 b/drivers/clock_control/Kconfig.ifx_cat1
index 522c3cd..36aee16 100644
--- a/drivers/clock_control/Kconfig.ifx_cat1
+++ b/drivers/clock_control/Kconfig.ifx_cat1
@@ -12,26 +12,23 @@
 	help
 	  This option enables the clock control driver for Infineon CAT1 family.
 
-config CLOCK_CONTROL_IFX_CAT1_FIXED_CLOCK
+config CLOCK_CONTROL_IFX_FIXED_CLOCK
 	bool "Infineon CAT1 Fixed clock driver"
 	default y
-	depends on SOC_FAMILY_INFINEON_CAT1
 	depends on DT_HAS_INFINEON_FIXED_CLOCK_ENABLED
 	help
 	  This option enables the Fixed clock driver for Infineon CAT1 family.
 
-config CLOCK_CONTROL_IFX_CAT1_FIXED_FACTOR_CLOCK
+config CLOCK_CONTROL_IFX_FIXED_FACTOR_CLOCK
 	bool "Infineon CAT1 Fixed factor clock driver"
 	default y
-	depends on SOC_FAMILY_INFINEON_CAT1
 	depends on DT_HAS_INFINEON_FIXED_FACTOR_CLOCK_ENABLED
 	help
 	  This option enables the Fixed clock driver for Infineon CAT1 family.
 
-config CLOCK_CONTROL_IFX_CAT1_PERI_CLOCK
+config CLOCK_CONTROL_IFX_PERI_CLOCK
 	bool "Infineon CAT1 Fixed clock driver"
 	default y
-	depends on SOC_FAMILY_INFINEON_CAT1
-	depends on DT_HAS_INFINEON_CAT1_PERI_DIV_ENABLED
+	depends on DT_HAS_INFINEON_PERI_DIV_ENABLED
 	help
 	  This option enables the Peripheral clock driver for Infineon CAT1 family.
diff --git a/drivers/clock_control/clock_control_ifx_fixed_clock.c b/drivers/clock_control/clock_control_ifx_fixed_clock.c
index 06fa65f..6f97a4c 100644
--- a/drivers/clock_control/clock_control_ifx_fixed_clock.c
+++ b/drivers/clock_control/clock_control_ifx_fixed_clock.c
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2025 Cypress Semiconductor Corporation (an Infineon company) or
- * an affiliate of Cypress Semiconductor Corporation
+ * Copyright (c) 2025 Infineon Technologies AG,
+ * or an affiliate of Infineon Technologies AG.
  *
  * SPDX-License-Identifier: Apache-2.0
  */
@@ -13,33 +13,98 @@
 #include <zephyr/kernel.h>
 #include <stdlib.h>
 
+#include <infineon_kconfig.h>
 #include <zephyr/drivers/clock_control/clock_control_ifx_cat1.h>
-#include <zephyr/dt-bindings/clock/ifx_clock_source_def.h>
+#include <zephyr/dt-bindings/clock/ifx_clock_source_common.h>
+#include <zephyr/dt-bindings/clock/ifx_clock_source_boards.h>
+
 #include <cy_sysclk.h>
 
 #define DT_DRV_COMPAT infineon_fixed_clock
 
 struct fixed_rate_clock_config {
 	uint32_t rate;
-	uint32_t id; /* ifx_cat1_clock_block */
+	uint32_t system_clock; /* ifx_cat1_clock_block */
 };
 
+__WEAK void ifx_clock_startup_error(uint32_t error)
+{
+	(void)error; /* Suppress the compiler warning */
+	while (1) {
+	}
+}
+
+#if DT_NODE_HAS_STATUS_OKAY(DT_NODELABEL(dpll_hp))
+void ifx_clk_dpll_hp0_init(void)
+{
+#define CY_CFG_SYSCLK_PLL_ERROR 3
+
+	static cy_stc_dpll_hp_config_t dpll_hp_config = {
+		.pDiv = 0,
+		.nDiv = 15,
+		.kDiv = 1,
+		.nDivFract = 0,
+		.freqModeSel = CY_SYSCLK_DPLL_HP_CLK50MHZ_1US_CNT_VAL,
+		.ivrTrim = 0x8U,
+		.clkrSel = 0x1U,
+		.alphaCoarse = 0xCU,
+		.betaCoarse = 0x5U,
+		.flockThresh = 0x3U,
+		.flockWait = 0x6U,
+		.flockLkThres = 0x7U,
+		.flockLkWait = 0x4U,
+		.alphaExt = 0x14U,
+		.betaExt = 0x14U,
+		.lfEn = 0x1U,
+		.dcEn = 0x1U,
+		.outputMode = CY_SYSCLK_FLLPLL_OUTPUT_AUTO,
+	};
+	static cy_stc_pll_manual_config_t dpll_config = {
+		.hpPllCfg = &dpll_hp_config,
+	};
+
+#if !defined(CY_PDL_TZ_ENABLED)
+	if (Cy_SysClk_PllIsEnabled(SRSS_DPLL_HP_0_PATH_NUM)) {
+		return;
+	}
+#endif
+	Cy_SysClk_PllDisable(SRSS_DPLL_HP_0_PATH_NUM);
+	if (CY_SYSCLK_SUCCESS !=
+	    Cy_SysClk_PllManualConfigure(SRSS_DPLL_HP_0_PATH_NUM, &dpll_config)) {
+		ifx_clock_startup_error(CY_CFG_SYSCLK_PLL_ERROR);
+	}
+	if (CY_SYSCLK_SUCCESS != Cy_SysClk_PllEnable(SRSS_DPLL_HP_0_PATH_NUM, 10000u)) {
+		ifx_clock_startup_error(CY_CFG_SYSCLK_PLL_ERROR);
+	}
+}
+#endif
+
 static int fixed_rate_clk_init(const struct device *dev)
 {
 	const struct fixed_rate_clock_config *const config = dev->config;
 
-	switch (config->id) {
+	switch (config->system_clock) {
 
-	case IFX_CAT1_CLOCK_BLOCK_IMO:
+	case IFX_IMO:
 		break;
 
-	case IFX_CAT1_CLOCK_BLOCK_FLL:
+	case IFX_FLL:
 		break;
 
-	case IFX_CAT1_CLOCK_BLOCK_IHO:
+	case IFX_IHO:
 		Cy_SysClk_IhoEnable();
 		break;
 
+	case IFX_PILO:
+		Cy_SysClk_PiloEnable();
+		break;
+
+#if DT_NODE_HAS_STATUS_OKAY(DT_NODELABEL(dpll_hp))
+	case IFX_DPLL500:
+		ifx_clk_dpll_hp0_init();
+		SystemCoreClockUpdate();
+		break;
+#endif
 	default:
 		break;
 	}
@@ -47,13 +112,12 @@
 	return 0;
 }
 
-#define FIXED_CLK_INIT(idx)                                                                        \
-	static const struct fixed_rate_clock_config fixed_rate_clock_config_##idx = {              \
-		.rate = DT_INST_PROP(idx, clock_frequency),                                        \
-		.id = DT_INST_PROP(idx, clock_block),                                              \
+#define FIXED_CLK_INIT(n)                                                                          \
+	static const struct fixed_rate_clock_config fixed_rate_clock_config_##n = {                \
+		.rate = DT_INST_PROP(n, clock_frequency),                                          \
+		.system_clock = DT_INST_PROP(n, system_clock),                                     \
 	};                                                                                         \
-	DEVICE_DT_INST_DEFINE(idx, fixed_rate_clk_init, NULL, NULL,                                \
-			      &fixed_rate_clock_config_##idx, PRE_KERNEL_1,                        \
-			      CONFIG_CLOCK_CONTROL_INIT_PRIORITY, NULL);
+	DEVICE_DT_INST_DEFINE(n, fixed_rate_clk_init, NULL, NULL, &fixed_rate_clock_config_##n,    \
+			      PRE_KERNEL_1, CONFIG_CLOCK_CONTROL_INIT_PRIORITY, NULL);
 
 DT_INST_FOREACH_STATUS_OKAY(FIXED_CLK_INIT)
diff --git a/drivers/clock_control/clock_control_ifx_fixed_factor_clock.c b/drivers/clock_control/clock_control_ifx_fixed_factor_clock.c
index afc1fec..a939a7c 100644
--- a/drivers/clock_control/clock_control_ifx_fixed_factor_clock.c
+++ b/drivers/clock_control/clock_control_ifx_fixed_factor_clock.c
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2025 Cypress Semiconductor Corporation (an Infineon company) or
- * an affiliate of Cypress Semiconductor Corporation
+ * Copyright (c) 2025 Infineon Technologies AG,
+ * or an affiliate of Infineon Technologies AG.
  *
  * SPDX-License-Identifier: Apache-2.0
  */
@@ -13,8 +13,11 @@
 #include <zephyr/kernel.h>
 #include <stdlib.h>
 
+#include <infineon_kconfig.h>
 #include <zephyr/drivers/clock_control/clock_control_ifx_cat1.h>
-#include <zephyr/dt-bindings/clock/ifx_clock_source_def.h>
+#include <zephyr/dt-bindings/clock/ifx_clock_source_common.h>
+#include <zephyr/dt-bindings/clock/ifx_clock_source_boards.h>
+
 #include <cy_sysclk.h>
 
 #define DT_DRV_COMPAT infineon_fixed_factor_clock
@@ -24,21 +27,33 @@
 	uint32_t block; /* ifx_cat1_clock_block */
 	uint32_t instance;
 	uint32_t source_path;
-	uint32_t source_instance;
+	uint32_t source_block;
 };
 
 static int fixed_factor_clk_init(const struct device *dev)
 {
 	const struct fixed_factor_clock_config *const config = dev->config;
+	uint32_t source_instance;
+
+	switch (config->source_block) {
+
+	case IFX_DPLL250_1:
+		source_instance = 1;
+		break;
+
+	default:
+		source_instance = 0;
+		break;
+	}
 
 	switch (config->block) {
 
-	case IFX_CAT1_CLOCK_BLOCK_PATHMUX:
+	case IFX_PATHMUX:
 		Cy_SysClk_ClkPathSetSource(config->instance, config->source_path);
 		break;
 
-	case IFX_CAT1_CLOCK_BLOCK_HF:
-		Cy_SysClk_ClkHfSetSource(config->instance, config->source_instance);
+	case IFX_HF:
+		Cy_SysClk_ClkHfSetSource(config->instance, source_instance);
 		Cy_SysClk_ClkHfSetDivider(config->instance, config->divider);
 		Cy_SysClk_ClkHfEnable(config->instance);
 		break;
@@ -50,16 +65,16 @@
 	return 0;
 }
 
-#define FIXED_CLK_INIT(idx)                                                                        \
-	static const struct fixed_factor_clock_config fixed_factor_clock_config_##idx = {          \
-		.divider = DT_INST_PROP_OR(idx, clock_divider, 1u),                                \
-		.block = DT_INST_PROP(idx, clock_block),                                           \
-		.instance = DT_INST_PROP(idx, clock_instance),                                     \
-		.source_path = DT_INST_PROP_OR(idx, source_path, 1u),                              \
-		.source_instance = DT_INST_PROP_BY_PHANDLE(idx, clocks, clock_instance),           \
+#define FIXED_CLK_INIT(n)                                                                          \
+	static const struct fixed_factor_clock_config fixed_factor_clock_config_##n = {            \
+		.divider = DT_INST_PROP_OR(n, clock_div, 1u),                                      \
+		.block = DT_INST_PROP(n, system_clock),                                            \
+		.instance = DT_INST_PROP(n, instance),                                             \
+		.source_path = DT_INST_PROP_OR(n, source_path, 1u),                                \
+		.source_block = DT_INST_PROP_BY_PHANDLE(n, clocks, system_clock),                  \
 	};                                                                                         \
-	DEVICE_DT_INST_DEFINE(idx, fixed_factor_clk_init, NULL, NULL,                              \
-			      &fixed_factor_clock_config_##idx, PRE_KERNEL_1,                      \
+	DEVICE_DT_INST_DEFINE(n, fixed_factor_clk_init, NULL, NULL,                                \
+			      &fixed_factor_clock_config_##n, PRE_KERNEL_1,                        \
 			      CONFIG_CLOCK_CONTROL_INIT_PRIORITY, NULL);
 
 DT_INST_FOREACH_STATUS_OKAY(FIXED_CLK_INIT)
diff --git a/drivers/clock_control/clock_control_ifx_peri_clock.c b/drivers/clock_control/clock_control_ifx_peri_clock.c
index 4b7b904..bbd1b43 100644
--- a/drivers/clock_control/clock_control_ifx_peri_clock.c
+++ b/drivers/clock_control/clock_control_ifx_peri_clock.c
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2025 Cypress Semiconductor Corporation (an Infineon company) or
- * an affiliate of Cypress Semiconductor Corporation
+ * Copyright (c) 2025 Infineon Technologies AG,
+ * or an affiliate of Infineon Technologies AG.
  *
  * SPDX-License-Identifier: Apache-2.0
  */
@@ -9,12 +9,16 @@
  * @brief Peripheral Clock control driver for Infineon CAT1 MCU family.
  */
 
-#define DT_DRV_COMPAT infineon_cat1_peri_div
+#define DT_DRV_COMPAT infineon_peri_div
 
-#include <zephyr/drivers/clock_control/clock_control_ifx_cat1.h>
 #include <zephyr/drivers/clock_control.h>
 #include <zephyr/kernel.h>
 #include <stdlib.h>
+
+#include <infineon_kconfig.h>
+#include <zephyr/drivers/clock_control/clock_control_ifx_cat1.h>
+#include <zephyr/dt-bindings/clock/ifx_clock_source_common.h>
+
 #include <cy_sysclk.h>
 #include <cy_systick.h>
 
@@ -52,6 +56,14 @@
 	} else {
 		clk = (en_clk_dst_t)((uint32_t)_IFX_CAT1_SCB0_PCLK_CLOCK + block_num - 1);
 	}
+#elif defined(CONFIG_SOC_FAMILY_INFINEON_EDGE)
+	if (block_num == 0) {
+		clk = (en_clk_dst_t)((uint32_t)_IFX_CAT1_SCB0_PCLK_CLOCK);
+	} else if (block_num == 1) {
+		clk = (en_clk_dst_t)((uint32_t)_IFX_CAT1_SCB1_PCLK_CLOCK);
+	} else {
+		clk = (en_clk_dst_t)((uint32_t)_IFX_CAT1_SCB0_PCLK_CLOCK + block_num - 1);
+	}
 #else
 	clk = (en_clk_dst_t)((uint32_t)_IFX_CAT1_SCB0_PCLK_CLOCK + block_num);
 #endif
@@ -62,27 +74,41 @@
 {
 	struct ifx_cat1_peri_clock_data *const data = dev->data;
 
-	en_clk_dst_t clk_idx = ifx_cat1_scb_get_clock_index(data->hw_resource.block_num);
+	if (data->hw_resource.type == IFX_RSC_SCB) {
+		en_clk_dst_t clk_idx = ifx_cat1_scb_get_clock_index(data->hw_resource.block_num);
 
-	ifx_cat1_utils_peri_pclk_set_divider(clk_idx, &data->clock, data->divider - 1);
-	ifx_cat1_utils_peri_pclk_assign_divider(clk_idx, &data->clock);
-	ifx_cat1_utils_peri_pclk_enable_divider(clk_idx, &data->clock);
+		ifx_cat1_utils_peri_pclk_set_divider(clk_idx, &data->clock, data->divider - 1);
+		ifx_cat1_utils_peri_pclk_assign_divider(clk_idx, &data->clock);
+		ifx_cat1_utils_peri_pclk_enable_divider(clk_idx, &data->clock);
+	} else {
+		return -EINVAL;
+	}
 
 	return 0;
 }
 
+#if defined(CONFIG_SOC_FAMILY_INFINEON_EDGE)
+#define PERI_CLOCK_INIT(n)                                                                         \
+	.clock = {                                                                                 \
+		.block = IFX_CAT1_PERIPHERAL_GROUP_ADJUST(DT_INST_PROP_BY_IDX(n, peri_group, 0),   \
+							  DT_INST_PROP_BY_IDX(n, peri_group, 1),   \
+							  DT_INST_PROP(n, div_type)),              \
+		.channel = DT_INST_PROP(n, channel),                                               \
+	},
+#else
+#define PERI_CLOCK_INIT(n)                                                                         \
+	.clock = {                                                                                 \
+		.block = IFX_CAT1_PERIPHERAL_GROUP_ADJUST(DT_INST_PROP_BY_IDX(n, peri_group, 1),   \
+							  DT_INST_PROP(n, div_type)),              \
+		.channel = DT_INST_PROP(n, channel),                                               \
+	},
+#endif
+
 #define INFINEON_CAT1_PERI_CLOCK_INIT(n)                                                           \
 	static struct ifx_cat1_peri_clock_data ifx_cat1_peri_clock##n##_data = {                   \
-		.clock =                                                                           \
-			{                                                                          \
-				.block = IFX_CAT1_PERIPHERAL_GROUP_ADJUST(                         \
-					DT_INST_PROP_BY_IDX(n, clk_dst, 1),                        \
-					DT_INST_PROP(n, div_type)),                                \
-				.channel = DT_INST_PROP(n, div_num),                               \
-			},                                                                         \
-		.divider = DT_INST_PROP(n, div_value),                                             \
-		.hw_resource = {.type = IFX_CAT1_RSC_SCB,                                          \
-				.block_num = DT_INST_PROP(n, scb_block)},                          \
+		PERI_CLOCK_INIT(n).divider = DT_INST_PROP(n, clock_div),                           \
+		.hw_resource = {.type = DT_INST_PROP(n, resource_type),                            \
+				.block_num = DT_INST_PROP(n, resource_instance)},                  \
 	};                                                                                         \
                                                                                                    \
 	DEVICE_DT_INST_DEFINE(n, &ifx_cat1_peri_clock_init, NULL, &ifx_cat1_peri_clock##n##_data,  \
diff --git a/drivers/serial/uart_ifx_cat1_pdl.c b/drivers/serial/uart_ifx_cat1_pdl.c
index 369e3c5..738b081 100644
--- a/drivers/serial/uart_ifx_cat1_pdl.c
+++ b/drivers/serial/uart_ifx_cat1_pdl.c
@@ -24,6 +24,7 @@
 #include <cy_sysint.h>
 
 #include <zephyr/drivers/clock_control/clock_control_ifx_cat1.h>
+#include <zephyr/dt-bindings/clock/ifx_clock_source_common.h>
 
 #include <zephyr/logging/log.h>
 LOG_MODULE_REGISTER(uart_ifx_cat1, CONFIG_UART_LOG_LEVEL);
@@ -731,7 +732,7 @@
 	int ret;
 
 	/* Dedicate SCB HW resource */
-	data->hw_resource.type = IFX_CAT1_RSC_SCB;
+	data->hw_resource.type = IFX_RSC_SCB;
 	data->hw_resource.block_num = ifx_cat1_uart_get_hw_block_num(config->reg_addr);
 
 	/* Configure dt provided device signals when available */
@@ -803,7 +804,7 @@
 #endif
 
 #if defined(COMPONENT_CAT1B) || defined(COMPONENT_CAT1C)
-#define PERI_INFO(n) .clock_peri_group = DT_PROP_BY_IDX(DT_INST_PHANDLE(n, clocks), clk_dst, 1),
+#define PERI_INFO(n) .clock_peri_group = DT_PROP_BY_IDX(DT_INST_PHANDLE(n, clocks), peri_group, 1),
 #else
 #define PERI_INFO(n)
 #endif
@@ -829,9 +830,9 @@
 	.clock =                                                                                   \
 		{                                                                                  \
 			.block = IFX_CAT1_PERIPHERAL_GROUP_ADJUST(                                 \
-				DT_PROP_BY_IDX(DT_INST_PHANDLE(n, clocks), clk_dst, 1),            \
+				DT_PROP_BY_IDX(DT_INST_PHANDLE(n, clocks), peri_group, 1),            \
 				DT_INST_PROP_BY_PHANDLE(n, clocks, div_type)),                     \
-			.channel = DT_INST_PROP_BY_PHANDLE(n, clocks, div_num),                    \
+			.channel = DT_INST_PROP_BY_PHANDLE(n, clocks, channel),                    \
 	},                                                                                         \
 	PERI_INFO(n)
 
diff --git a/dts/arm/infineon/cat1b/psc3/system_clocks.dtsi b/dts/arm/infineon/cat1b/psc3/system_clocks.dtsi
index 89b02d5..10338b5 100644
--- a/dts/arm/infineon/cat1b/psc3/system_clocks.dtsi
+++ b/dts/arm/infineon/cat1b/psc3/system_clocks.dtsi
@@ -10,7 +10,8 @@
 #define DIV_16_5_BIT 02
 #define DIV_24_5_BIT 03
 
-#include <dt-bindings/clock/ifx_clock_source_def.h>
+#include <dt-bindings/clock/ifx_clock_source_common.h>
+#include <dt-bindings/clock/ifx_clock_source_psc3xx.h>
 
 / {
 	srss_power: srss_power {
@@ -26,8 +27,7 @@
 			#clock-cells = <0>;
 			compatible = "infineon,fixed-clock";
 			clock-frequency = <48000000>;
-			clock-block = <IFX_CAT1_CLOCK_BLOCK_IHO>;
-			clock-instance = <0>;
+			system-clock = <IFX_IHO>;
 			status = "okay";
 		};
 
@@ -36,8 +36,7 @@
 			#clock-cells = <0>;
 			compatible = "infineon,fixed-clock";
 			clock-frequency = <8000000>;
-			clock-block = <IFX_CAT1_CLOCK_BLOCK_IMO>;
-			clock-instance = <0>;
+			system-clock = <IFX_IMO>;
 			status = "okay";
 		};
 
@@ -46,8 +45,7 @@
 			#clock-cells = <0>;
 			compatible = "infineon,fixed-clock";
 			clock-frequency = <96000000>;
-			clock-block = <IFX_CAT1_CLOCK_BLOCK_FLL>;
-			clock-instance = <0>;
+			system-clock = <IFX_FLL>;
 			status = "okay";
 		};
 
@@ -56,8 +54,8 @@
 			#clock-cells = <0>;
 			compatible = "infineon,fixed-factor-clock";
 			clocks = <&clk_iho>;
-			clock-block = <IFX_CAT1_CLOCK_BLOCK_PATHMUX>;
-			clock-instance = <0>;
+			system-clock = <IFX_PATHMUX>;
+			instance = <0>;
 			source-path = <IFX_CAT1_CLKPATH_IN_IHO>;
 			status = "disabled";
 		};
@@ -67,8 +65,8 @@
 			#clock-cells = <0>;
 			compatible = "infineon,fixed-factor-clock";
 			clocks = <&clk_iho>;
-			clock-block = <IFX_CAT1_CLOCK_BLOCK_PATHMUX>;
-			clock-instance = <1>;
+			system-clock = <IFX_PATHMUX>;
+			instance = <1>;
 			source-path = <IFX_CAT1_CLKPATH_IN_IHO>;
 			status = "disabled";
 		};
@@ -78,8 +76,8 @@
 			#clock-cells = <0>;
 			compatible = "infineon,fixed-factor-clock";
 			clocks = <&clk_iho>;
-			clock-block = <IFX_CAT1_CLOCK_BLOCK_PATHMUX>;
-			clock-instance = <2>;
+			system-clock = <IFX_PATHMUX>;
+			instance = <2>;
 			source-path = <IFX_CAT1_CLKPATH_IN_IHO>;
 			status = "disabled";
 		};
@@ -89,8 +87,8 @@
 			#clock-cells = <0>;
 			compatible = "infineon,fixed-factor-clock";
 			clocks = <&clk_iho>;
-			clock-block = <IFX_CAT1_CLOCK_BLOCK_PATHMUX>;
-			clock-instance = <3>;
+			system-clock = <IFX_PATHMUX>;
+			instance = <3>;
 			source-path = <IFX_CAT1_CLKPATH_IN_IHO>;
 			status = "disabled";
 		};
@@ -99,10 +97,10 @@
 		clk_hf0: clk_hf0 {
 			#clock-cells = <0>;
 			compatible = "infineon,fixed-factor-clock";
-			clock-divider = <IFX_CAT1_CLKHF_NO_DIVIDE>;
+			clock-div = <IFX_CLK_HF_NO_DIVIDE>;
 			clocks = <&path_mux1>;
-			clock-block = <IFX_CAT1_CLOCK_BLOCK_HF>;
-			clock-instance = <0>;
+			system-clock = <IFX_HF>;
+			instance = <0>;
 			status = "disabled";
 		};
 
@@ -110,10 +108,10 @@
 		clk_hf1: clk_hf1 {
 			#clock-cells = <0>;
 			compatible = "infineon,fixed-factor-clock";
-			clock-divider = <IFX_CAT1_CLKHF_NO_DIVIDE>;
+			clock-div = <IFX_CLK_HF_NO_DIVIDE>;
 			clocks = <&path_mux1>;
-			clock-block = <IFX_CAT1_CLOCK_BLOCK_HF>;
-			clock-instance = <1>;
+			system-clock = <IFX_HF>;
+			instance = <1>;
 			status = "disabled";
 		};
 
@@ -121,10 +119,10 @@
 		clk_hf2: clk_hf2 {
 			#clock-cells = <0>;
 			compatible = "infineon,fixed-factor-clock";
-			clock-divider = <IFX_CAT1_CLKHF_NO_DIVIDE>;
+			clock-div = <IFX_CLK_HF_NO_DIVIDE>;
 			clocks = <&path_mux0>;
-			clock-block = <IFX_CAT1_CLOCK_BLOCK_HF>;
-			clock-instance = <2>;
+			system-clock = <IFX_HF>;
+			instance = <2>;
 			status = "disabled";
 		};
 
@@ -132,10 +130,10 @@
 		clk_hf3: clk_hf3 {
 			#clock-cells = <0>;
 			compatible = "infineon,fixed-factor-clock";
-			clock-divider = <IFX_CAT1_CLKHF_NO_DIVIDE>;
+			clock-div = <IFX_CLK_HF_NO_DIVIDE>;
 			clocks = <&path_mux2>;
-			clock-block = <IFX_CAT1_CLOCK_BLOCK_HF>;
-			clock-instance = <3>;
+			system-clock = <IFX_HF>;
+			instance = <3>;
 			status = "disabled";
 		};
 
@@ -143,10 +141,10 @@
 		clk_hf4: clk_hf4 {
 			#clock-cells = <0>;
 			compatible = "infineon,fixed-factor-clock";
-			clock-divider = <IFX_CAT1_CLKHF_NO_DIVIDE>;
+			clock-div = <IFX_CLK_HF_NO_DIVIDE>;
 			clocks = <&path_mux0>;
-			clock-block = <IFX_CAT1_CLOCK_BLOCK_HF>;
-			clock-instance = <4>;
+			system-clock = <IFX_HF>;
+			instance = <4>;
 			status = "disabled";
 		};
 	};
@@ -156,11 +154,11 @@
 		/* 24.5-bit */
 		peri0_group0_24_5bit_0: peri0_group0_24_5bit_0 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 00]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 00]; /* inst#, group# */
 			div-type = <DIV_24_5_BIT>;
-			div-num = <0>;
-			div-value = <1>;
+			channel  = <0>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
@@ -168,11 +166,11 @@
 		/* 8-bit */
 		peri0_group1_8bit_0: peri0_group1_8bit_0 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 01]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 01]; /* inst#, group# */
 			div-type = <DIV_8_BIT>;
-			div-num = <0>;
-			div-value = <1>;
+			channel  = <0>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
@@ -180,74 +178,74 @@
 		/* 8-bit */
 		peri0_group4_8bit_0: peri0_group4_8bit_0 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 04]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 04]; /* inst#, group# */
 			div-type = <DIV_8_BIT>;
-			div-num = <0>;
-			div-value = <1>;
+			channel  = <0>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		peri0_group4_8bit_1: peri0_group4_8bit_1 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 04]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 04]; /* inst#, group# */
 			div-type = <DIV_8_BIT>;
-			div-num = <1>;
-			div-value = <1>;
+			channel  = <1>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		/* 16-bit */
 		peri0_group4_16bit_0: peri0_group4_16bit_0 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 04]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 04]; /* inst#, group# */
 			div-type = <DIV_16_BIT>;
-			div-num = <0>;
-			div-value = <1>;
+			channel  = <0>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		/* 16.5-bit */
 		peri0_group4_16_5bit_0: peri0_group4_16_5bit_0 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 04]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 04]; /* inst#, group# */
 			div-type = <DIV_16_5_BIT>;
-			div-num = <0>;
-			div-value = <1>;
+			channel  = <0>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		peri0_group4_16_5bit_1: peri0_group4_16_5bit_1 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 04]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 04]; /* inst#, group# */
 			div-type = <DIV_16_5_BIT>;
-			div-num = <1>;
-			div-value = <1>;
+			channel  = <1>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		peri0_group4_16_5bit_2: peri0_group4_16_5bit_2 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 04]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 04]; /* inst#, group# */
 			div-type = <DIV_16_5_BIT>;
-			div-num = <2>;
-			div-value = <1>;
+			channel  = <2>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		/* 24.5-bit */
 		peri0_group4_24_5bit_0: peri0_group4_24_5bit_0 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 04]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 04]; /* inst#, group# */
 			div-type = <DIV_24_5_BIT>;
-			div-num = <0>;
-			div-value = <1>;
+			channel  = <0>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
@@ -255,142 +253,142 @@
 		/* 8-bit */
 		peri0_group5_8bit_0: peri0_group5_8bit_0 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 05]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 05]; /* inst#, group# */
 			div-type = <DIV_8_BIT>;
-			div-num = <0>;
-			div-value = <1>;
+			channel  = <0>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		peri0_group5_8bit_1: peri0_group5_8bit_1 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 05]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 05]; /* inst#, group# */
 			div-type = <DIV_8_BIT>;
-			div-num = <1>;
-			div-value = <1>;
+			channel  = <1>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		peri0_group5_8bit_2: peri0_group5_8bit_2 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 05]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 05]; /* inst#, group# */
 			div-type = <DIV_8_BIT>;
-			div-num = <2>;
-			div-value = <1>;
+			channel  = <2>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		peri0_group5_8bit_3: peri0_group5_8bit_3 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 05]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 05]; /* inst#, group# */
 			div-type = <DIV_8_BIT>;
-			div-num = <3>;
-			div-value = <1>;
+			channel  = <3>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		peri0_group5_8bit_4: peri0_group5_8bit_4 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 05]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 05]; /* inst#, group# */
 			div-type = <DIV_8_BIT>;
-			div-num = <4>;
-			div-value = <1>;
+			channel  = <4>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		peri0_group5_8bit_5: peri0_group5_8bit_5 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 05]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 05]; /* inst#, group# */
 			div-type = <DIV_8_BIT>;
-			div-num = <5>;
-			div-value = <1>;
+			channel  = <5>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		peri0_group5_8bit_6: peri0_group5_8bit_6 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 05]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 05]; /* inst#, group# */
 			div-type = <DIV_8_BIT>;
-			div-num = <6>;
-			div-value = <1>;
+			channel  = <6>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		peri0_group5_8bit_7: peri0_group5_8bit_7 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 05]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 05]; /* inst#, group# */
 			div-type = <DIV_8_BIT>;
-			div-num = <7>;
-			div-value = <1>;
+			channel  = <7>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		peri0_group5_8bit_8: peri0_group5_8bit_8 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 05]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 05]; /* inst#, group# */
 			div-type = <DIV_8_BIT>;
-			div-num = <8>;
-			div-value = <1>;
+			channel  = <8>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		peri0_group5_8bit_9: peri0_group5_8bit_9 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 05]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 05]; /* inst#, group# */
 			div-type = <DIV_8_BIT>;
-			div-num = <9>;
-			div-value = <1>;
+			channel  = <9>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		/* 16-bit */
 		peri0_group5_16bit_0: peri0_group5_16bit_0 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 05]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 05]; /* inst#, group# */
 			div-type = <DIV_16_BIT>;
-			div-num = <0>;
-			div-value = <1>;
+			channel  = <0>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		peri0_group5_16bit_1: peri0_group5_16bit_1 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 05]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 05]; /* inst#, group# */
 			div-type = <DIV_16_BIT>;
-			div-num = <1>;
-			div-value = <1>;
+			channel  = <1>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		peri0_group5_16bit_2: peri0_group5_16bit_2 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 05]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 05]; /* inst#, group# */
 			div-type = <DIV_16_BIT>;
-			div-num = <2>;
-			div-value = <1>;
+			channel  = <2>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
 		peri0_group5_16bit_3: peri0_group5_16bit_3 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 05]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 05]; /* inst#, group# */
 			div-type = <DIV_16_BIT>;
-			div-num = <3>;
-			div-value = <1>;
+			channel  = <3>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 
@@ -398,11 +396,11 @@
 		/* 16.5-bit */
 		peri0_group6_16_5bit_0: peri0_group6_16_5bit_0 {
 			#clock-cells = <0>;
-			compatible = "infineon,cat1-peri-div";
-			clk-dst = [00 06]; /* inst#, group# */
+			compatible = "infineon,peri-div";
+			peri-group  = [00 06]; /* inst#, group# */
 			div-type = <DIV_16_5_BIT>;
-			div-num = <0>;
-			div-value = <1>;
+			channel  = <0>;
+			clock-div = <1>;
 			status = "disabled";
 		};
 	};
diff --git a/dts/bindings/clock/infineon,fixed-clock.yaml b/dts/bindings/clock/infineon,fixed-clock.yaml
index 0c25ef7..129d6cb 100644
--- a/dts/bindings/clock/infineon,fixed-clock.yaml
+++ b/dts/bindings/clock/infineon,fixed-clock.yaml
@@ -7,23 +7,13 @@
 
 compatible: "infineon,fixed-clock"
 
-include: [base.yaml, clock-controller.yaml]
+include: fixed-clock.yaml
 
 properties:
-  clock-frequency:
+  system-clock:
     type: int
-    description: output clock frequency (Hz)
     required: true
-
-  clock-block:
-    type: int
-    description: Clock HW block number (refer to ifx_cat1_clock_block in clock_control_ifx_cat1.h)
-    required: true
-
-  clock-instance:
-    type: int
-    description: TEMP
-    required: true
-
-  "#clock-cells":
-    const: 0
+    description: |
+      The type of clock (refer to include/.../dt-bindings/clock/ifx_clock_source_common.h):
+      clk_iho  : system-clock = <IFX_IHO>
+      clk_pilo : system-clock = <IFX_PILO>
diff --git a/dts/bindings/clock/infineon,fixed-factor-clock.yaml b/dts/bindings/clock/infineon,fixed-factor-clock.yaml
index b926f24..f540459 100644
--- a/dts/bindings/clock/infineon,fixed-factor-clock.yaml
+++ b/dts/bindings/clock/infineon,fixed-factor-clock.yaml
@@ -7,30 +7,25 @@
 
 compatible: "infineon,fixed-factor-clock"
 
-include: [base.yaml, clock-controller.yaml]
+include: fixed-factor-clock.yaml
 
 properties:
-  clocks:
-    type: phandle-array
-    description: input clock source
-
-  clock-block:
+  system-clock:
     type: int
-    description: Clock HW block number (refer to ifx_cat1_clock_block in clock_control_ifx_cat1.h)
     required: true
+    description: |
+      The type of clock (refer to include/.../dt-bindings/clock/ifx_clock_source_common.h):
+      path_mux5 : system-clock = <IFX_PATHMUX>
+      clk_hf0   : system-clock = <IFX_HF>
 
-  clock-instance:
+  instance:
     type: int
-    description: TEMP
     required: true
-
-  clock-divider:
-    type: int
-    description: TEMP
+    description: |
+      Instance of a given clock type.
+      path_mux5 : instance = <5>
+      clk_hf0   : instance = <0>
 
   source-path:
     type: int
-    description: TEMP
-
-  "#clock-cells":
-    const: 0
+    description: Path that indicates source clock.
diff --git a/dts/bindings/clock/infineon,peri-div.yaml b/dts/bindings/clock/infineon,peri-div.yaml
index c6c6e4e..4b55806 100644
--- a/dts/bindings/clock/infineon,peri-div.yaml
+++ b/dts/bindings/clock/infineon,peri-div.yaml
@@ -1,31 +1,33 @@
-# Copyright (c) 2025 Cypress Semiconductor Corporation (an Infineon company) or
-# an affiliate of Cypress Semiconductor Corporation
+# Copyright (c) 2025 Infineon Technologies AG,
+# or an affiliate of Infineon Technologies AG.
 #
 # SPDX-License-Identifier: Apache-2.0
 
-description: infineon cat1 peripheral divider 8bit.
+description: infineon peripheral divider
 
-compatible: "infineon,cat1-peri-div"
+compatible: "infineon,peri-div"
 
 include: [clock-controller.yaml, base.yaml]
 
 properties:
-  clk-dst:
+  peri-group:
     type: uint8-array
     description: |
-      Clock Connections. PDL uses the target IP to identify the peri group
+      Peri instance and group of given peripheral divider:
+      peri0_group1_... : peri-group = [00 01]
+      peri1_group3_... : peri-group = [01 03]
 
   div-type:
     type: int
     description: |
-      Clock divider type.
+      Programmable clock divider types: DIV_8_BIT, DIV_16_BIT, DIV_16_5_BIT, DIV_24_5_BIT
 
-  div-num:
+  channel:
     type: int
     description: |
-     Programmable clock divider types: DIV_8_BIT, DIV_16_BIT, DIV_16_5_BIT, DIV_24_5_BIT
+      Channel of given peripheral divider.
 
-  div-value:
+  clock-div:
     type: int
     description: |
       For non-fractional clock dividers (div-type: DIV_8_BIT, DIV_16_BIT)
@@ -45,11 +47,19 @@
       it divides the clock by 1/32 for each count. To divide the clock by 11/32nds
       set this value to 11.
 
-  scb-block:
+  resource-type:
     type: int
     required: true
     description: |
-      SCB device instance peripheral clock is assigned to:
-      &scb0 : scb-block = <0>
-      &scb3 : scb-block = <3>
-      &scb5 : scb-block = <5>
+      Resource type that the peripheral clock is assigned to:
+      &scb3     : resource-type = IFX_RSC_SCB
+      &tcpwm0_0 : resource-type = IFX_RSC_TCPWM
+
+  resource-instance:
+    type: int
+    required: true
+    description: |
+      Resource instance that the peripheral clock is assigned to:
+      &scb0 : resource-instance = <0>
+      &scb3 : resource-instance = <3>
+      &scb5 : resource-instance = <5>
diff --git a/include/zephyr/drivers/clock_control/clock_control_ifx_cat1.h b/include/zephyr/drivers/clock_control/clock_control_ifx_cat1.h
index 7b0da7a..8726743 100644
--- a/include/zephyr/drivers/clock_control/clock_control_ifx_cat1.h
+++ b/include/zephyr/drivers/clock_control/clock_control_ifx_cat1.h
@@ -10,6 +10,7 @@
 
 #define IFX_CAT1_PERIPHERAL_GROUP_GET_DIVIDER_TYPE(block) ((cy_en_divider_types_t)((block) & 0x03))
 
+#if !defined(CONFIG_SOC_FAMILY_INFINEON_EDGE)
 /* Converts the group/div pair into a unique block number. */
 #define IFX_CAT1_PERIPHERAL_GROUP_ADJUST(group, div) (((group) << 2) | (div))
 
@@ -22,41 +23,25 @@
 			(gr), CY_SYSCLK_DIV_16_5_BIT), /*!< 16.5bit Peripheral Divider Group */    \
 		IFX_CAT1_CLOCK_BLOCK_PERIPHERAL##gr##_24_5BIT = IFX_CAT1_PERIPHERAL_GROUP_ADJUST(  \
 			(gr), CY_SYSCLK_DIV_24_5_BIT) /*!< 24.5bit Peripheral Divider Group */
+#else
+/* Converts the group/div pair into a unique block number. */
+#define IFX_CAT1_PERIPHERAL_GROUP_ADJUST(instance, group, div)                                     \
+	(((group + (instance * PERI0_PERI_PCLK_PCLK_GROUP_NR)) << 2) | (div))
+#define IFX_CAT1_PERIPHERAL_CLOCK_GET_INSTANCE(clock) ((clock >> 2) / PERI0_PERI_PCLK_PCLK_GROUP_NR)
+#define IFX_CAT1_PERIPHERAL_CLOCK_GET_GROUP(clock)                                                 \
+	((clock >> 2) -                                                                            \
+	 (IFX_CAT1_PERIPHERAL_CLOCK_GET_INSTANCE(clock) * PERI0_PERI_PCLK_PCLK_GROUP_NR))
 
-enum ifx_cat1_resource {
-	IFX_CAT1_RSC_ADC,     /*!< Analog to digital converter */
-	IFX_CAT1_RSC_ADCMIC,  /*!< Analog to digital converter with Analog Mic support */
-	IFX_CAT1_RSC_BLESS,   /*!< Bluetooth communications block */
-	IFX_CAT1_RSC_CAN,     /*!< CAN communication block */
-	IFX_CAT1_RSC_CLKPATH, /*!< Clock Path. DEPRECATED. */
-	IFX_CAT1_RSC_CLOCK,   /*!< Clock */
-	IFX_CAT1_RSC_CRYPTO,  /*!< Crypto hardware accelerator */
-	IFX_CAT1_RSC_DAC,     /*!< Digital to analog converter */
-	IFX_CAT1_RSC_DMA,     /*!< DMA controller */
-	IFX_CAT1_RSC_DW,      /*!< Datawire DMA controller */
-	IFX_CAT1_RSC_ETH,     /*!< Ethernet communications block */
-	IFX_CAT1_RSC_GPIO,    /*!< General purpose I/O pin */
-	IFX_CAT1_RSC_I2S,     /*!< I2S communications block */
-	IFX_CAT1_RSC_I3C,     /*!< I3C communications block */
-	IFX_CAT1_RSC_KEYSCAN, /*!< KeyScan block */
-	IFX_CAT1_RSC_LCD,     /*!< Segment LCD controller */
-	IFX_CAT1_RSC_LIN,     /*!< LIN communications block */
-	IFX_CAT1_RSC_LPCOMP,  /*!< Low power comparator */
-	IFX_CAT1_RSC_LPTIMER, /*!< Low power timer */
-	IFX_CAT1_RSC_OPAMP,   /*!< Opamp */
-	IFX_CAT1_RSC_PDM,     /*!< PCM/PDM communications block */
-	IFX_CAT1_RSC_PTC,     /*!< Programmable Threshold comparator */
-	IFX_CAT1_RSC_SMIF,    /*!< Quad-SPI communications block */
-	IFX_CAT1_RSC_RTC,     /*!< Real time clock */
-	IFX_CAT1_RSC_SCB,     /*!< Serial Communications Block */
-	IFX_CAT1_RSC_SDHC,    /*!< SD Host Controller */
-	IFX_CAT1_RSC_SDIODEV, /*!< SDIO Device Block */
-	IFX_CAT1_RSC_TCPWM,   /*!< Timer/Counter/PWM block */
-	IFX_CAT1_RSC_TDM,     /*!< TDM block */
-	IFX_CAT1_RSC_UDB,     /*!< UDB Array */
-	IFX_CAT1_RSC_USB,     /*!< USB communication block */
-	IFX_CAT1_RSC_INVALID, /*!< Placeholder for invalid type */
-};
+#define IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(instance, gr)                                              \
+	IFX_CAT1_CLOCK_BLOCK##instance##_PERIPHERAL##gr##_8BIT =                                   \
+		IFX_CAT1_PERIPHERAL_GROUP_ADJUST((instance), (gr), CY_SYSCLK_DIV_8_BIT),           \
+	IFX_CAT1_CLOCK_BLOCK##instance##_PERIPHERAL##gr##_16BIT =                                  \
+		IFX_CAT1_PERIPHERAL_GROUP_ADJUST((instance), (gr), CY_SYSCLK_DIV_16_BIT),          \
+	IFX_CAT1_CLOCK_BLOCK##instance##_PERIPHERAL##gr##_16_5BIT =                                \
+		IFX_CAT1_PERIPHERAL_GROUP_ADJUST((instance), (gr), CY_SYSCLK_DIV_16_5_BIT),        \
+	IFX_CAT1_CLOCK_BLOCK##instance##_PERIPHERAL##gr##_24_5BIT =                                \
+		IFX_CAT1_PERIPHERAL_GROUP_ADJUST((instance), (gr), CY_SYSCLK_DIV_24_5_BIT)
+#endif
 
 enum ifx_cat1_clock_block {
 #if defined(CONFIG_SOC_FAMILY_INFINEON_CAT1A)
@@ -280,6 +265,94 @@
 	IFX_CAT1_CLOCK_BLOCK_SLOW,  /*!< Slow Clock for CM0+ */
 	IFX_CAT1_CLOCK_BLOCK_MEM,   /*!< CLK MEM */
 	IFX_CAT1_CLOCK_BLOCK_TIMER, /*!< CLK Timer */
+#elif defined(CONFIG_SOC_FAMILY_INFINEON_EDGE)
+
+	IFX_CAT1_CLOCK_BLOCK_PERIPHERAL_8BIT =
+		CY_SYSCLK_DIV_8_BIT, /*!< Equivalent to IFX_CAT1_CLOCK_BLOCK_PERIPHERAL0_8_BIT */
+	IFX_CAT1_CLOCK_BLOCK_PERIPHERAL_16BIT =
+		CY_SYSCLK_DIV_16_BIT, /*!< Equivalent to IFX_CAT1_CLOCK_BLOCK_PERIPHERAL0_16_BIT */
+	IFX_CAT1_CLOCK_BLOCK_PERIPHERAL_16_5BIT =
+		CY_SYSCLK_DIV_16_5_BIT, /*!< Equivalent to IFX_CAT1_CLOCK_BLOCK_PERIPHERAL0_16_5_BIT
+					 */
+	IFX_CAT1_CLOCK_BLOCK_PERIPHERAL_24_5BIT =
+		CY_SYSCLK_DIV_24_5_BIT, /*!< Equivalent to IFX_CAT1_CLOCK_BLOCK_PERIPHERAL0_24_5_BIT
+					 */
+
+#if (PERI0_PERI_PCLK_PCLK_GROUP_NR >= 1)
+	IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(0, 0),
+#endif
+#if (PERI0_PERI_PCLK_PCLK_GROUP_NR >= 2)
+	IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(0, 1),
+#endif
+#if (PERI0_PERI_PCLK_PCLK_GROUP_NR >= 3)
+	IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(0, 2),
+#endif
+#if (PERI0_PERI_PCLK_PCLK_GROUP_NR >= 4)
+	IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(0, 3),
+#endif
+#if (PERI0_PERI_PCLK_PCLK_GROUP_NR >= 5)
+	IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(0, 4),
+#endif
+#if (PERI0_PERI_PCLK_PCLK_GROUP_NR >= 6)
+	IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(0, 5),
+#endif
+#if (PERI0_PERI_PCLK_PCLK_GROUP_NR >= 7)
+	IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(0, 6),
+#endif
+#if (PERI0_PERI_PCLK_PCLK_GROUP_NR >= 8)
+	IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(0, 7),
+#endif
+#if (PERI0_PERI_PCLK_PCLK_GROUP_NR >= 9)
+	IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(0, 8),
+#endif
+#if (PERI0_PERI_PCLK_PCLK_GROUP_NR >= 10)
+	IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(0, 9),
+#endif
+#if (PERI0_PERI_PCLK_PCLK_GROUP_NR >= 11)
+#warning "Unhandled PERI0 PCLK number"
+#endif
+
+#if (PERI1_PERI_PCLK_PCLK_GROUP_NR >= 1)
+	IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(1, 0),
+#endif
+#if (PERI1_PERI_PCLK_PCLK_GROUP_NR >= 2)
+	IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(1, 1),
+#endif
+#if (PERI1_PERI_PCLK_PCLK_GROUP_NR >= 3)
+	IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(1, 2),
+#endif
+#if (PERI1_PERI_PCLK_PCLK_GROUP_NR >= 4)
+	IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(1, 3),
+#endif
+#if (PERI1_PERI_PCLK_PCLK_GROUP_NR >= 5)
+	IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(1, 4),
+#endif
+#if (PERI1_PERI_PCLK_PCLK_GROUP_NR >= 6)
+	IFX_CAT1_CLOCK_BLOCK_PERI_GROUP(1, 5),
+#endif
+#if (PERI1_PERI_PCLK_PCLK_GROUP_NR >= 7)
+#warning "Unhandled PERI1 PCLK number"
+#endif
+
+	IFX_CAT1_CLOCK_BLOCK_IHO,  /*!< Internal High Speed Oscillator Input Clock */
+	IFX_CAT1_CLOCK_BLOCK_ECO,  /*!< External Crystal Oscillator Input Clock */
+	IFX_CAT1_CLOCK_BLOCK_EXT,  /*!< External Input Clock */
+	IFX_CAT1_CLOCK_BLOCK_PILO, /*!< Precision ILO Input Clock */
+	IFX_CAT1_CLOCK_BLOCK_WCO,  /*!< Watch Crystal Oscillator Input Clock */
+
+	IFX_CAT1_CLOCK_BLOCK_PATHMUX, /*!< Path selection mux for input to FLL/PLLs */
+
+	IFX_CAT1_CLOCK_BLOCK_DPLL250,       /*!< 250MHz Digital Phase-Locked Loop Clock */
+	IFX_CAT1_CLOCK_BLOCK_DPLL500,       /*!< 500MHz Digital Phase-Locked Loop Clock */
+	IFX_CAT1_CLOCK_BLOCK_ECO_PRESCALER, /*!< ECO Prescaler Divider */
+
+	IFX_CAT1_CLOCK_BLOCK_LF, /*!< Low Frequency Clock */
+	IFX_CAT1_CLOCK_BLOCK_MF, /*!< Medium Frequency Clock */
+	IFX_CAT1_CLOCK_BLOCK_HF, /*!< High Frequency Clock */
+
+	IFX_CAT1_CLOCK_BLOCK_BAK,  /*!< Backup Power Domain Clock */
+	IFX_CAT1_CLOCK_BLOCK_PERI, /*!< Peripheral Clock Group */
+
 #endif
 };
 
@@ -291,8 +364,8 @@
 };
 
 struct ifx_cat1_resource_inst {
-	enum ifx_cat1_resource type; /* !< The resource block type */
-	uint8_t block_num;           /* !< The resource block index */
+	uint8_t type;      /* !< The resource block type */
+	uint8_t block_num; /* !< The resource block index */
 	/**
 	 * The channel number, if the resource type defines multiple channels
 	 * per block instance. Otherwise, 0
@@ -307,7 +380,7 @@
 static inline cy_rslt_t ifx_cat1_utils_peri_pclk_enable_divider(en_clk_dst_t clk_dest,
 								const struct ifx_cat1_clock *_clock)
 {
-#if defined(COMPONENT_CAT1B) || defined(COMPONENT_CAT1C)
+#if defined(COMPONENT_CAT1B) || defined(COMPONENT_CAT1C) || defined(CONFIG_SOC_FAMILY_INFINEON_EDGE)
 	return Cy_SysClk_PeriPclkEnableDivider(
 		clk_dest, IFX_CAT1_PERIPHERAL_GROUP_GET_DIVIDER_TYPE(_clock->block),
 		_clock->channel);
@@ -322,7 +395,7 @@
 							     const struct ifx_cat1_clock *_clock,
 							     uint32_t div)
 {
-#if defined(COMPONENT_CAT1B) || defined(COMPONENT_CAT1C)
+#if defined(COMPONENT_CAT1B) || defined(COMPONENT_CAT1C) || defined(CONFIG_SOC_FAMILY_INFINEON_EDGE)
 	return Cy_SysClk_PeriPclkSetDivider(
 		clk_dest, IFX_CAT1_PERIPHERAL_GROUP_GET_DIVIDER_TYPE(_clock->block),
 		_clock->channel, div);
@@ -338,7 +411,7 @@
 					  const struct ifx_cat1_clock *_clock, uint32_t div_int,
 					  uint32_t div_frac)
 {
-#if defined(COMPONENT_CAT1B) || defined(COMPONENT_CAT1C)
+#if defined(COMPONENT_CAT1B) || defined(COMPONENT_CAT1C) || defined(CONFIG_SOC_FAMILY_INFINEON_EDGE)
 	return Cy_SysClk_PeriPclkSetFracDivider(
 		clk_dest, IFX_CAT1_PERIPHERAL_GROUP_GET_DIVIDER_TYPE(_clock->block),
 		_clock->channel, div_int, div_frac);
@@ -353,7 +426,7 @@
 static inline cy_rslt_t ifx_cat1_utils_peri_pclk_assign_divider(en_clk_dst_t clk_dest,
 								const struct ifx_cat1_clock *_clock)
 {
-#if defined(COMPONENT_CAT1B) || defined(COMPONENT_CAT1C) || defined(COMPONENT_CAT1D)
+#if defined(COMPONENT_CAT1B) || defined(COMPONENT_CAT1C) || defined(CONFIG_SOC_FAMILY_INFINEON_EDGE)
 	return Cy_SysClk_PeriPclkAssignDivider(
 		clk_dest, IFX_CAT1_PERIPHERAL_GROUP_GET_DIVIDER_TYPE(_clock->block),
 		_clock->channel);
diff --git a/include/zephyr/dt-bindings/clock/ifx_clock_source_boards.h b/include/zephyr/dt-bindings/clock/ifx_clock_source_boards.h
new file mode 100644
index 0000000..057764a
--- /dev/null
+++ b/include/zephyr/dt-bindings/clock/ifx_clock_source_boards.h
@@ -0,0 +1,12 @@
+/*
+ * Copyright (c) 2025 Infineon Technologies AG,
+ * or an affiliate of Infineon Technologies AG.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#if defined(CONFIG_SOC_SERIES_PSE84)
+#include "ifx_clock_source_pse8xx.h"
+#elif defined(CONFIG_SOC_SERIES_PSC3)
+#include "ifx_clock_source_psc3xx.h"
+#endif
diff --git a/include/zephyr/dt-bindings/clock/ifx_clock_source_common.h b/include/zephyr/dt-bindings/clock/ifx_clock_source_common.h
index 01f8ed0..5e60871 100644
--- a/include/zephyr/dt-bindings/clock/ifx_clock_source_common.h
+++ b/include/zephyr/dt-bindings/clock/ifx_clock_source_common.h
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 2025 Cypress Semiconductor Corporation (an Infineon company) or
- * an affiliate of Cypress Semiconductor Corporation
+ * Copyright (c) 2025 Infineon Technologies AG,
+ * or an affiliate of Infineon Technologies AG.
  *
  * SPDX-License-Identifier: Apache-2.0
  */
@@ -8,74 +8,80 @@
 #define CLK_SOURCE_IHO
 #define CLK_SOURCE_PILO
 
-#define IFX_CAT1_CLOCK_BLOCK_IHO   1  /*!< Internal High Speed Oscillator Input Clock */
-#define IFX_CAT1_CLOCK_BLOCK_IMO   2  /*!< Internal Main Oscillator Input Clock */
-#define IFX_CAT1_CLOCK_BLOCK_ECO   3  /*!< External Crystal Oscillator Input Clock */
-#define IFX_CAT1_CLOCK_BLOCK_EXT   4  /*!< External Input Clock */
-#define IFX_CAT1_CLOCK_BLOCK_ALTHF 5  /*!< Alternate High Frequency Input Clock */
-#define IFX_CAT1_CLOCK_BLOCK_ALTLF 6  /*!< Alternate Low Frequency Input Clock */
-#define IFX_CAT1_CLOCK_BLOCK_ILO   7  /*!< Internal Low Speed Oscillator Input Clock */
-#define IFX_CAT1_CLOCK_BLOCK_PILO  8  /*!< Precision ILO Input Clock */
-#define IFX_CAT1_CLOCK_BLOCK_WCO   9  /*!< Watch Crystal Oscillator Input Clock */
-#define IFX_CAT1_CLOCK_BLOCK_MFO   10 /*!< Medium Frequency Oscillator Clock */
+#define IFX_IHO           1  /*!< Internal High Speed Oscillator Input Clock */
+#define IFX_IMO           2  /*!< Internal Main Oscillator Input Clock */
+#define IFX_ECO           3  /*!< External Crystal Oscillator Input Clock */
+#define IFX_EXT           4  /*!< External Input Clock */
+#define IFX_ALTHF         5  /*!< Alternate High Frequency Input Clock */
+#define IFX_ALTLF         6  /*!< Alternate Low Frequency Input Clock */
+#define IFX_ILO           7  /*!< Internal Low Speed Oscillator Input Clock */
+#define IFX_PILO          8  /*!< Precision ILO Input Clock */
+#define IFX_WCO           9  /*!< Watch Crystal Oscillator Input Clock */
+#define IFX_MFO           10 /*!< Medium Frequency Oscillator Clock */
+#define IFX_PATHMUX       11 /*!< Path selection mux for input to FLL/PLLs */
+#define IFX_FLL           12 /*!< Frequency-Locked Loop Clock */
+#define IFX_PLL200        13 /*!< 200MHz Phase-Locked Loop Clock */
+#define IFX_PLL400        14 /*!< 400MHz Phase-Locked Loop Clock */
+#define IFX_ECO_PRESCALER 15 /*!< ECO Prescaler Divider */
+#define IFX_LF            16 /*!< Low Frequency Clock */
+#define IFX_MF            17 /*!< Medium Frequency Clock */
+#define IFX_HF            18 /*!< High Frequency Clock */
+#define IFX_PUMP          19 /*!< Analog Pump Clock */
+#define IFX_BAK           20 /*!< Backup Power Domain Clock */
+#define IFX_ALT_SYS_TICK  21 /*!< Alternative SysTick Clock */
+#define IFX_PERI          22 /*!< Peripheral Clock Group */
+#define IFX_DPLL250_0     23 /*!< 250MHz Digital Phase-Locked Loop Clock 0 */
+#define IFX_DPLL250_1     24 /*!< 250MHz Digital Phase-Locked Loop Clock 1 */
+#define IFX_DPLL500       25 /*!< 500MHz Digital Phase-Locked Loop Clock */
 
-#define IFX_CAT1_CLOCK_BLOCK_PATHMUX 11 /*!< Path selection mux for input to FLL/PLLs */
+#define IFX_CLK_HF_NO_DIVIDE    0  /**< don't divide clkHf */
+#define IFX_CLK_HF_DIVIDE_BY_2  1  /**< divide clkHf by 2 */
+#define IFX_CLK_HF_DIVIDE_BY_3  2  /**< divide clkHf by 3 */
+#define IFX_CLK_HF_DIVIDE_BY_4  3  /**< divide clkHf by 4 */
+#define IFX_CLK_HF_DIVIDE_BY_5  4  /**< divide clkHf by 5 */
+#define IFX_CLK_HF_DIVIDE_BY_6  5  /**< divide clkHf by 6 */
+#define IFX_CLK_HF_DIVIDE_BY_7  6  /**< divide clkHf by 7 */
+#define IFX_CLK_HF_DIVIDE_BY_8  7  /**< divide clkHf by 8 */
+#define IFX_CLK_HF_DIVIDE_BY_9  8  /**< divide clkHf by 9 */
+#define IFX_CLK_HF_DIVIDE_BY_10 9  /**< divide clkHf by 10 */
+#define IFX_CLK_HF_DIVIDE_BY_11 10 /**< divide clkHf by 11 */
+#define IFX_CLK_HF_DIVIDE_BY_12 11 /**< divide clkHf by 12 */
+#define IFX_CLK_HF_DIVIDE_BY_13 12 /**< divide clkHf by 13 */
+#define IFX_CLK_HF_DIVIDE_BY_14 13 /**< divide clkHf by 14 */
+#define IFX_CLK_HF_DIVIDE_BY_15 14 /**< divide clkHf by 15 */
+#define IFX_CLK_HF_DIVIDE_BY_16 15 /**< divide clkHf by 16 */
+#define IFX_CLK_HF_MAX_DIVIDER     /**< Max divider */
 
-#define IFX_CAT1_CLOCK_BLOCK_FLL           12 /*!< Frequency-Locked Loop Clock */
-#define IFX_CAT1_CLOCK_BLOCK_PLL200        13 /*!< 200MHz Phase-Locked Loop Clock */
-#define IFX_CAT1_CLOCK_BLOCK_PLL400        14 /*!< 400MHz Phase-Locked Loop Clock */
-#define IFX_CAT1_CLOCK_BLOCK_ECO_PRESCALER 15 /*!< ECO Prescaler Divider */
-
-#define IFX_CAT1_CLOCK_BLOCK_LF 16 /*!< Low Frequency Clock */
-#define IFX_CAT1_CLOCK_BLOCK_MF 17 /*!< Medium Frequency Clock */
-#define IFX_CAT1_CLOCK_BLOCK_HF 18 /*!< High Frequency Clock */
-
-#define IFX_CAT1_CLOCK_BLOCK_PUMP         19 /*!< Analog Pump Clock */
-#define IFX_CAT1_CLOCK_BLOCK_BAK          20 /*!< Backup Power Domain Clock */
-#define IFX_CAT1_CLOCK_BLOCK_ALT_SYS_TICK 21 /*!< Alternative SysTick Clock */
-#define IFX_CAT1_CLOCK_BLOCK_PERI         22 /*!< Peripheral Clock Group */
-
-#define IFX_CAT1_CLKHF_NO_DIVIDE    0  /**< don't divide clkHf */
-#define IFX_CAT1_CLKHF_DIVIDE_BY_2  1  /**< divide clkHf by 2 */
-#define IFX_CAT1_CLKHF_DIVIDE_BY_3  2  /**< divide clkHf by 3 */
-#define IFX_CAT1_CLKHF_DIVIDE_BY_4  3  /**< divide clkHf by 4 */
-#define IFX_CAT1_CLKHF_DIVIDE_BY_5  4  /**< divide clkHf by 5 */
-#define IFX_CAT1_CLKHF_DIVIDE_BY_6  5  /**< divide clkHf by 6 */
-#define IFX_CAT1_CLKHF_DIVIDE_BY_7  6  /**< divide clkHf by 7 */
-#define IFX_CAT1_CLKHF_DIVIDE_BY_8  7  /**< divide clkHf by 8 */
-#define IFX_CAT1_CLKHF_DIVIDE_BY_9  8  /**< divide clkHf by 9 */
-#define IFX_CAT1_CLKHF_DIVIDE_BY_10 9  /**< divide clkHf by 10 */
-#define IFX_CAT1_CLKHF_DIVIDE_BY_11 10 /**< divide clkHf by 11 */
-#define IFX_CAT1_CLKHF_DIVIDE_BY_12 11 /**< divide clkHf by 12 */
-#define IFX_CAT1_CLKHF_DIVIDE_BY_13 12 /**< divide clkHf by 13 */
-#define IFX_CAT1_CLKHF_DIVIDE_BY_14 13 /**< divide clkHf by 14 */
-#define IFX_CAT1_CLKHF_DIVIDE_BY_15 14 /**< divide clkHf by 15 */
-#define IFX_CAT1_CLKHF_DIVIDE_BY_16 15 /**< divide clkHf by 16 */
-#define IFX_CAT1_CLKHF_MAX_DIVIDER     /**< Max divider */
-
-#define IFX_CAT1_CLKPATH_IN_IMO    0 /**< Select the IMO as the output of the path mux */
-#define IFX_CAT1_CLKPATH_IN_EXT    1 /**< Select the EXT as the output of the path mux */
-#define IFX_CAT1_CLKPATH_IN_ECO    2 /**< Select the ECO as the output of the path mux */
-#define IFX_CAT1_CLKPATH_IN_ALTHF  3 /**< Select the ALTHF as the output of the path mux */
-/* Select the DSI MUX output as the output of the path mux */
-#define IFX_CAT1_CLKPATH_IN_DSIMUX 4
-#define IFX_CAT1_CLKPATH_IN_LPECO  5 /**< Select the LPECO as the output of the path mux */
-#define IFX_CAT1_CLKPATH_IN_IHO    6 /**< Select the IHO as the output of the path mux */
-/* Select a DSI signal (0 - 15) as the output of the DSI mux and path mux.         \
- *   Make sure the DSI clock sources are available on used device.                   \
- */
-#define IFX_CAT1_CLKPATH_IN_DSI    0x100
-/**< Select the ILO (16) as the output of the DSI mux and path mux */
-#define IFX_CAT1_CLKPATH_IN_ILO    0x110
-/**< Select the WCO (17) as the output of the DSI mux and path mux */
-#define IFX_CAT1_CLKPATH_IN_WCO    0x111
-/**< Select the ALTLF (18) as the output of the DSI mux and path mux.                \
- *   Make sure the ALTLF clock sources in available on used device.                  \
- */
-#define IFX_CAT1_CLKPATH_IN_ALTLF  0x112
-/**< Select the PILO (19) as the output of the DSI mux and path mux.                 \
- *   Make sure the PILO clock sources in available on used device.                   \
- */
-#define IFX_CAT1_CLKPATH_IN_PILO   0x113
-/**< Select the ILO1 (20) as the output of the DSI mux and path mux */
-#define IFX_CAT1_CLKPATH_IN_ILO1   0x114
+/* Target resource types for peripheral dividers */
+#define IFX_RSC_ADC     0  /*!< Analog to digital converter */
+#define IFX_RSC_ADCMIC  1  /*!< Analog to digital converter with Analog Mic support */
+#define IFX_RSC_BLESS   2  /*!< Bluetooth communications block */
+#define IFX_RSC_CAN     3  /*!< CAN communication block */
+#define IFX_RSC_CLKPATH 4  /*!< Clock Path. DEPRECATED. */
+#define IFX_RSC_CLOCK   5  /*!< Clock */
+#define IFX_RSC_CRYPTO  6  /*!< Crypto hardware accelerator */
+#define IFX_RSC_DAC     7  /*!< Digital to analog converter */
+#define IFX_RSC_DMA     8  /*!< DMA controller */
+#define IFX_RSC_DW      9  /*!< Datawire DMA controller */
+#define IFX_RSC_ETH     10 /*!< Ethernet communications block */
+#define IFX_RSC_GPIO    11 /*!< General purpose I/O pin */
+#define IFX_RSC_I2S     12 /*!< I2S communications block */
+#define IFX_RSC_I3C     13 /*!< I3C communications block */
+#define IFX_RSC_KEYSCAN 14 /*!< KeyScan block */
+#define IFX_RSC_LCD     15 /*!< Segment LCD controller */
+#define IFX_RSC_LIN     16 /*!< LIN communications block */
+#define IFX_RSC_LPCOMP  17 /*!< Low power comparator */
+#define IFX_RSC_LPTIMER 18 /*!< Low power timer */
+#define IFX_RSC_OPAMP   19 /*!< Opamp */
+#define IFX_RSC_PDM     20 /*!< PCM/PDM communications block */
+#define IFX_RSC_PTC     21 /*!< Programmable Threshold comparator */
+#define IFX_RSC_SMIF    22 /*!< Quad-SPI communications block */
+#define IFX_RSC_RTC     23 /*!< Real time clock */
+#define IFX_RSC_SCB     24 /*!< Serial Communications Block */
+#define IFX_RSC_SDHC    25 /*!< SD Host Controller */
+#define IFX_RSC_SDIODEV 26 /*!< SDIO Device Block */
+#define IFX_RSC_TCPWM   27 /*!< Timer/Counter/PWM block */
+#define IFX_RSC_TDM     28 /*!< TDM block */
+#define IFX_RSC_UDB     29 /*!< UDB Array */
+#define IFX_RSC_USB     30 /*!< USB communication block */
+#define IFX_RSC_INVALID 31 /*!< Placeholder for invalid type */
diff --git a/include/zephyr/dt-bindings/clock/ifx_clock_source_psc3xx.h b/include/zephyr/dt-bindings/clock/ifx_clock_source_psc3xx.h
new file mode 100644
index 0000000..7fec373
--- /dev/null
+++ b/include/zephyr/dt-bindings/clock/ifx_clock_source_psc3xx.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2025 Infineon Technologies AG,
+ * or an affiliate of Infineon Technologies AG.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+#define IFX_CAT1_CLKPATH_IN_IMO    0 /**< Select the IMO as the output of the path mux */
+#define IFX_CAT1_CLKPATH_IN_EXT    1 /**< Select the EXT as the output of the path mux */
+#define IFX_CAT1_CLKPATH_IN_ECO    2 /**< Select the ECO as the output of the path mux */
+#define IFX_CAT1_CLKPATH_IN_ALTHF  3 /**< Select the ALTHF as the output of the path mux */
+/* Select the DSI MUX output as the output of the path mux */
+#define IFX_CAT1_CLKPATH_IN_DSIMUX 4
+#define IFX_CAT1_CLKPATH_IN_LPECO  5 /**< Select the LPECO as the output of the path mux */
+#define IFX_CAT1_CLKPATH_IN_IHO    6 /**< Select the IHO as the output of the path mux */
+/* Select a DSI signal (0 - 15) as the output of the DSI mux and path mux.         \
+ *   Make sure the DSI clock sources are available on used device.                   \
+ */
+#define IFX_CAT1_CLKPATH_IN_DSI    0x100
+/**< Select the ILO (16) as the output of the DSI mux and path mux */
+#define IFX_CAT1_CLKPATH_IN_ILO    0x110
+/**< Select the WCO (17) as the output of the DSI mux and path mux */
+#define IFX_CAT1_CLKPATH_IN_WCO    0x111
+/**< Select the ALTLF (18) as the output of the DSI mux and path mux.                \
+ *   Make sure the ALTLF clock sources in available on used device.                  \
+ */
+#define IFX_CAT1_CLKPATH_IN_ALTLF  0x112
+/**< Select the PILO (19) as the output of the DSI mux and path mux.                 \
+ *   Make sure the PILO clock sources in available on used device.                   \
+ */
+#define IFX_CAT1_CLKPATH_IN_PILO   0x113
+/**< Select the ILO1 (20) as the output of the DSI mux and path mux */
+#define IFX_CAT1_CLKPATH_IN_ILO1   0x114
diff --git a/include/zephyr/dt-bindings/clock/ifx_clock_source_pse8xx.h b/include/zephyr/dt-bindings/clock/ifx_clock_source_pse8xx.h
new file mode 100644
index 0000000..94cccf6
--- /dev/null
+++ b/include/zephyr/dt-bindings/clock/ifx_clock_source_pse8xx.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2025 Infineon Technologies AG,
+ * or an affiliate of Infineon Technologies AG.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/* Select the IHO as the output of the path mux */
+#define IFX_CAT1_CLKPATH_IN_IHO 0
+
+/* Select the EXT as the output of the path mux */
+#define IFX_CAT1_CLKPATH_IN_EXT 1
+
+/* Select the ECO as the output of the path mux */
+#define IFX_CAT1_CLKPATH_IN_ECO 2
+
+/* Select the IMO as the output of the path mux */
+#define IFX_CAT1_CLKPATH_IN_IMO 3
+
+/* Select the ALTHF0 as the output of the path mux */
+#define IFX_CAT1_CLKPATH_IN_ALTHF0 4
+
+/* Select the ALTHF1 as the output of the path mux */
+#define IFX_CAT1_CLKPATH_IN_ALTHF1 5
+
+/* Select the DSI MUX output as the output of the path mux */
+#define IFX_CAT1_CLKPATH_IN_DSIMUX 7
+
+/* Select a DSI signal (0 - 15) as the output of the DSI mux and path mux.
+ * Make sure the DSI clock sources are available on used device.
+ */
+#define IFX_CAT1_CLKPATH_IN_DSI 0x100
+
+/* Select the ILO (16) as the output of the DSI mux and path mux */
+#define IFX_CAT1_CLKPATH_IN_ILO 0x110
+
+/* Select the WCO (17) as the output of the DSI mux and path mux */
+#define IFX_CAT1_CLKPATH_IN_WCO 0x111
+
+/* Select the ALTLF (18) as the output of the DSI mux and path mux.
+ * Make sure the ALTLF clock sources in available on used device.
+ */
+#define IFX_CAT1_CLKPATH_IN_ALTLF 0x112
+
+/* Select the PILO (19) as the output of the DSI mux and path mux.
+ * Make sure the PILO clock sources in available on used device.
+ */
+#define IFX_CAT1_CLKPATH_IN_PILO 0x113