diff --git a/changelog.yaml b/changelog.yaml index fd2a8ecc2..4d84fb704 100644 --- a/changelog.yaml +++ b/changelog.yaml @@ -1146,6 +1146,9 @@ subsections: - title: TRDC scope: imx-trdc + - title: Clock + scope: nxp-clk + - title: Renesas scope: renesas-drivers diff --git a/docs/about/maintainers.rst b/docs/about/maintainers.rst index 85cc61212..cbed72f34 100644 --- a/docs/about/maintainers.rst +++ b/docs/about/maintainers.rst @@ -767,6 +767,7 @@ NXP SoC Part S32G274A and its platform port :|M|: Ghennadi Procopciuc :|G|: `gprocopciucnxp`_ :|F|: docs/plat/s32g274a.rst +:|F|: drivers/nxp/clk/s32cc :|F|: drivers/nxp/console/linflex_console.S :|F|: include/drivers/nxp/console/linflex.h :|F|: plat/nxp/s32 diff --git a/drivers/nxp/clk/s32cc/s32cc_clk.mk b/drivers/nxp/clk/s32cc/s32cc_clk.mk new file mode 100644 index 000000000..d1f940ac4 --- /dev/null +++ b/drivers/nxp/clk/s32cc/s32cc_clk.mk @@ -0,0 +1,12 @@ +# +# Copyright 2024 NXP +# +# SPDX-License-Identifier: BSD-3-Clause +# + +CLK_SOURCES := \ + ${PLAT_DRIVERS_PATH}/clk/s32cc/s32cc_clk_drv.c \ + +ifeq (${BL_COMM_CLK_NEEDED},yes) +BL2_SOURCES += ${CLK_SOURCES} +endif diff --git a/drivers/nxp/clk/s32cc/s32cc_clk_drv.c b/drivers/nxp/clk/s32cc/s32cc_clk_drv.c new file mode 100644 index 000000000..845300028 --- /dev/null +++ b/drivers/nxp/clk/s32cc/s32cc_clk_drv.c @@ -0,0 +1,59 @@ +/* + * Copyright 2024 NXP + * + * SPDX-License-Identifier: BSD-3-Clause + */ +#include + +#include + +static int s32cc_clk_enable(unsigned long id) +{ + return -ENOTSUP; +} + +static void s32cc_clk_disable(unsigned long id) +{ +} + +static bool s32cc_clk_is_enabled(unsigned long id) +{ + return false; +} + +static unsigned long s32cc_clk_get_rate(unsigned long id) +{ + return 0; +} + +static int s32cc_clk_set_rate(unsigned long id, unsigned long rate, + unsigned long *orate) +{ + return -ENOTSUP; +} + +static int s32cc_clk_get_parent(unsigned long id) +{ + return -ENOTSUP; +} + +static int s32cc_clk_set_parent(unsigned long id, unsigned long parent_id) +{ + return -ENOTSUP; +} + +void s32cc_clk_register_drv(void) +{ + static const struct clk_ops s32cc_clk_ops = { + .enable = s32cc_clk_enable, + .disable = s32cc_clk_disable, + .is_enabled = s32cc_clk_is_enabled, + .get_rate = s32cc_clk_get_rate, + .set_rate = s32cc_clk_set_rate, + .get_parent = s32cc_clk_get_parent, + .set_parent = s32cc_clk_set_parent, + }; + + clk_register(&s32cc_clk_ops); +} + diff --git a/drivers/nxp/drivers.mk b/drivers/nxp/drivers.mk index d77e98549..761571d3a 100644 --- a/drivers/nxp/drivers.mk +++ b/drivers/nxp/drivers.mk @@ -97,3 +97,7 @@ endif ifeq (${IFC_NAND_NEEDED},yes) include ${PLAT_DRIVERS_PATH}/ifc/nand/ifc_nand.mk endif + +ifeq (${CLK_NEEDED},yes) +include ${PLAT_DRIVERS_PATH}/clk/s32cc/s32cc_clk.mk +endif diff --git a/plat/nxp/s32/s32g274ardb2/platform.mk b/plat/nxp/s32/s32g274ardb2/platform.mk index ee1507e5d..316ed2cf3 100644 --- a/plat/nxp/s32/s32g274ardb2/platform.mk +++ b/plat/nxp/s32/s32g274ardb2/platform.mk @@ -35,6 +35,7 @@ ERRATA_SPECULATIVE_AT := 1 # Selecting Drivers for SoC $(eval $(call SET_NXP_MAKE_FLAG,CONSOLE_NEEDED,BL_COMM)) +$(eval $(call SET_NXP_MAKE_FLAG,CLK_NEEDED,BL_COMM)) include ${PLAT_DRIVERS_PATH}/drivers.mk