[PATCH v5 8/9] reset: amlogic: split the device core and platform probe
Philipp Zabel
p.zabel at pengutronix.de
Mon Sep 30 09:56:05 PDT 2024
On Fr, 2024-09-13 at 08:53 +0200, Jerome Brunet wrote:
> On Thu 12 Sep 2024 at 10:12, Philipp Zabel <p.zabel at pengutronix.de> wrote:
>
> > On Di, 2024-09-10 at 18:32 +0200, Jerome Brunet wrote:
> > > 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 at 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 at baylibre.com>
> > > + * Jerome Brunet <jbrunet at 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
More information about the linux-arm-kernel
mailing list