Thread (2 messages) 2 messages, 2 authors, 2024-09-30

Re: [PATCH v5 8/9] reset: amlogic: split the device core and platform probe

From: Philipp Zabel <p.zabel@pengutronix.de>
Date: 2024-09-30 16:56:13
Also in: linux-amlogic, lkml

On Fr, 2024-09-13 at 08:53 +0200, Jerome Brunet wrote:
On Thu 12 Sep 2024 at 10:12, Philipp Zabel [off-list ref] wrote:
quoted
On Di, 2024-09-10 at 18:32 +0200, Jerome Brunet wrote:
quoted
To prepare the addition of the auxiliary device support, split
out the device coomon functions from the probe of the platform device.

The device core function will be common to both the platform and auxiliary
driver.

Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
---
 drivers/reset/amlogic/Kconfig              |   7 +-
 drivers/reset/amlogic/Makefile             |   1 +
 drivers/reset/amlogic/reset-meson-common.c | 121 ++++++++++++++++++++++++++++
 drivers/reset/amlogic/reset-meson.c        | 122 ++++-------------------------
 drivers/reset/amlogic/reset-meson.h        |  24 ++++++
 5 files changed, 167 insertions(+), 108 deletions(-)
diff --git a/drivers/reset/amlogic/Kconfig b/drivers/reset/amlogic/Kconfig
index 532e6a4f7865..1d77987088f4 100644
--- a/drivers/reset/amlogic/Kconfig
+++ b/drivers/reset/amlogic/Kconfig
@@ -1,10 +1,15 @@
+config RESET_MESON_COMMON
+	tristate
+	select REGMAP
+
 config RESET_MESON
 	tristate "Meson Reset Driver"
 	depends on ARCH_MESON || COMPILE_TEST
 	default ARCH_MESON
 	select REGMAP_MMIO
+	select RESET_MESON_COMMON
 	help
-	  This enables the reset driver for Amlogic Meson SoCs.
+	  This enables the reset driver for Amlogic SoCs.
 
 config RESET_MESON_AUDIO_ARB
 	tristate "Meson Audio Memory Arbiter Reset Driver"
diff --git a/drivers/reset/amlogic/Makefile b/drivers/reset/amlogic/Makefile
index 55509fc78513..74aaa2fb5e13 100644
--- a/drivers/reset/amlogic/Makefile
+++ b/drivers/reset/amlogic/Makefile
@@ -1,2 +1,3 @@
 obj-$(CONFIG_RESET_MESON) += reset-meson.o
+obj-$(CONFIG_RESET_MESON_COMMON) += reset-meson-common.o
 obj-$(CONFIG_RESET_MESON_AUDIO_ARB) += reset-meson-audio-arb.o
diff --git a/drivers/reset/amlogic/reset-meson-common.c b/drivers/reset/amlogic/reset-meson-common.c
new file mode 100644
index 000000000000..d57544801ae9
--- /dev/null
+++ b/drivers/reset/amlogic/reset-meson-common.c
@@ -0,0 +1,121 @@
+// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
+/*
+ * Amlogic Meson Reset core functions
+ *
+ * Copyright (c) 2016-2024 BayLibre, SAS.
+ * Authors: Neil Armstrong <narmstrong@baylibre.com>
+ *          Jerome Brunet <jbrunet@baylibre.com>
+ */
+
+#include <linux/device.h>
+#include <linux/module.h>
+#include <linux/regmap.h>
+#include <linux/reset-controller.h>
+
+#include "reset-meson.h"
+
+struct meson_reset {
+	const struct meson_reset_param *param;
+	struct reset_controller_dev rcdev;
+	struct regmap *map;
+};
+
+static void meson_reset_offset_and_bit(struct meson_reset *data,
+				       unsigned long id,
+				       unsigned int *offset,
+				       unsigned int *bit)
+{
+	unsigned int stride = regmap_get_reg_stride(data->map);
+
+	*offset = (id / (stride * BITS_PER_BYTE)) * stride;
+	*bit = id % (stride * BITS_PER_BYTE);
+}
+
+static int meson_reset_reset(struct reset_controller_dev *rcdev,
+			     unsigned long id)
checkpatch --strict complains about the alignment here.
I'll fix this up when applying, no need to resend.
Thanks Philipp.

FYI, those mis-alignement were already present in the original code and
there has been comments when I re-indented code while moving it
around so I did not touch it.
Oh, ok.

I've applied them to reset/next them unchanged, at:
https://git.pengutronix.de/cgit/pza/linux/commit/?id=5b93105afcdc
and sent a follow-up patch to fix the alignment.

regards
Philipp
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help