[PATCH v4 3/3] rtc: spacemit: default module when MFD_SPACEMIT_P1 is enabled

Alexandre Belloni alexandre.belloni at bootlin.com
Fri Jan 9 14:36:27 PST 2026


On 29/12/2025 19:46:59-0600, Alex Elder wrote:
> On 12/29/25 6:51 PM, Alexandre Belloni wrote:
> > On 29/12/2025 12:02:23-0600, Alex Elder wrote:
> > > On 12/25/25 10:53 AM, Alexandre Belloni wrote:
> > > > On 25/12/2025 15:46:33+0800, Troy Mitchell wrote:
> > > > > The RTC driver defaulted to the same value as MFD_SPACEMIT_P1, which
> > > > > caused it to be built-in automatically whenever the PMIC support was
> > > > > set to y.
> > > > > 
> > > > > This is not always desirable, as the RTC function is not required on
> > > > > all platforms using the SpacemiT P1 PMIC.
> > > > 
> > > > But then, can't people simply change the config? I don't feel like
> > > > this is an improvement.
> > > 
> > > It's not an improvement for people who want to use the SpacemiT
> > > P1 PMIC, but it's an improvement for all the other RISC-V builds
> > > using "defconfig" that would rather have that support be modular
> > > to avoid needlessly consuming resources.
> > 
> > But then, wouldn't MFD_SPACEMIT_P1 be simply not set or set to m ? So
> > this doesn't have any impact on other RISC-V builds while it makes
> > people using the SpacemiT P1 PMIC jump through hoops to be able to use
> > the RTC as this is a very uncommon way to set default values.
> > 
> > My point is:
> >   - other RISC-V platforms would simply not select MFD_SPACEMIT_P1 or
> >     have MFD_SPACEMIT_P1 set to m
> >   - having RTC_DRV_SPACEMIT_P1 built-in by default when MFD_SPACEMIT_P1
> >     is built-in doesn't really hurt any SpacemiT P1 users but would be
> >     the expectation of those using the RTC.
> 
> The "hurt" isn't about P1 users, it's about everyone else.
> 
> >   - those wanting to optimise because they won't use the RTC, they can
> >     already simply unselect RTC_DRV_SPACEMIT_P1 or set it to m.
> 
> 
> The purpose is to make the driver a module (not built-in)
> when "defconfig" is used (without the need for any Kconfig
> fragments to unselect things).
> 
> 
> In arch/riscv/configs/defconfig, we have this:
>     CONFIG_ARCH_SPACEMIT=y
> 
> In drivers/mfd/Kconfig b/drivers/mfd/Kconfig, we have this
> (added by patch 2 in this series):
>     config MFD_SPACEMIT_P1
> 	default m if ARCH_SPACEMIT
> 
> So when using defconfig (alone), MFD_SPACEMIT_P1 is set to m,
> to benefit non-SpacemiT RISC-V platforms.
> 
> This patch is trying to do the same thing for the RTC,
> i.e. having RTC_DRV_SPACEMIT_P1 be defined as a module
> by default.
> 
> I think you understand.

I'm sorry, I must be dumb but I don't understand. The current behaviour
is that when MFD_SPACEMIT_P1 is m, then the default value for
RTC_DRV_SPACEMIT_P1 will be m. Since patch 2 makes it exactly that way
(MFD_SPACEMIT_P set to m), I don't get why it is necessary to mess with
the default of RTC_DRV_SPACEMIT_P1.

The current default behaviour of RTC_DRV_SPACEMIT_P1 seems to be the
correct one and the proper fix is then patch 2.



More information about the linux-riscv mailing list