On Wed, Feb 12, 2025 at 02:41:17PM +0800, Peng Fan wrote: > On Tue, Feb 11, 2025 at 05:01:12PM +0000, Sudeep Holla wrote: > >On Mon, Jan 20, 2025 at 10:25:36AM +0800, Peng Fan (OSS) wrote: > >> From: Peng Fan <peng.fan@xxxxxxx> > >> > >> i.MX95 EVK has two RTCs exported by SCMI BBM protocol. Current driver > >> only enables the 1st RTC inside BBNSM module, leaving the board RTC > >> not used by Linux. > >> > >> To use the 2nd RTC, use 'bbm_info' to get the number of RTCs, register > >> them all, and set 'bbnsm' as private info for rtc device to know which > >> RTC it is when using rtc_class_ops to access rtc device. > >> > >> Signed-off-by: Peng Fan <peng.fan@xxxxxxx> > >> --- > >> drivers/rtc/rtc-imx-sm-bbm.c | 69 +++++++++++++++++++++++++++----------------- > >> 1 file changed, 43 insertions(+), 26 deletions(-) > >> > >> diff --git a/drivers/rtc/rtc-imx-sm-bbm.c b/drivers/rtc/rtc-imx-sm-bbm.c > >> index daa472be7c80697aa3cd3432eccef0c877e4c378..a29b30555d0c0581ecaa8b79760209dc780d2f0e 100644 > >> --- a/drivers/rtc/rtc-imx-sm-bbm.c > >> +++ b/drivers/rtc/rtc-imx-sm-bbm.c > >> @@ -15,16 +15,18 @@ struct scmi_imx_bbm { > >> struct rtc_device *rtc_dev; > >> struct scmi_protocol_handle *ph; > >> struct notifier_block nb; > >> + u32 bbm_rtc_id; > > > >Is it not same as rtc_dev->id ? Why do you need a copy in this wrapper/ > >container structure ? > > In theroy yes. The current system I use that all RTCs are managed by BBM > protocol. So only two RTCs are registered. > > In case there is other RTCs that not managed BBM, the rtc_dev->id > will not be equal to bbm_rtc_id. > > For example RTC1 is directly managed by Linux, RTC0 is managed by BBM. > > The RTC1 is probed first, so its rtc_dev->id is 0. But from BBM protocol, > the RTC0 use id 0 for BBM SCMI server to handle the RTC0. > > I maybe overthinking here. But to avoid potential issues, I would like to > keep bbm_rtc_id. > Fair enough, I didn't think of this mix(firmware controlled RTC + Linux controlled ones). -- Regards, Sudeep