clk: sunxi: Move header out of arch directory
authorSamuel Holland <samuel@sholland.org>
Sun, 12 Sep 2021 16:48:43 +0000 (11:48 -0500)
committerAndre Przywara <andre.przywara@arm.com>
Mon, 11 Oct 2021 09:46:44 +0000 (10:46 +0100)
The CCU header is only used by the DM drivers, not any platform code.
Its current location adds an artificial dependency on CONFIG_ARM and
ARCH_SUNXI, which will be problematic when adding the CCU driver for
a RISC-V sunxi platform.

Signed-off-by: Samuel Holland <samuel@sholland.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
16 files changed:
arch/arm/include/asm/arch-sunxi/ccu.h [deleted file]
drivers/clk/sunxi/clk_a10.c
drivers/clk/sunxi/clk_a10s.c
drivers/clk/sunxi/clk_a23.c
drivers/clk/sunxi/clk_a31.c
drivers/clk/sunxi/clk_a64.c
drivers/clk/sunxi/clk_a80.c
drivers/clk/sunxi/clk_a83t.c
drivers/clk/sunxi/clk_h3.c
drivers/clk/sunxi/clk_h6.c
drivers/clk/sunxi/clk_h616.c
drivers/clk/sunxi/clk_r40.c
drivers/clk/sunxi/clk_sunxi.c
drivers/clk/sunxi/clk_v3s.c
drivers/reset/reset-sunxi.c
include/clk/sunxi.h [new file with mode: 0644]

diff --git a/arch/arm/include/asm/arch-sunxi/ccu.h b/arch/arm/include/asm/arch-sunxi/ccu.h
deleted file mode 100644 (file)
index cac5c5f..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0+
-/*
- * Copyright (C) 2018 Amarula Solutions.
- * Author: Jagan Teki <jagan@amarulasolutions.com>
- */
-
-#ifndef _ASM_ARCH_CCU_H
-#define _ASM_ARCH_CCU_H
-
-#ifndef __ASSEMBLY__
-#include <linux/bitops.h>
-#endif
-
-/**
- * enum ccu_flags - ccu clock/reset flags
- *
- * @CCU_CLK_F_IS_VALID:                is given clock gate is valid?
- * @CCU_RST_F_IS_VALID:                is given reset control is valid?
- */
-enum ccu_flags {
-       CCU_CLK_F_IS_VALID              = BIT(0),
-       CCU_RST_F_IS_VALID              = BIT(1),
-};
-
-/**
- * struct ccu_clk_gate - ccu clock gate
- * @off:       gate offset
- * @bit:       gate bit
- * @flags:     ccu clock gate flags
- */
-struct ccu_clk_gate {
-       u16 off;
-       u32 bit;
-       enum ccu_flags flags;
-};
-
-#define GATE(_off, _bit) {                     \
-       .off = _off,                            \
-       .bit = _bit,                            \
-       .flags = CCU_CLK_F_IS_VALID,            \
-}
-
-/**
- * struct ccu_reset - ccu reset
- * @off:       reset offset
- * @bit:       reset bit
- * @flags:     ccu reset control flags
- */
-struct ccu_reset {
-       u16 off;
-       u32 bit;
-       enum ccu_flags flags;
-};
-
-#define RESET(_off, _bit) {                    \
-       .off = _off,                            \
-       .bit = _bit,                            \
-       .flags = CCU_RST_F_IS_VALID,            \
-}
-
-/**
- * struct ccu_desc - clock control unit descriptor
- *
- * @gates:     clock gates
- * @resets:    reset unit
- */
-struct ccu_desc {
-       const struct ccu_clk_gate *gates;
-       const struct ccu_reset *resets;
-};
-
-/**
- * struct ccu_priv - sunxi clock control unit
- *
- * @base:      base address
- * @desc:      ccu descriptor
- */
-struct ccu_priv {
-       void *base;
-       const struct ccu_desc *desc;
-};
-
-/**
- * sunxi_clk_probe - common sunxi clock probe
- * @dev:       clock device
- */
-int sunxi_clk_probe(struct udevice *dev);
-
-extern struct clk_ops sunxi_clk_ops;
-
-/**
- * sunxi_reset_bind() - reset binding
- *
- * @dev:       reset device
- * @count:     reset count
- * @return 0 success, or error value
- */
-int sunxi_reset_bind(struct udevice *dev, ulong count);
-
-#endif /* _ASM_ARCH_CCU_H */
index 1b5de86e2047b4d6307440cb8a592049346c98a2..1342a6cda61ffcf99e7c97a13fb2ed3ea2f4b0b2 100644 (file)
@@ -8,7 +8,7 @@
 #include <clk-uclass.h>
 #include <dm.h>
 #include <errno.h>
-#include <asm/arch/ccu.h>
+#include <clk/sunxi.h>
 #include <dt-bindings/clock/sun4i-a10-ccu.h>
 #include <dt-bindings/reset/sun4i-a10-ccu.h>
 #include <linux/bitops.h>
index 184f61ab234ccbb02405f5ac30a860417b616c57..d30846a9b3ecfa1720b3f2105107d2cf0d8bff60 100644 (file)
@@ -8,7 +8,7 @@
 #include <clk-uclass.h>
 #include <dm.h>
 #include <errno.h>
-#include <asm/arch/ccu.h>
+#include <clk/sunxi.h>
 #include <dt-bindings/clock/sun5i-ccu.h>
 #include <dt-bindings/reset/sun5i-ccu.h>
 #include <linux/bitops.h>
index 5750514a74fcfe9479c9931a08a28a6a21f2c524..52de1cb8d4b3404932748e1771ffbf3993c8bd23 100644 (file)
@@ -8,7 +8,7 @@
 #include <clk-uclass.h>
 #include <dm.h>
 #include <errno.h>
-#include <asm/arch/ccu.h>
+#include <clk/sunxi.h>
 #include <dt-bindings/clock/sun8i-a23-a33-ccu.h>
 #include <dt-bindings/reset/sun8i-a23-a33-ccu.h>
 #include <linux/bitops.h>
index 9226112f4afdb5281df4340172e158774daecaa8..28ff82108e7d54ee0a5f8323ac77820ec5ccdbde 100644 (file)
@@ -8,7 +8,7 @@
 #include <clk-uclass.h>
 #include <dm.h>
 #include <errno.h>
-#include <asm/arch/ccu.h>
+#include <clk/sunxi.h>
 #include <dt-bindings/clock/sun6i-a31-ccu.h>
 #include <dt-bindings/reset/sun6i-a31-ccu.h>
 #include <linux/bitops.h>
index 0553ffa4399affe3fc980ce431ffe6f6658a3788..a46cb27bd1b68f6e488e9b2c13cc7a022229dcd7 100644 (file)
@@ -8,7 +8,7 @@
 #include <clk-uclass.h>
 #include <dm.h>
 #include <errno.h>
-#include <asm/arch/ccu.h>
+#include <clk/sunxi.h>
 #include <dt-bindings/clock/sun50i-a64-ccu.h>
 #include <dt-bindings/reset/sun50i-a64-ccu.h>
 #include <linux/bitops.h>
index 68973d528ed320dc702adc73bbe872105cd752a1..bda7835c048bb30a1f0d211f9b447ef57e969605 100644 (file)
@@ -8,7 +8,7 @@
 #include <clk-uclass.h>
 #include <dm.h>
 #include <errno.h>
-#include <asm/arch/ccu.h>
+#include <clk/sunxi.h>
 #include <dt-bindings/clock/sun9i-a80-ccu.h>
 #include <dt-bindings/reset/sun9i-a80-ccu.h>
 #include <linux/bitops.h>
index 880c7d7599720afb2566eae25a944437c8726993..5c3cc5bbf71dcf58a3d08048724174aefea6b8aa 100644 (file)
@@ -8,7 +8,7 @@
 #include <clk-uclass.h>
 #include <dm.h>
 #include <errno.h>
-#include <asm/arch/ccu.h>
+#include <clk/sunxi.h>
 #include <dt-bindings/clock/sun8i-a83t-ccu.h>
 #include <dt-bindings/reset/sun8i-a83t-ccu.h>
 #include <linux/bitops.h>
index f81633b92d5a3426bb52733f0a85b9ddbdc67b21..3adc6a983735b3220c0ec20139192aaaf86b8606 100644 (file)
@@ -8,7 +8,7 @@
 #include <clk-uclass.h>
 #include <dm.h>
 #include <errno.h>
-#include <asm/arch/ccu.h>
+#include <clk/sunxi.h>
 #include <dt-bindings/clock/sun8i-h3-ccu.h>
 #include <dt-bindings/reset/sun8i-h3-ccu.h>
 #include <linux/bitops.h>
index df93d96b3b0fc8d7afe27b313e11bd4915bdd743..86496ed1bb00eac2a86a4a0c5f080cef11f142bb 100644 (file)
@@ -8,7 +8,7 @@
 #include <clk-uclass.h>
 #include <dm.h>
 #include <errno.h>
-#include <asm/arch/ccu.h>
+#include <clk/sunxi.h>
 #include <dt-bindings/clock/sun50i-h6-ccu.h>
 #include <dt-bindings/reset/sun50i-h6-ccu.h>
 #include <linux/bitops.h>
index 553d7c6e550a07cb307f441677fab134cb4b3639..c39ba06fb850061093f63fa1616c140fc92713bd 100644 (file)
@@ -7,7 +7,7 @@
 #include <clk-uclass.h>
 #include <dm.h>
 #include <errno.h>
-#include <asm/arch/ccu.h>
+#include <clk/sunxi.h>
 #include <dt-bindings/clock/sun50i-h616-ccu.h>
 #include <dt-bindings/reset/sun50i-h616-ccu.h>
 #include <linux/bitops.h>
index ee1e86d22eb992a02a7f5ad2ef4286ac49ed13f2..a261296805e7e261201f841b86dd9dcfc8d32136 100644 (file)
@@ -8,7 +8,7 @@
 #include <clk-uclass.h>
 #include <dm.h>
 #include <errno.h>
-#include <asm/arch/ccu.h>
+#include <clk/sunxi.h>
 #include <dt-bindings/clock/sun8i-r40-ccu.h>
 #include <dt-bindings/reset/sun8i-r40-ccu.h>
 #include <linux/bitops.h>
index 41934cd826e3d38ccc02bb531d0ab29c1d42acca..9673b58a49293bffa9fe7e237ff80122b267581f 100644 (file)
@@ -11,7 +11,7 @@
 #include <log.h>
 #include <reset.h>
 #include <asm/io.h>
-#include <asm/arch/ccu.h>
+#include <clk/sunxi.h>
 #include <linux/bitops.h>
 #include <linux/log2.h>
 
index 29622199fdc03dc18b2bc24afe9abf15ec6fe98a..34ccda7e722febf4171de20ca819f551e9fd37f7 100644 (file)
@@ -8,7 +8,7 @@
 #include <clk-uclass.h>
 #include <dm.h>
 #include <errno.h>
-#include <asm/arch/ccu.h>
+#include <clk/sunxi.h>
 #include <dt-bindings/clock/sun8i-v3s-ccu.h>
 #include <dt-bindings/reset/sun8i-v3s-ccu.h>
 #include <linux/bitops.h>
index 264337ed803df32a0d490b95511471ae32563558..8b95938dfe35358cee3c0ba7ee5a5538909265ba 100644 (file)
 #include <malloc.h>
 #include <reset-uclass.h>
 #include <asm/io.h>
+#include <clk/sunxi.h>
 #include <dm/device-internal.h>
 #include <dm/lists.h>
 #include <linux/bitops.h>
 #include <linux/log2.h>
-#include <asm/arch/ccu.h>
 
 struct sunxi_reset_priv {
        void *base;
diff --git a/include/clk/sunxi.h b/include/clk/sunxi.h
new file mode 100644 (file)
index 0000000..d4ad5fd
--- /dev/null
@@ -0,0 +1,98 @@
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * Copyright (C) 2018 Amarula Solutions.
+ * Author: Jagan Teki <jagan@amarulasolutions.com>
+ */
+
+#ifndef _CLK_SUNXI_H
+#define _CLK_SUNXI_H
+
+#include <linux/bitops.h>
+
+/**
+ * enum ccu_flags - ccu clock/reset flags
+ *
+ * @CCU_CLK_F_IS_VALID:                is given clock gate is valid?
+ * @CCU_RST_F_IS_VALID:                is given reset control is valid?
+ */
+enum ccu_flags {
+       CCU_CLK_F_IS_VALID              = BIT(0),
+       CCU_RST_F_IS_VALID              = BIT(1),
+};
+
+/**
+ * struct ccu_clk_gate - ccu clock gate
+ * @off:       gate offset
+ * @bit:       gate bit
+ * @flags:     ccu clock gate flags
+ */
+struct ccu_clk_gate {
+       u16 off;
+       u32 bit;
+       enum ccu_flags flags;
+};
+
+#define GATE(_off, _bit) {                     \
+       .off = _off,                            \
+       .bit = _bit,                            \
+       .flags = CCU_CLK_F_IS_VALID,            \
+}
+
+/**
+ * struct ccu_reset - ccu reset
+ * @off:       reset offset
+ * @bit:       reset bit
+ * @flags:     ccu reset control flags
+ */
+struct ccu_reset {
+       u16 off;
+       u32 bit;
+       enum ccu_flags flags;
+};
+
+#define RESET(_off, _bit) {                    \
+       .off = _off,                            \
+       .bit = _bit,                            \
+       .flags = CCU_RST_F_IS_VALID,            \
+}
+
+/**
+ * struct ccu_desc - clock control unit descriptor
+ *
+ * @gates:     clock gates
+ * @resets:    reset unit
+ */
+struct ccu_desc {
+       const struct ccu_clk_gate *gates;
+       const struct ccu_reset *resets;
+};
+
+/**
+ * struct ccu_priv - sunxi clock control unit
+ *
+ * @base:      base address
+ * @desc:      ccu descriptor
+ */
+struct ccu_priv {
+       void *base;
+       const struct ccu_desc *desc;
+};
+
+/**
+ * sunxi_clk_probe - common sunxi clock probe
+ * @dev:       clock device
+ */
+int sunxi_clk_probe(struct udevice *dev);
+
+extern struct clk_ops sunxi_clk_ops;
+
+/**
+ * sunxi_reset_bind() - reset binding
+ *
+ * @dev:       reset device
+ * @count:     reset count
+ * @return 0 success, or error value
+ */
+int sunxi_reset_bind(struct udevice *dev, ulong count);
+
+#endif /* _CLK_SUNXI_H */