Skip to contentSkip to conversation

move the ICST library to common clocks

PATCH New Linus Walleij 2 participants 5 messages Mar 18, 2017 – Apr 5, 2017

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

cover move the ICST library to common clocks

This consolidates the last piece of the Versatile clocks, the ICST clock divider, into drivers/clk/*

If the series is OK I suggest we take this through ARM SoC since the first patch needs to be applied there, alternatively they can both go into the clk tree.

Linus Walleij (2):
ARM: plat-versatile: remove stale clock header
ARM/clk: move the ICST library to drivers/clk

 arch/arm/common/Kconfig                                   |  3 ---
 arch/arm/common/Makefile                                  |  1 -
 arch/arm/plat-versatile/include/plat/clock.h              | 15 ---------------
 drivers/clk/versatile/Kconfig                             |  3 +++
 drivers/clk/versatile/Makefile                            |  2 +-
 drivers/clk/versatile/clk-icst.c                          |  1 +
 drivers/clk/versatile/clk-icst.h                          |  2 --
 drivers/clk/versatile/clk-impd1.c                         |  1 +
 drivers/clk/versatile/clk-realview.c                      |  1 +
 drivers/clk/versatile/clk-versatile.c                     |  1 +
 {arch/arm/common => drivers/clk/versatile}/icst.c         |  2 +-
 .../include/asm/hardware => drivers/clk/versatile}/icst.h |  6 ++----
 12 files changed, 11 insertions(+), 27 deletions(-)
 delete mode 100644 arch/arm/plat-versatile/include/plat/clock.h
 rename {arch/arm/common => drivers/clk/versatile}/icst.c (98%)
 rename {arch/arm/include/asm/hardware => drivers/clk/versatile}/icst.h (94%)
Signature · 1 line
2.9.3
#1 lore raw

PATCH 1/2 ARM: plat-versatile: remove stale clock header

All the Versatile platforms (Integrator, Versatile, RealView Versatile Express) have been migrated to use the drivers/clk subsystem. Clean out this header that is not referenced anywhere anymore.

---
 arch/arm/plat-versatile/include/plat/clock.h | 15 ---------------
 1 file changed, 15 deletions(-)
 delete mode 100644 arch/arm/plat-versatile/include/plat/clock.h
arch/arm/plat-versatile/include/plat/clock.h deleted +0 -15
deleted file mode 100644
index 3cfb024ccd70..000000000000
@@ -1,15 +0,0 @@
-#ifndef PLAT_CLOCK_H
-#define PLAT_CLOCK_H
-
-#include <asm/hardware/icst.h>
-
-struct clk_ops {
-	long	(*round)(struct clk *, unsigned long);
-	int	(*set)(struct clk *, unsigned long);
-	void	(*setvco)(struct clk *, struct icst_vco);
-};
-
-int icst_clk_set(struct clk *, unsigned long);
-long icst_clk_round(struct clk *, unsigned long);
-
-#endif
Signature · 1 line
2.9.3
#2 lore raw

PATCH 2/2 ARM/clk: move the ICST library to drivers/clk

In reply to Linus Walleij

This moves the ICST clock divider helper library from arch/arm/common to drivers/clk/versatile so it is maintained with the other clock drivers.

We keep the structure as a helper library intact and do not fuse it with the clk-icst.c Versatile ICST clock driver: there may be other users out there that need to use this library for their clocking, and then it will be helpful to keep the library contained. (The icst.[c|h] files could just be moved to drivers/clk/lib or a similar location to share the library.)

---
 arch/arm/common/Kconfig                                         | 3 ---
 arch/arm/common/Makefile                                        | 1 -
 drivers/clk/versatile/Kconfig                                   | 3 +++
 drivers/clk/versatile/Makefile                                  | 2 +-
 drivers/clk/versatile/clk-icst.c                                | 1 +
 drivers/clk/versatile/clk-icst.h                                | 2 --
 drivers/clk/versatile/clk-impd1.c                               | 1 +
 drivers/clk/versatile/clk-realview.c                            | 1 +
 drivers/clk/versatile/clk-versatile.c                           | 1 +
 {arch/arm/common => drivers/clk/versatile}/icst.c               | 2 +-
 {arch/arm/include/asm/hardware => drivers/clk/versatile}/icst.h | 6 ++----
 11 files changed, 11 insertions(+), 12 deletions(-)
 rename {arch/arm/common => drivers/clk/versatile}/icst.c (98%)
 rename {arch/arm/include/asm/hardware => drivers/clk/versatile}/icst.h (94%)
arch/arm/common/Kconfig +0 -3
index 9353184d730d..1181053e3ade 100644
@@ -1,6 +1,3 @@
-config ICST
-	bool
-
 config SA1111
 	bool
 	select DMABOUNCE if !ARCH_PXA
arch/arm/common/Makefile +0 -1
index 27f23b15b1ea..29fdf6a3601d 100644
@@ -4,7 +4,6 @@
 
 obj-y				+= firmware.o
 
-obj-$(CONFIG_ICST)		+= icst.o
 obj-$(CONFIG_SA1111)		+= sa1111.o
 obj-$(CONFIG_DMABOUNCE)		+= dmabounce.o
 obj-$(CONFIG_SHARP_LOCOMO)	+= locomo.o
drivers/clk/versatile/Kconfig +3 -0
index a6da2aa09f83..8aa875f25239 100644
@@ -1,3 +1,6 @@
+config ICST
+	bool
+
 config COMMON_CLK_VERSATILE
 	bool "Clock driver for ARM Reference designs"
 	depends on ARCH_INTEGRATOR || ARCH_REALVIEW || \
drivers/clk/versatile/Makefile +1 -1
index 8ff03744fe98..794130402c8d 100644
@@ -1,5 +1,5 @@
 # Makefile for Versatile-specific clocks
-obj-$(CONFIG_ICST)		+= clk-icst.o clk-versatile.o
+obj-$(CONFIG_ICST)		+= icst.o clk-icst.o clk-versatile.o
 obj-$(CONFIG_INTEGRATOR_IMPD1)	+= clk-impd1.o
 obj-$(CONFIG_ARCH_REALVIEW)	+= clk-realview.o
 obj-$(CONFIG_CLK_SP810)		+= clk-sp810.o
drivers/clk/versatile/clk-icst.c +1 -0
index 4faa94440779..09fbe66f1f11 100644
@@ -22,6 +22,7 @@
 #include <linux/regmap.h>
 #include <linux/mfd/syscon.h>
 
+#include "icst.h"
 #include "clk-icst.h"
 
 /* Magic unlocking token used on all Versatile boards */
drivers/clk/versatile/clk-icst.h +0 -2
index 04e6f0aef588..5add02ebec5d 100644
@@ -1,5 +1,3 @@
-#include <asm/hardware/icst.h>
-
 /**
  * struct clk_icst_desc - descriptor for the ICST VCO
  * @params: ICST parameters
drivers/clk/versatile/clk-impd1.c +1 -0
index 74c3216dbb00..401558bfc409 100644
@@ -12,6 +12,7 @@
 #include <linux/io.h>
 #include <linux/platform_data/clk-integrator.h>
 
+#include "icst.h"
 #include "clk-icst.h"
 
 #define IMPD1_OSC1	0x00
drivers/clk/versatile/clk-realview.c +1 -0
index c56efc70ac16..6fdfee3232f4 100644
@@ -11,6 +11,7 @@
 #include <linux/io.h>
 #include <linux/clk-provider.h>
 
+#include "icst.h"
 #include "clk-icst.h"
 
 #define REALVIEW_SYS_OSC0_OFFSET             0x0C
drivers/clk/versatile/clk-versatile.c +1 -0
index a89a927567e0..d6960de64d4a 100644
@@ -12,6 +12,7 @@
 #include <linux/of.h>
 #include <linux/of_address.h>
 
+#include "icst.h"
 #include "clk-icst.h"
 
 #define INTEGRATOR_HDR_LOCK_OFFSET	0x14
drivers/clk/versatile/icst.c renamed from arch/arm/common/icst.c +1 -1
similarity index 98%
rename from arch/arm/common/icst.c
rename to drivers/clk/versatile/icst.c
index d7ed252708c5..de2af63a3aad 100644
@@ -17,7 +17,7 @@
 #include <linux/module.h>
 #include <linux/kernel.h>
 #include <asm/div64.h>
-#include <asm/hardware/icst.h>
+#include "icst.h"
 
 /*
  * Divisors for each OD setting.
drivers/clk/versatile/icst.h renamed from arch/arm/include/asm/hardware/icst.h +2 -4
similarity index 94%
rename from arch/arm/include/asm/hardware/icst.h
rename to drivers/clk/versatile/icst.h
index 794220b087d2..7519bba03b04 100644
@@ -1,6 +1,4 @@
 /*
- *  arch/arm/include/asm/hardware/icst.h
- *
  *  Copyright (C) 2003 Deep Blue Solutions, Ltd, All Rights Reserved.
  *
  * This program is free software; you can redistribute it and/or modify
@@ -11,8 +9,8 @@
  *  clock generators.  See http://www.idt.com/ for more information
  *  on these devices.
  */
-#ifndef ASMARM_HARDWARE_ICST_H
-#define ASMARM_HARDWARE_ICST_H
+#ifndef ICST_H
+#define ICST_H
 
 struct icst_params {
 	unsigned long	ref;
Signature · 1 line
2.9.3
#3 lore raw

PATCH 2/2 ARM/clk: move the ICST library to drivers/clk

Quoted 4 lines · Linus Walleij

This moves the ICST clock divider helper library from arch/arm/common to drivers/clk/versatile so it is maintained with the other clock drivers.

Quoted 8 lines

We keep the structure as a helper library intact and do not fuse it with the clk-icst.c Versatile ICST clock driver: there may be other users out there that need to use this library for their clocking, and then it will be helpful to keep the library contained. (The icst.[c|h] files could just be moved to drivers/clk/lib or a similar location to share the library.)

CLK maintainers: could you ACK this so that I can ask the ARM SoC tree to pull in these two patches?

Or do you prefer to take all patches in the CLK tree so I should ask the ARM people to ACK it?

Yours,
Linus Walleij

#4 lore raw

PATCH 2/2 ARM/clk: move the ICST library to drivers/clk

Quoted 13 lines · Linus Walleij
Quoted 11 lines · Linus Walleij

This moves the ICST clock divider helper library from arch/arm/common to drivers/clk/versatile so it is maintained with the other clock drivers.

We keep the structure as a helper library intact and do not fuse it with the clk-icst.c Versatile ICST clock driver: there may be other users out there that need to use this library for their clocking, and then it will be helpful to keep the library contained. (The icst.[c|h] files could just be moved to drivers/clk/lib or a similar location to share the library.)

Quoted 8 lines
Quoted 1 line

CLK maintainers: could you ACK this so that I can ask the ARM SoC tree to pull in these two patches?

Or do you prefer to take all patches in the CLK tree so I should ask the ARM people to ACK it?

Either way is fine.

Signature · 2 lines
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project