Re: [PATCH V9 2/7] clk: imx: add scu clock common part
From: Stephen Boyd <sboyd@kernel.org>
Date: 2018-12-10 21:56:10
Also in:
linux-clk
Quoting Aisheng DONG (2018-12-04 06:39:25)
quoted hunk ↗ jump to hunk
diff --git a/drivers/clk/imx/Kconfig b/drivers/clk/imx/Kconfig index 43a3ecc..63e7b01 100644 --- a/drivers/clk/imx/Kconfig +++ b/drivers/clk/imx/Kconfig@@ -3,3 +3,7 @@ config MXC_CLK bool depends on ARCH_MXC + +config MXC_CLK_SCU
Is there any reason to make this a hidden option instead of making it a selectable option? It can still depend on ARCH_MXC and ARM64, but otherwise it should be compilable as long as CONFIG_IMX_SCU is defined (this should also be a config we depend on here).
quoted hunk ↗ jump to hunk
+ bool + depends on ARCH_MXC && ARM64diff --git a/drivers/clk/imx/Makefile b/drivers/clk/imx/Makefile index f850424..4abed37 100644 --- a/drivers/clk/imx/Makefile +++ b/drivers/clk/imx/Makefile@@ -20,6 +20,9 @@ obj-$(CONFIG_MXC_CLK) += \ clk-pllv4.o \ clk-sccg-pll.o +obj-$(CONFIG_MXC_CLK_SCU) += \ + clk-scu.o + obj-$(CONFIG_SOC_IMX1) += clk-imx1.o obj-$(CONFIG_SOC_IMX21) += clk-imx21.o obj-$(CONFIG_SOC_IMX25) += clk-imx25.odiff --git a/drivers/clk/imx/clk-scu.c b/drivers/clk/imx/clk-scu.c new file mode 100644 index 0000000..ec8a471 --- /dev/null +++ b/drivers/clk/imx/clk-scu.c@@ -0,0 +1,265 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2018 NXP + * Dong Aisheng <aisheng.dong@nxp.com> + */ + +#include <linux/clk-provider.h> +#include <linux/err.h> +#include <linux/slab.h> + +#include "clk-scu.h" + +struct imx_sc_ipc *ccm_ipc_handle;
Why does this need to be a global? Can it be in each clk_scu instance instead?
quoted hunk ↗ jump to hunk
+diff --git a/drivers/clk/imx/clk-scu.h b/drivers/clk/imx/clk-scu.h new file mode 100644 index 0000000..09f381b --- /dev/null +++ b/drivers/clk/imx/clk-scu.h@@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: GPL-2.0+ */ +/* + * Copyright 2018 NXP + * Dong Aisheng <aisheng.dong@nxp.com> + */ + +#ifndef __IMX_CLK_SCU_H +#define __IMX_CLK_SCU_H + +#include <linux/firmware/imx/sci.h> + +extern struct imx_sc_ipc *ccm_ipc_handle; + +static inline int imx_clk_scu_init(void) +{ + return imx_scu_get_handle(&ccm_ipc_handle);
And then this can be implemented in the C driver so that ccm_ipc_handle doesn't need to be exported into the header file? _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel