* [PATCH] sh: sh7785lcr: register the PCA9564 as I2C bus 0
@ 2026-10-03 8:28 Karl Mehltretter
2026-10-03 8:53 ` John Paul Adrian Glaubitz
2026-10-03 9:07 ` John Paul Adrian Glaubitz
0 siblings, 2 replies; 8+ messages in thread
From: Karl Mehltretter @ 2026-10-03 8:28 UTC (permalink / raw)
To: Yoshinori Sato, Rich Felker
Cc: Karl Mehltretter, John Paul Adrian Glaubitz, linux-sh,
linux-kernel
The R2025S/D board information is registered on I2C bus 0. Commit
44454baa7ca7 ("i2c: Dynamically assign adapter id if it wasn't explictly
specified") changed the PCA9564 platform driver to pass negative platform
device IDs to the I2C core. The SH7785LCR device uses ID -1, so the core
assigns it a dynamic bus number. Reserving bus 0 for the board information
makes i2c-1 the first dynamic bus, and the RTC is never instantiated.
Set the platform device ID to 0 so the adapter is registered as i2c-0 and
the RTC board information matches it.
Fixes: 44454baa7ca7 ("i2c: Dynamically assign adapter id if it wasn't explictly specified")
Assisted-by: LLM
Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
---
Tested with 29-bit and 32-bit kernels on a custom QEMU model of the
SH7785LCR. Both registered the controller as i2c-0 and the R2025S/D as
rtc0.
Testing on real hardware is welcome.
arch/sh/boards/board-sh7785lcr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/sh/boards/board-sh7785lcr.c b/arch/sh/boards/board-sh7785lcr.c
index 25c4968f0d8b..b93423df582f 100644
--- a/arch/sh/boards/board-sh7785lcr.c
+++ b/arch/sh/boards/board-sh7785lcr.c
@@ -256,7 +256,7 @@ static struct i2c_pca9564_pf_platform_data i2c_platform_data = {
static struct platform_device i2c_device = {
.name = "i2c-pca-platform",
- .id = -1,
+ .id = 0,
.dev = {
.platform_data = &i2c_platform_data,
},
--
2.53.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] sh: sh7785lcr: register the PCA9564 as I2C bus 0
2026-10-03 8:28 [PATCH] sh: sh7785lcr: register the PCA9564 as I2C bus 0 Karl Mehltretter
@ 2026-10-03 8:53 ` John Paul Adrian Glaubitz
2026-10-03 9:07 ` John Paul Adrian Glaubitz
1 sibling, 0 replies; 8+ messages in thread
From: John Paul Adrian Glaubitz @ 2026-10-03 8:53 UTC (permalink / raw)
To: Karl Mehltretter, Yoshinori Sato, Rich Felker; +Cc: linux-sh, linux-kernel
Hello Karl,
On Sat, 2026-10-03 at 10:28 +0200, Karl Mehltretter wrote:
> The R2025S/D board information is registered on I2C bus 0. Commit
> 44454baa7ca7 ("i2c: Dynamically assign adapter id if it wasn't explictly
> specified") changed the PCA9564 platform driver to pass negative platform
> device IDs to the I2C core. The SH7785LCR device uses ID -1, so the core
> assigns it a dynamic bus number. Reserving bus 0 for the board information
> makes i2c-1 the first dynamic bus, and the RTC is never instantiated.
>
> Set the platform device ID to 0 so the adapter is registered as i2c-0 and
> the RTC board information matches it.
>
> Fixes: 44454baa7ca7 ("i2c: Dynamically assign adapter id if it wasn't explictly specified")
> Assisted-by: LLM
> Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
> ---
>
> Tested with 29-bit and 32-bit kernels on a custom QEMU model of the
> SH7785LCR. Both registered the controller as i2c-0 and the R2025S/D as
> rtc0.
> Testing on real hardware is welcome.
>
> arch/sh/boards/board-sh7785lcr.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/sh/boards/board-sh7785lcr.c b/arch/sh/boards/board-sh7785lcr.c
> index 25c4968f0d8b..b93423df582f 100644
> --- a/arch/sh/boards/board-sh7785lcr.c
> +++ b/arch/sh/boards/board-sh7785lcr.c
> @@ -256,7 +256,7 @@ static struct i2c_pca9564_pf_platform_data i2c_platform_data = {
>
> static struct platform_device i2c_device = {
> .name = "i2c-pca-platform",
> - .id = -1,
> + .id = 0,
> .dev = {
> .platform_data = &i2c_platform_data,
> },
Without the patch, the rtc is not detected during boot and trying to read it out
with the hwclock utility fails:
root@tirpitz:~> hwclock
hwclock: Cannot access the Hardware Clock via any known method.
hwclock: Use the --verbose option to see the details of our search for an access method.
root@tirpitz:~> hwclock --verbose
hwclock from util-linux 2.41.3
System Time: 1791016681.183560
Trying to open: /dev/rtc0
Trying to open: /dev/rtc
Trying to open: /dev/misc/rtc
No usable clock interface found.
hwclock: Cannot access the Hardware Clock via any known method.
root@tirpitz:~>
With the patch, the rtc is detected during boot:
[ 4.048000] rtc-rs5c372 0-0032: r2025sd found, 24hr
[ 4.056000] rtc-rs5c372 0-0032: rtc oscillator interruption detected. Please reset the rtc clock.
[ 4.072000] rtc-rs5c372 0-0032: registered as rtc0
[ 4.080000] rtc-rs5c372 0-0032: rtc oscillator interruption detected. Please reset the rtc clock.
[ 4.088000] rtc-rs5c372 0-0032: hctosys: unable to read the hardware clock
And can be read out with hwclock:
root@tirpitz:~> hwclock --verbose
hwclock from util-linux 2.41.3
System Time: 1791017592.121448
Trying to open: /dev/rtc0
Using the rtc interface to the clock.
Last drift adjustment done at 0 seconds after 1969
Last calibration done at 0 seconds after 1969
Hardware clock is on UTC time
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
ioctl(4, RTC_UIE_ON, 0): Invalid argument
Waiting in loop for time from /dev/rtc0 to change
...got clock tick
Time read from Hardware Clock: 2026/10/03 08:53:13
Hw clock time : 2026/10/03 08:53:13 = 1791017593 seconds since 1969
Time since last adjustment is 1791017593 seconds
Calculated Hardware Clock drift is 0.000000 seconds
2026-10-03 10:53:12.109057+02:00
root@tirpitz:~>
Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Adrian
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer
`. `' Physicist
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] sh: sh7785lcr: register the PCA9564 as I2C bus 0
2026-10-03 8:28 [PATCH] sh: sh7785lcr: register the PCA9564 as I2C bus 0 Karl Mehltretter
2026-10-03 8:53 ` John Paul Adrian Glaubitz
@ 2026-10-03 9:07 ` John Paul Adrian Glaubitz
2026-10-03 9:38 ` John Paul Adrian Glaubitz
1 sibling, 1 reply; 8+ messages in thread
From: John Paul Adrian Glaubitz @ 2026-10-03 9:07 UTC (permalink / raw)
To: Karl Mehltretter, Yoshinori Sato, Rich Felker; +Cc: linux-sh, linux-kernel
On Sat, 2026-10-03 at 10:28 +0200, Karl Mehltretter wrote:
> The R2025S/D board information is registered on I2C bus 0. Commit
> 44454baa7ca7 ("i2c: Dynamically assign adapter id if it wasn't explictly
> specified") changed the PCA9564 platform driver to pass negative platform
> device IDs to the I2C core. The SH7785LCR device uses ID -1, so the core
> assigns it a dynamic bus number. Reserving bus 0 for the board information
> makes i2c-1 the first dynamic bus, and the RTC is never instantiated.
>
> Set the platform device ID to 0 so the adapter is registered as i2c-0 and
> the RTC board information matches it.
>
> Fixes: 44454baa7ca7 ("i2c: Dynamically assign adapter id if it wasn't explictly specified")
> Assisted-by: LLM
> Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
> ---
>
> Tested with 29-bit and 32-bit kernels on a custom QEMU model of the
> SH7785LCR. Both registered the controller as i2c-0 and the R2025S/D as
> rtc0.
> Testing on real hardware is welcome.
>
> arch/sh/boards/board-sh7785lcr.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/sh/boards/board-sh7785lcr.c b/arch/sh/boards/board-sh7785lcr.c
> index 25c4968f0d8b..b93423df582f 100644
> --- a/arch/sh/boards/board-sh7785lcr.c
> +++ b/arch/sh/boards/board-sh7785lcr.c
> @@ -256,7 +256,7 @@ static struct i2c_pca9564_pf_platform_data i2c_platform_data = {
>
> static struct platform_device i2c_device = {
> .name = "i2c-pca-platform",
> - .id = -1,
> + .id = 0,
> .dev = {
> .platform_data = &i2c_platform_data,
> },
Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Adrian
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer
`. `' Physicist
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] sh: sh7785lcr: register the PCA9564 as I2C bus 0
2026-10-03 9:07 ` John Paul Adrian Glaubitz
@ 2026-10-03 9:38 ` John Paul Adrian Glaubitz
2026-10-03 9:51 ` Karl Mehltretter
0 siblings, 1 reply; 8+ messages in thread
From: John Paul Adrian Glaubitz @ 2026-10-03 9:38 UTC (permalink / raw)
To: Karl Mehltretter, Yoshinori Sato, Rich Felker; +Cc: linux-sh, linux-kernel
On Sat, 2026-10-03 at 11:07 +0200, John Paul Adrian Glaubitz wrote:
> On Sat, 2026-10-03 at 10:28 +0200, Karl Mehltretter wrote:
> > The R2025S/D board information is registered on I2C bus 0. Commit
> > 44454baa7ca7 ("i2c: Dynamically assign adapter id if it wasn't explictly
> > specified") changed the PCA9564 platform driver to pass negative platform
> > device IDs to the I2C core. The SH7785LCR device uses ID -1, so the core
> > assigns it a dynamic bus number. Reserving bus 0 for the board information
> > makes i2c-1 the first dynamic bus, and the RTC is never instantiated.
> >
> > Set the platform device ID to 0 so the adapter is registered as i2c-0 and
> > the RTC board information matches it.
> >
> > Fixes: 44454baa7ca7 ("i2c: Dynamically assign adapter id if it wasn't explictly specified")
> > Assisted-by: LLM
> > Signed-off-by: Karl Mehltretter <kmehltretter@gmail.com>
> > ---
> >
> > Tested with 29-bit and 32-bit kernels on a custom QEMU model of the
> > SH7785LCR. Both registered the controller as i2c-0 and the R2025S/D as
> > rtc0.
> > Testing on real hardware is welcome.
> >
> > arch/sh/boards/board-sh7785lcr.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/arch/sh/boards/board-sh7785lcr.c b/arch/sh/boards/board-sh7785lcr.c
> > index 25c4968f0d8b..b93423df582f 100644
> > --- a/arch/sh/boards/board-sh7785lcr.c
> > +++ b/arch/sh/boards/board-sh7785lcr.c
> > @@ -256,7 +256,7 @@ static struct i2c_pca9564_pf_platform_data i2c_platform_data = {
> >
> > static struct platform_device i2c_device = {
> > .name = "i2c-pca-platform",
> > - .id = -1,
> > + .id = 0,
> > .dev = {
> > .platform_data = &i2c_platform_data,
> > },
>
> Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
I have to admit though I don't fully understand the description of this
patch. Either I don't have enough coffee or it's not precise enough.
Adrian
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer
`. `' Physicist
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] sh: sh7785lcr: register the PCA9564 as I2C bus 0
2026-10-03 9:38 ` John Paul Adrian Glaubitz
@ 2026-10-03 9:51 ` Karl Mehltretter
2026-10-03 9:57 ` John Paul Adrian Glaubitz
2026-10-03 12:52 ` Geert Uytterhoeven
0 siblings, 2 replies; 8+ messages in thread
From: Karl Mehltretter @ 2026-10-03 9:51 UTC (permalink / raw)
To: John Paul Adrian Glaubitz
Cc: Yoshinori Sato, Rich Felker, linux-sh, linux-kernel
On Sat, Oct 03, 2026 at 11:38:43AM +0100, John Paul Adrian Glaubitz wrote:
> > Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
>
> I have to admit though I don't fully understand the description of this
> patch. Either I don't have enough coffee or it's not precise enough.
>
Thanks for testing and reviewing! I agree the changelog doesn't explain
why -1 is wrong and 0 is right for this board very clearly. I'll give it
a day or so to step back and submit a v2 with your tags and a better
changelog.
Karl
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] sh: sh7785lcr: register the PCA9564 as I2C bus 0
2026-10-03 9:51 ` Karl Mehltretter
@ 2026-10-03 9:57 ` John Paul Adrian Glaubitz
2026-10-03 12:52 ` Geert Uytterhoeven
1 sibling, 0 replies; 8+ messages in thread
From: John Paul Adrian Glaubitz @ 2026-10-03 9:57 UTC (permalink / raw)
To: Karl Mehltretter; +Cc: Yoshinori Sato, Rich Felker, linux-sh, linux-kernel
On Sat, 2026-10-03 at 11:51 +0200, Karl Mehltretter wrote:
> On Sat, Oct 03, 2026 at 11:38:43AM +0100, John Paul Adrian Glaubitz wrote:
> > > Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
> >
> > I have to admit though I don't fully understand the description of this
> > patch. Either I don't have enough coffee or it's not precise enough.
> >
>
> Thanks for testing and reviewing! I agree the changelog doesn't explain
> why -1 is wrong and 0 is right for this board very clearly. I'll give it
> a day or so to step back and submit a v2 with your tags and a better
> changelog.
Thanks a lot! I'm glad it's not just that I had only one coffee today! ;-)
I will try to start looking at a few other patches this weekend. I'm not
sure if I will be able to pick up all at once for v7.4, so some of them
might end up in v7.5.
Either way, thanks for all these fixes! I didn't even notice that accessing
the hardware clock didn't work.
Adrian
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer
`. `' Physicist
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] sh: sh7785lcr: register the PCA9564 as I2C bus 0
2026-10-03 9:51 ` Karl Mehltretter
2026-10-03 9:57 ` John Paul Adrian Glaubitz
@ 2026-10-03 12:52 ` Geert Uytterhoeven
2026-10-03 18:17 ` John Paul Adrian Glaubitz
1 sibling, 1 reply; 8+ messages in thread
From: Geert Uytterhoeven @ 2026-10-03 12:52 UTC (permalink / raw)
To: Karl Mehltretter
Cc: John Paul Adrian Glaubitz, Yoshinori Sato, Rich Felker, linux-sh,
linux-kernel
Hi Karl,
On Sat, 3 Oct 2026 at 11:51, Karl Mehltretter <kmehltretter@gmail.com> wrote:
> On Sat, Oct 03, 2026 at 11:38:43AM +0100, John Paul Adrian Glaubitz wrote:
> > > Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
> >
> > I have to admit though I don't fully understand the description of this
> > patch. Either I don't have enough coffee or it's not precise enough.
>
> Thanks for testing and reviewing! I agree the changelog doesn't explain
> why -1 is wrong and 0 is right for this board very clearly. I'll give it
> a day or so to step back and submit a v2 with your tags and a better
> changelog.
Perhaps something like:
Before commit 44454baa7ca7bb57 ("i2c: Dynamically assign adapter id if
it wasn't explictly specified"), a negative ID was replaced by zero,
and I2C bus zero was instantiated. Since that commit, a negative ID
is passed verbatim, instantiating an I2C bus with a dynamic number.
As SH boards still use i2c_register_board_info(0, ...) to register I2C
devices, they rely on the I2C bus being bus zero, causing registration to fail.
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] sh: sh7785lcr: register the PCA9564 as I2C bus 0
2026-10-03 12:52 ` Geert Uytterhoeven
@ 2026-10-03 18:17 ` John Paul Adrian Glaubitz
0 siblings, 0 replies; 8+ messages in thread
From: John Paul Adrian Glaubitz @ 2026-10-03 18:17 UTC (permalink / raw)
To: Geert Uytterhoeven, Karl Mehltretter
Cc: Yoshinori Sato, Rich Felker, linux-sh, linux-kernel
Hi Geert,
On Sat, 2026-10-03 at 14:52 +0200, Geert Uytterhoeven wrote:
> Hi Karl,
>
> On Sat, 3 Oct 2026 at 11:51, Karl Mehltretter <kmehltretter@gmail.com> wrote:
> > On Sat, Oct 03, 2026 at 11:38:43AM +0100, John Paul Adrian Glaubitz wrote:
> > > > Reviewed-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
> > >
> > > I have to admit though I don't fully understand the description of this
> > > patch. Either I don't have enough coffee or it's not precise enough.
> >
> > Thanks for testing and reviewing! I agree the changelog doesn't explain
> > why -1 is wrong and 0 is right for this board very clearly. I'll give it
> > a day or so to step back and submit a v2 with your tags and a better
> > changelog.
>
> Perhaps something like:
>
> Before commit 44454baa7ca7bb57 ("i2c: Dynamically assign adapter id if
> it wasn't explictly specified"), a negative ID was replaced by zero,
> and I2C bus zero was instantiated. Since that commit, a negative ID
> is passed verbatim, instantiating an I2C bus with a dynamic number.
> As SH boards still use i2c_register_board_info(0, ...) to register I2C
> devices, they rely on the I2C bus being bus zero, causing registration to fail.
Yeah, that makes a whole lot of more sense to me. Thanks for the clarification!
If Karl agrees, we can go with that one and he can send a v2.
Adrian
> Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
>
> Gr{oetje,eeting}s,
>
> Geert
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer
`. `' Physicist
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2026-10-03 18:17 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-03 8:28 [PATCH] sh: sh7785lcr: register the PCA9564 as I2C bus 0 Karl Mehltretter
2026-10-03 8:53 ` John Paul Adrian Glaubitz
2026-10-03 9:07 ` John Paul Adrian Glaubitz
2026-10-03 9:38 ` John Paul Adrian Glaubitz
2026-10-03 9:51 ` Karl Mehltretter
2026-10-03 9:57 ` John Paul Adrian Glaubitz
2026-10-03 12:52 ` Geert Uytterhoeven
2026-10-03 18:17 ` John Paul Adrian Glaubitz
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.