* [PATCH 1/2] clk: Move clk-gate2 to clock driver directory
@ 2019-12-25 5:16 Sean Anderson
2020-01-26 20:55 ` Lukasz Majewski
0 siblings, 1 reply; 4+ messages in thread
From: Sean Anderson @ 2019-12-25 5:16 UTC (permalink / raw)
To: u-boot
Make clk-gate2 available for use outside of imx.
Signed-off-by: Sean Anderson <seanga2@gmail.com>
---
drivers/clk/Makefile | 1 +
drivers/clk/{imx => }/clk-gate2.c | 20 ++++----------------
drivers/clk/imx/Makefile | 2 +-
drivers/clk/imx/clk.h | 5 -----
include/linux/clk-provider.h | 24 ++++++++++++++++++++----
5 files changed, 26 insertions(+), 26 deletions(-)
rename drivers/clk/{imx => }/clk-gate2.c (85%)
diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile
index 06131edb9f..fef3280f16 100644
--- a/drivers/clk/Makefile
+++ b/drivers/clk/Makefile
@@ -9,6 +9,7 @@ obj-$(CONFIG_$(SPL_TPL_)CLK) += clk_fixed_rate.o
obj-$(CONFIG_$(SPL_TPL_)CLK) += clk_fixed_factor.o
obj-$(CONFIG_$(SPL_TPL_)CLK_CCF) += clk.o clk-divider.o clk-mux.o clk-gate.o
obj-$(CONFIG_$(SPL_TPL_)CLK_CCF) += clk-fixed-factor.o
+obj-$(CONFIG_$(SPL_TPL_)CLK_CCF) += clk-gate2.o
obj-$(CONFIG_$(SPL_TPL_)CLK_COMPOSITE_CCF) += clk-composite.o
obj-y += analogbits/
diff --git a/drivers/clk/imx/clk-gate2.c b/drivers/clk/clk-gate2.c
similarity index 85%
rename from drivers/clk/imx/clk-gate2.c
rename to drivers/clk/clk-gate2.c
index 1b9db6e791..cfe21e5496 100644
--- a/drivers/clk/imx/clk-gate2.c
+++ b/drivers/clk/clk-gate2.c
@@ -10,8 +10,7 @@
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
- * Gated clock implementation
- *
+ * Gated clock which redirects rate functions to its parent clock
*/
#include <common.h>
@@ -21,19 +20,8 @@
#include <dm/device.h>
#include <linux/clk-provider.h>
#include <clk.h>
-#include "clk.h"
-
-#define UBOOT_DM_CLK_IMX_GATE2 "imx_clk_gate2"
-
-struct clk_gate2 {
- struct clk clk;
- void __iomem *reg;
- u8 bit_idx;
- u8 cgr_val;
- u8 flags;
-};
-#define to_clk_gate2(_clk) container_of(_clk, struct clk_gate2, clk)
+#define UBOOT_DM_CLK_GATE2 "clk_gate2"
static int clk_gate2_enable(struct clk *clk)
{
@@ -97,7 +85,7 @@ struct clk *clk_register_gate2(struct device *dev, const char *name,
clk = &gate->clk;
- ret = clk_register(clk, UBOOT_DM_CLK_IMX_GATE2, name, parent_name);
+ ret = clk_register(clk, UBOOT_DM_CLK_GATE2, name, parent_name);
if (ret) {
kfree(gate);
return ERR_PTR(ret);
@@ -107,7 +95,7 @@ struct clk *clk_register_gate2(struct device *dev, const char *name,
}
U_BOOT_DRIVER(clk_gate2) = {
- .name = UBOOT_DM_CLK_IMX_GATE2,
+ .name = UBOOT_DM_CLK_GATE2,
.id = UCLASS_CLK,
.ops = &clk_gate2_ops,
.flags = DM_FLAG_PRE_RELOC,
diff --git a/drivers/clk/imx/Makefile b/drivers/clk/imx/Makefile
index 222c5a4e08..5328e9265a 100644
--- a/drivers/clk/imx/Makefile
+++ b/drivers/clk/imx/Makefile
@@ -2,7 +2,7 @@
#
# SPDX-License-Identifier: GPL-2.0
-obj-$(CONFIG_$(SPL_TPL_)CLK_CCF) += clk-gate2.o clk-pllv3.o clk-pfd.o
+obj-$(CONFIG_$(SPL_TPL_)CLK_CCF) += clk-pllv3.o clk-pfd.o
obj-$(CONFIG_$(SPL_TPL_)CLK_IMX6Q) += clk-imx6q.o
obj-$(CONFIG_CLK_IMX8) += clk-imx8.o
diff --git a/drivers/clk/imx/clk.h b/drivers/clk/imx/clk.h
index 07dcf94ea5..c46570e9f4 100644
--- a/drivers/clk/imx/clk.h
+++ b/drivers/clk/imx/clk.h
@@ -45,11 +45,6 @@ struct clk *imx_clk_pll14xx(const char *name, const char *parent_name,
void __iomem *base,
const struct imx_pll14xx_clk *pll_clk);
-struct clk *clk_register_gate2(struct device *dev, const char *name,
- const char *parent_name, unsigned long flags,
- void __iomem *reg, u8 bit_idx, u8 cgr_val,
- u8 clk_gate_flags);
-
struct clk *imx_clk_pllv3(enum imx_pllv3_type type, const char *name,
const char *parent_name, void __iomem *base,
u32 div_mask);
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
index 0ef6e685ad..f510291018 100644
--- a/include/linux/clk-provider.h
+++ b/include/linux/clk-provider.h
@@ -90,10 +90,6 @@ struct clk_gate {
#define CLK_GATE_HIWORD_MASK BIT(1)
extern const struct clk_ops clk_gate_ops;
-struct clk *clk_register_gate(struct device *dev, const char *name,
- const char *parent_name, unsigned long flags,
- void __iomem *reg, u8 bit_idx,
- u8 clk_gate_flags, spinlock_t *lock);
struct clk_div_table {
unsigned int val;
@@ -159,6 +155,16 @@ struct clk_composite {
#define to_clk_composite(_clk) container_of(_clk, struct clk_composite, clk)
+struct clk_gate2 {
+ struct clk clk;
+ void __iomem *reg;
+ u8 bit_idx;
+ u8 cgr_val;
+ u8 flags;
+};
+
+#define to_clk_gate2(_clk) container_of(_clk, struct clk_gate2, clk)
+
struct clk *clk_register_composite(struct device *dev, const char *name,
const char * const *parent_names, int num_parents,
struct clk *mux_clk, const struct clk_ops *mux_ops,
@@ -184,6 +190,16 @@ struct clk *clk_register_mux(struct device *dev, const char *name,
void __iomem *reg, u8 shift, u8 width,
u8 clk_mux_flags);
+struct clk *clk_register_gate(struct device *dev, const char *name,
+ const char *parent_name, unsigned long flags,
+ void __iomem *reg, u8 bit_idx,
+ u8 clk_gate_flags, spinlock_t *lock);
+
+struct clk *clk_register_gate2(struct device *dev, const char *name,
+ const char *parent_name, unsigned long flags,
+ void __iomem *reg, u8 bit_idx, u8 cgr_val,
+ u8 clk_gate_flags);
+
const char *clk_hw_get_name(const struct clk *hw);
ulong clk_generic_get_rate(struct clk *clk);
--
2.24.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 1/2] clk: Move clk-gate2 to clock driver directory
2019-12-25 5:16 [PATCH 1/2] clk: Move clk-gate2 to clock driver directory Sean Anderson
@ 2020-01-26 20:55 ` Lukasz Majewski
2020-01-27 1:16 ` Sean Anderson
0 siblings, 1 reply; 4+ messages in thread
From: Lukasz Majewski @ 2020-01-26 20:55 UTC (permalink / raw)
To: u-boot
Hi Sean
> Make clk-gate2 available for use outside of imx.
>
> Signed-off-by: Sean Anderson <seanga2@gmail.com>
> ---
> drivers/clk/Makefile | 1 +
> drivers/clk/{imx => }/clk-gate2.c | 20 ++++----------------
> drivers/clk/imx/Makefile | 2 +-
> drivers/clk/imx/clk.h | 5 -----
> include/linux/clk-provider.h | 24 ++++++++++++++++++++----
> 5 files changed, 26 insertions(+), 26 deletions(-)
> rename drivers/clk/{imx => }/clk-gate2.c (85%)
>
This patch is OK.
Unfortunately, it causes buildman errors for sandbox:
https://travis-ci.org/lmajewski/u-boot-dfu/jobs/641984485
The problem is with local sandbox copy of struct clk_gate2
In the clk_sandbox_ccf.c file we can re-use the 'flags' member (instead
of defined for sandbox 'state') of now widely exposed struct clk_gate2
(@ clk-provider.h) and
#define SANDBOX_CCF_ENABLE (1UL << 31)
#define SANDBOX_CCF_DISABLE (0UL << 31)
and remove the local sandbox copy.
How to reproduce:
make mrproper; make sandbox_defconfig; make -j4
./u-boot -i -d arch/sandbox/dts/test.dtb
=> ut dm clk
(I'm going to drop this patch from PR which I'm preparing now and
depending on it "clk: Add option to restrict clk-gate2 to one bit
toggle").
> diff --git a/drivers/clk/Makefile b/drivers/clk/Makefile
> index 06131edb9f..fef3280f16 100644
> --- a/drivers/clk/Makefile
> +++ b/drivers/clk/Makefile
> @@ -9,6 +9,7 @@ obj-$(CONFIG_$(SPL_TPL_)CLK) += clk_fixed_rate.o
> obj-$(CONFIG_$(SPL_TPL_)CLK) += clk_fixed_factor.o
> obj-$(CONFIG_$(SPL_TPL_)CLK_CCF) += clk.o clk-divider.o clk-mux.o
> clk-gate.o obj-$(CONFIG_$(SPL_TPL_)CLK_CCF) += clk-fixed-factor.o
> +obj-$(CONFIG_$(SPL_TPL_)CLK_CCF) += clk-gate2.o
> obj-$(CONFIG_$(SPL_TPL_)CLK_COMPOSITE_CCF) += clk-composite.o
>
> obj-y += analogbits/
> diff --git a/drivers/clk/imx/clk-gate2.c b/drivers/clk/clk-gate2.c
> similarity index 85%
> rename from drivers/clk/imx/clk-gate2.c
> rename to drivers/clk/clk-gate2.c
> index 1b9db6e791..cfe21e5496 100644
> --- a/drivers/clk/imx/clk-gate2.c
> +++ b/drivers/clk/clk-gate2.c
> @@ -10,8 +10,7 @@
> * it under the terms of the GNU General Public License version 2 as
> * published by the Free Software Foundation.
> *
> - * Gated clock implementation
> - *
> + * Gated clock which redirects rate functions to its parent clock
> */
>
> #include <common.h>
> @@ -21,19 +20,8 @@
> #include <dm/device.h>
> #include <linux/clk-provider.h>
> #include <clk.h>
> -#include "clk.h"
> -
> -#define UBOOT_DM_CLK_IMX_GATE2 "imx_clk_gate2"
> -
> -struct clk_gate2 {
> - struct clk clk;
> - void __iomem *reg;
> - u8 bit_idx;
> - u8 cgr_val;
> - u8 flags;
> -};
>
> -#define to_clk_gate2(_clk) container_of(_clk, struct clk_gate2, clk)
> +#define UBOOT_DM_CLK_GATE2 "clk_gate2"
>
> static int clk_gate2_enable(struct clk *clk)
> {
> @@ -97,7 +85,7 @@ struct clk *clk_register_gate2(struct device *dev,
> const char *name,
>
> clk = &gate->clk;
>
> - ret = clk_register(clk, UBOOT_DM_CLK_IMX_GATE2, name,
> parent_name);
> + ret = clk_register(clk, UBOOT_DM_CLK_GATE2, name,
> parent_name); if (ret) {
> kfree(gate);
> return ERR_PTR(ret);
> @@ -107,7 +95,7 @@ struct clk *clk_register_gate2(struct device *dev,
> const char *name, }
>
> U_BOOT_DRIVER(clk_gate2) = {
> - .name = UBOOT_DM_CLK_IMX_GATE2,
> + .name = UBOOT_DM_CLK_GATE2,
> .id = UCLASS_CLK,
> .ops = &clk_gate2_ops,
> .flags = DM_FLAG_PRE_RELOC,
> diff --git a/drivers/clk/imx/Makefile b/drivers/clk/imx/Makefile
> index 222c5a4e08..5328e9265a 100644
> --- a/drivers/clk/imx/Makefile
> +++ b/drivers/clk/imx/Makefile
> @@ -2,7 +2,7 @@
> #
> # SPDX-License-Identifier: GPL-2.0
>
> -obj-$(CONFIG_$(SPL_TPL_)CLK_CCF) += clk-gate2.o clk-pllv3.o clk-pfd.o
> +obj-$(CONFIG_$(SPL_TPL_)CLK_CCF) += clk-pllv3.o clk-pfd.o
> obj-$(CONFIG_$(SPL_TPL_)CLK_IMX6Q) += clk-imx6q.o
> obj-$(CONFIG_CLK_IMX8) += clk-imx8.o
>
> diff --git a/drivers/clk/imx/clk.h b/drivers/clk/imx/clk.h
> index 07dcf94ea5..c46570e9f4 100644
> --- a/drivers/clk/imx/clk.h
> +++ b/drivers/clk/imx/clk.h
> @@ -45,11 +45,6 @@ struct clk *imx_clk_pll14xx(const char *name,
> const char *parent_name, void __iomem *base,
> const struct imx_pll14xx_clk *pll_clk);
>
> -struct clk *clk_register_gate2(struct device *dev, const char *name,
> - const char *parent_name, unsigned long flags,
> - void __iomem *reg, u8 bit_idx, u8 cgr_val,
> - u8 clk_gate_flags);
> -
> struct clk *imx_clk_pllv3(enum imx_pllv3_type type, const char *name,
> const char *parent_name, void __iomem
> *base, u32 div_mask);
> diff --git a/include/linux/clk-provider.h
> b/include/linux/clk-provider.h index 0ef6e685ad..f510291018 100644
> --- a/include/linux/clk-provider.h
> +++ b/include/linux/clk-provider.h
> @@ -90,10 +90,6 @@ struct clk_gate {
> #define CLK_GATE_HIWORD_MASK BIT(1)
>
> extern const struct clk_ops clk_gate_ops;
> -struct clk *clk_register_gate(struct device *dev, const char *name,
> - const char *parent_name, unsigned long
> flags,
> - void __iomem *reg, u8 bit_idx,
> - u8 clk_gate_flags, spinlock_t *lock);
>
> struct clk_div_table {
> unsigned int val;
> @@ -159,6 +155,16 @@ struct clk_composite {
>
> #define to_clk_composite(_clk) container_of(_clk, struct
> clk_composite, clk)
>
> +struct clk_gate2 {
> + struct clk clk;
> + void __iomem *reg;
> + u8 bit_idx;
> + u8 cgr_val;
> + u8 flags;
> +};
> +
> +#define to_clk_gate2(_clk) container_of(_clk, struct clk_gate2, clk)
> +
> struct clk *clk_register_composite(struct device *dev, const char
> *name, const char * const *parent_names, int num_parents,
> struct clk *mux_clk, const struct clk_ops *mux_ops,
> @@ -184,6 +190,16 @@ struct clk *clk_register_mux(struct device *dev,
> const char *name, void __iomem *reg, u8 shift, u8 width,
> u8 clk_mux_flags);
>
> +struct clk *clk_register_gate(struct device *dev, const char *name,
> + const char *parent_name, unsigned long
> flags,
> + void __iomem *reg, u8 bit_idx,
> + u8 clk_gate_flags, spinlock_t *lock);
> +
> +struct clk *clk_register_gate2(struct device *dev, const char *name,
> + const char *parent_name, unsigned
> long flags,
> + void __iomem *reg, u8 bit_idx, u8
> cgr_val,
> + u8 clk_gate_flags);
> +
> const char *clk_hw_get_name(const struct clk *hw);
> ulong clk_generic_get_rate(struct clk *clk);
>
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200126/e33a295f/attachment.sig>
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/2] clk: Move clk-gate2 to clock driver directory
2020-01-26 20:55 ` Lukasz Majewski
@ 2020-01-27 1:16 ` Sean Anderson
2020-01-27 7:55 ` Lukasz Majewski
0 siblings, 1 reply; 4+ messages in thread
From: Sean Anderson @ 2020-01-27 1:16 UTC (permalink / raw)
To: u-boot
On 1/26/20 3:55 PM, Lukasz Majewski wrote:
> Hi Sean
>
>> Make clk-gate2 available for use outside of imx.
>>
>> Signed-off-by: Sean Anderson <seanga2@gmail.com>
>> ---
>> drivers/clk/Makefile | 1 +
>> drivers/clk/{imx => }/clk-gate2.c | 20 ++++----------------
>> drivers/clk/imx/Makefile | 2 +-
>> drivers/clk/imx/clk.h | 5 -----
>> include/linux/clk-provider.h | 24 ++++++++++++++++++++----
>> 5 files changed, 26 insertions(+), 26 deletions(-)
>> rename drivers/clk/{imx => }/clk-gate2.c (85%)
>>
>
> This patch is OK.
>
> Unfortunately, it causes buildman errors for sandbox:
> https://travis-ci.org/lmajewski/u-boot-dfu/jobs/641984485
>
> The problem is with local sandbox copy of struct clk_gate2
>
> In the clk_sandbox_ccf.c file we can re-use the 'flags' member (instead
> of defined for sandbox 'state') of now widely exposed struct clk_gate2
> (@ clk-provider.h) and
>
> #define SANDBOX_CCF_ENABLE (1UL << 31)
> #define SANDBOX_CCF_DISABLE (0UL << 31)
>
> and remove the local sandbox copy.
>
>
> How to reproduce:
>
> make mrproper; make sandbox_defconfig; make -j4
> ./u-boot -i -d arch/sandbox/dts/test.dtb
> => ut dm clk
>
>
> (I'm going to drop this patch from PR which I'm preparing now and
> depending on it "clk: Add option to restrict clk-gate2 to one bit
> toggle").
That's fine. This may be a bit of duplicate effort wrt the patches I
submitted regarding clk_composite. I originally used clk_gate2 in my
k210 patch series, but I switched over to using clk_composite because it
could function in the same manner.
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/2] clk: Move clk-gate2 to clock driver directory
2020-01-27 1:16 ` Sean Anderson
@ 2020-01-27 7:55 ` Lukasz Majewski
0 siblings, 0 replies; 4+ messages in thread
From: Lukasz Majewski @ 2020-01-27 7:55 UTC (permalink / raw)
To: u-boot
Hi Sean,
> On 1/26/20 3:55 PM, Lukasz Majewski wrote:
> > Hi Sean
> >
> >> Make clk-gate2 available for use outside of imx.
> >>
> >> Signed-off-by: Sean Anderson <seanga2@gmail.com>
> >> ---
> >> drivers/clk/Makefile | 1 +
> >> drivers/clk/{imx => }/clk-gate2.c | 20 ++++----------------
> >> drivers/clk/imx/Makefile | 2 +-
> >> drivers/clk/imx/clk.h | 5 -----
> >> include/linux/clk-provider.h | 24 ++++++++++++++++++++----
> >> 5 files changed, 26 insertions(+), 26 deletions(-)
> >> rename drivers/clk/{imx => }/clk-gate2.c (85%)
> >>
> >
> > This patch is OK.
> >
> > Unfortunately, it causes buildman errors for sandbox:
> > https://travis-ci.org/lmajewski/u-boot-dfu/jobs/641984485
> >
> > The problem is with local sandbox copy of struct clk_gate2
> >
> > In the clk_sandbox_ccf.c file we can re-use the 'flags' member
> > (instead of defined for sandbox 'state') of now widely exposed
> > struct clk_gate2 (@ clk-provider.h) and
> >
> > #define SANDBOX_CCF_ENABLE (1UL << 31)
> > #define SANDBOX_CCF_DISABLE (0UL << 31)
> >
> > and remove the local sandbox copy.
> >
> >
> > How to reproduce:
> >
> > make mrproper; make sandbox_defconfig; make -j4
> > ./u-boot -i -d arch/sandbox/dts/test.dtb
> > => ut dm clk
> >
> >
> > (I'm going to drop this patch from PR which I'm preparing now and
> > depending on it "clk: Add option to restrict clk-gate2 to one bit
> > toggle").
>
> That's fine. This may be a bit of duplicate effort wrt the patches I
> submitted regarding clk_composite. I originally used clk_gate2 in my
> k210 patch series, but I switched over to using clk_composite because
> it could function in the same manner.
>
Thanks for the update.
Best regards,
Lukasz Majewski
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma at denx.de
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200127/56f383fa/attachment.sig>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-01-27 7:55 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-25 5:16 [PATCH 1/2] clk: Move clk-gate2 to clock driver directory Sean Anderson
2020-01-26 20:55 ` Lukasz Majewski
2020-01-27 1:16 ` Sean Anderson
2020-01-27 7:55 ` Lukasz Majewski
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.