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

Jerome Brunet jbrunet at baylibre.com
Thu Sep 12 23:53:21 PDT 2024


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.

>
> regards
> Philipp

-- 
Jerome



More information about the linux-amlogic mailing list