[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