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

From: Jerome Brunet
Date: Fri Sep 13 2024 - 02:53:39 EST


On Thu 12 Sep 2024 at 10:12, Philipp Zabel <p.zabel@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxx>
>> ---
>> 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@xxxxxxxxxxxx>
>> + * Jerome Brunet <jbrunet@xxxxxxxxxxxx>
>> + */
>> +
>> +#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