From: Brian Masney <bmasney@redhat.com>
To: Claudiu Beznea <claudiu.beznea@tuxon.dev>
Cc: Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>,
Maxime Ripard <mripard@kernel.org>,
Conor Dooley <conor@kernel.org>,
Dan Carpenter <dan.carpenter@linaro.org>,
linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 4/4] clk: microchip: core: allow driver to be compiled with COMPILE_TEST
Date: Fri, 19 Dec 2025 14:32:41 -0500 [thread overview]
Message-ID: <aUWoWbFS6S82CW6m@redhat.com> (raw)
In-Reply-To: <e632211c-7ea5-4b27-8a06-24c160b7e947@tuxon.dev>
Hi Claudiu,
Sorry about the delay writing back. I was at Linux Plumbers in Tokyo.
On Sat, Dec 06, 2025 at 04:28:31PM +0200, Claudiu Beznea wrote:
> On 12/5/25 21:46, Brian Masney wrote:
> > This driver currently only supports builds against a PIC32 target. To
> > avoid future breakage in the future, let's update the Kconfig and the
> > driver so that it can be built with CONFIG_COMPILE_TEST enabled.
> >
> > Note that with the existing asm calls is not how I'd want to do this
> > today if this was a new driver, however I don't have access to this
> > hardware. To avoid any breakage, let's keep the existing behavior.
> >
> > Signed-off-by: Brian Masney <bmasney@redhat.com>
> > ---
> > drivers/clk/microchip/Kconfig | 2 +-
> > drivers/clk/microchip/clk-core.c | 32 +++++++++++++++++++++++---------
> > 2 files changed, 24 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/clk/microchip/Kconfig b/drivers/clk/microchip/Kconfig
> > index 1b9e43eb54976b219a0277cc971f353fd6af226a..1e56a057319d97e20440fe4e107d26fa85c95ab1 100644
> > --- a/drivers/clk/microchip/Kconfig
> > +++ b/drivers/clk/microchip/Kconfig
> > @@ -1,7 +1,7 @@
> > # SPDX-License-Identifier: GPL-2.0
> >
> > config COMMON_CLK_PIC32
> > - def_bool COMMON_CLK && MACH_PIC32
> > + def_bool (COMMON_CLK && MACH_PIC32) || COMPILE_TEST
> >
> > config MCHP_CLK_MPFS
> > bool "Clk driver for PolarFire SoC"
> > diff --git a/drivers/clk/microchip/clk-core.c b/drivers/clk/microchip/clk-core.c
> > index f467d7bc28c87a50fb18dc527574f973c4b7e615..fad4b45d908310ffb59e4ed57c55ae4266253444 100644
> > --- a/drivers/clk/microchip/clk-core.c
> > +++ b/drivers/clk/microchip/clk-core.c
> > @@ -9,7 +9,15 @@
> > #include <linux/interrupt.h>
> > #include <linux/io.h>
> > #include <linux/iopoll.h>
> > +
> > +#if !defined(CONFIG_MACH_PIC32) && defined(CONFIG_COMPILE_TEST)
>
> Can't we have something like:
>
> #if defined(CONFIG_MATCH_PIC32)
> #include <asm/match-pic32/pic32.h>
> #else
> #define PIC32_CLR(_reg) ((_reg) + 0x04)
> #define PIC32_SET(_reg) ((_reg) + 0x08)
> #define PIC32_INV(_reg) ((_reg) + 0x0C)
> #define pic32_syskey_unlock()
> #endif
Yes, I agree that would be simpler.
> > +#define PIC32_CLR(_reg) ((_reg) + 0x04)
> > +#define PIC32_SET(_reg) ((_reg) + 0x08)
> > +#define PIC32_INV(_reg) ((_reg) + 0x0C)
> > +#define pic32_syskey_unlock()
>
> On the other side, there are other drivers using these defines, maybe a
> unified approach would fit better? Maybe moving these to
> include/linux/platform_data ?
I agree that would be the better approach. Specifically:
- Move arch/mips/include/asm/mach-pic32/pic32.h to
include/linux/platform_data
- Drop the unused include linux/io.h in pic32.h
- Check for CONFIG_MATCH_PIC32 for the pic32_syskey_unlock define. Make
it a noop for all other architectures.
That would allow us to have the following in the drivers, with no #if's:
#include <linux/platform_data/pic32.h>
I initially wanted to go this route, and I feel that's the best
technical decision, however my only hesitation is that this is going to
touch at least 8 different subsystems. I could probably get the MIPS
folks to take all of this, however it's going to be a pain to collect
all of the ACKs from the different subsystems.
x1:~/src/linux/linus (master %)$ git grep pic32.h
arch/mips/pic32/common/reset.c:#include <asm/mach-pic32/pic32.h>
arch/mips/pic32/common/reset.c:static void pic32_halt(void)
arch/mips/pic32/common/reset.c: pic32_halt();
arch/mips/pic32/common/reset.c: pic32_halt();
arch/mips/pic32/pic32mzda/config.c:#include <asm/mach-pic32/pic32.h>
arch/mips/pic32/pic32mzda/early_clk.c:#include <asm/mach-pic32/pic32.h>
arch/mips/pic32/pic32mzda/early_console.c:#include <asm/mach-pic32/pic32.h>
arch/mips/pic32/pic32mzda/init.c:#include <linux/platform_data/sdhci-pic32.h>
drivers/clk/microchip/clk-core.c:#include <asm/mach-pic32/pic32.h>
drivers/irqchip/irq-pic32-evic.c:#include <asm/mach-pic32/pic32.h>
drivers/mmc/host/sdhci-pic32.c:#include <linux/platform_data/sdhci-pic32.h>
drivers/pinctrl/pinctrl-pic32.c:#include <asm/mach-pic32/pic32.h>
drivers/pinctrl/pinctrl-pic32.c:#include "pinctrl-pic32.h"
drivers/rtc/rtc-pic32.c:#include <asm/mach-pic32/pic32.h>
drivers/tty/serial/pic32_uart.c:#include <asm/mach-pic32/pic32.h>
drivers/watchdog/pic32-dmt.c:#include <asm/mach-pic32/pic32.h>
drivers/watchdog/pic32-wdt.c:#include <asm/mach-pic32/pic32.h>
Thoughts?
> > +#if !defined(CONFIG_MACH_PIC32) && defined(CONFIG_COMPILE_TEST)
>
> Same here, can't we have:
>
> #ifdef CONFIG_MATCH_PIC32
> #define cpu_nop5() \
> do { \
> __asm__ __volatile__("nop"); \
> __asm__ __volatile__("nop"); \
> __asm__ __volatile__("nop"); \
> __asm__ __volatile__("nop"); \
> __asm__ __volatile__("nop"); \
> } while (0)
> #else
> #define cpu_nop5()
> #endif
Yes that sounds good.
Brian
next prev parent reply other threads:[~2025-12-19 19:32 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-05 19:46 [PATCH v3 0/4] clk: microchip: core: fix issue with round_rate conversion and allow compile test Brian Masney
2025-12-05 19:46 ` [PATCH v3 1/4] clk: microchip: core: remove duplicate determine_rate on pic32_sclk_ops Brian Masney
2025-12-06 14:30 ` Claudiu Beznea
2025-12-05 19:46 ` [PATCH v3 2/4] clk: microchip: core: correct return value on *_get_parent() Brian Masney
2025-12-06 14:31 ` Claudiu Beznea
2025-12-06 22:38 ` Brian Masney
2025-12-05 19:46 ` [PATCH v3 3/4] clk: microchip: core: remove unused include asm/traps.h Brian Masney
2025-12-05 19:46 ` [PATCH v3 4/4] clk: microchip: core: allow driver to be compiled with COMPILE_TEST Brian Masney
2025-12-06 14:28 ` Claudiu Beznea
2025-12-19 19:32 ` Brian Masney [this message]
2026-01-09 7:13 ` claudiu beznea
2026-01-08 23:15 ` [PATCH v3 0/4] clk: microchip: core: fix issue with round_rate conversion and allow compile test Brian Masney
2026-01-09 7:16 ` claudiu beznea
2026-01-09 11:30 ` Brian Masney
2026-01-09 16:45 ` Brian Masney
2026-01-10 14:59 ` Claudiu Beznea
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aUWoWbFS6S82CW6m@redhat.com \
--to=bmasney@redhat.com \
--cc=claudiu.beznea@tuxon.dev \
--cc=conor@kernel.org \
--cc=dan.carpenter@linaro.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mripard@kernel.org \
--cc=mturquette@baylibre.com \
--cc=sboyd@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.