drivers/mfd/rsmu_i2c.c | 8 +++----- drivers/mfd/rsmu_spi.c | 7 +++---- 2 files changed, 6 insertions(+), 9 deletions(-)
Hi! First patch fixes Renesas 8A34002 SPI driver. In my setup 8A34002 is connected to VisionFive2 (via SPI or I2C). I've discovered that upstream driver does not work: [ 4.728771] 8a3400x-phc 8a3400x-phc.0.auto: 4.8.7, Id: 0x4002 HW Rev: 5 OTP Config Select: 0 [ 4.737389] 8a3400x-phc 8a3400x-phc.0.auto: requesting firmware 'idtcm.bin' [ 4.744462] 8a3400x-phc 8a3400x-phc.0.auto: Direct firmware load for idtcm.bin failed with error -2 [ 4.753547] 8a3400x-phc 8a3400x-phc.0.auto: Failed at line 1273 in idtcm_load_firmware! [ 4.761576] 8a3400x-phc 8a3400x-phc.0.auto: loading firmware failed with -2 [ 4.769411] 8a3400x-phc 8a3400x-phc.0.auto: No wait state: DPLL_SYS_STATE 0 [ 4.776374] 8a3400x-phc 8a3400x-phc.0.auto: Continuing while SYS APLL/DPLL is not locked [ 4.785206] 8a3400x-phc 8a3400x-phc.0.auto: Unsupported MANUAL_REFERENCE: 0x00 [ 4.796930] 8a3400x-phc 8a3400x-phc.0.auto: PLL2 registered as ptp0 This being caused by a piece of code in rsmu_write_page_register() function: if (reg < RSMU_CM_SCSR_BASE) return 0; All addresses in include/linux/mfd/idt8a340_reg.h are less than RSMU_CM_SCSR_BASE so functions was returning early, before any modifications to the page register. Valid read of versions - is just a coincidence, because default value of the page register is zero. There were 2 separate patch series which had to be merged in one time: mfd and ptp. The latter have been merged, the former [1] have not. As result we've got a broken driver. This patch can be reverted later when the second part will be ready (of course if it is planned to do so). Any comments, Min? I could support with testing. Second patch just adds support for 8A34002, which is compatible with 8A34001. As I can see there is no need to update bindings, everything is already being done. Link [2] to v1. Changes in v2: - Fix page register issue in rsmu_i2c - Add support for 8a34002 in rsmu_i2c Link [1]: https://lore.kernel.org/netdev/LV3P220MB1202F8E2FCCFBA2519B4966EA0192@LV3P220MB1202.NAMP220.PROD.OUTLOOK.COM/ Link [2]: https://lore.kernel.org/netdev/20260421090710.395591-1-dev.mbstr@gmail.com/ Signed-off-by: Matthew Bystrin <dev.mbstr@gmail.com> Matthew Bystrin (2): mfd: rsmu: fix page register setup mfd: rsmu: add 8a34002 support drivers/mfd/rsmu_i2c.c | 8 +++----- drivers/mfd/rsmu_spi.c | 7 +++---- 2 files changed, 6 insertions(+), 9 deletions(-) -- 2.53.0
On Wed, 29 Apr 2026 10:20:45 +0300, Matthew Bystrin wrote:
> First patch fixes Renesas 8A34002 SPI driver.
>
> In my setup 8A34002 is connected to VisionFive2 (via SPI or I2C). I've
> discovered that upstream driver does not work:
>
> [ 4.728771] 8a3400x-phc 8a3400x-phc.0.auto: 4.8.7, Id: 0x4002 HW Rev: 5 OTP Config Select: 0
> [ 4.737389] 8a3400x-phc 8a3400x-phc.0.auto: requesting firmware 'idtcm.bin'
> [ 4.744462] 8a3400x-phc 8a3400x-phc.0.auto: Direct firmware load for idtcm.bin failed with error -2
> [ 4.753547] 8a3400x-phc 8a3400x-phc.0.auto: Failed at line 1273 in idtcm_load_firmware!
> [ 4.761576] 8a3400x-phc 8a3400x-phc.0.auto: loading firmware failed with -2
> [ 4.769411] 8a3400x-phc 8a3400x-phc.0.auto: No wait state: DPLL_SYS_STATE 0
> [ 4.776374] 8a3400x-phc 8a3400x-phc.0.auto: Continuing while SYS APLL/DPLL is not locked
> [ 4.785206] 8a3400x-phc 8a3400x-phc.0.auto: Unsupported MANUAL_REFERENCE: 0x00
> [ 4.796930] 8a3400x-phc 8a3400x-phc.0.auto: PLL2 registered as ptp0
>
> [...]
Applied, thanks!
[1/2] mfd: rsmu: fix page register setup
commit: d65ff90be2c1a09e9e477e6f7493fae21b31e59c
[2/2] mfd: rsmu: add 8a34002 support
commit: c8e94555a15fbe0925a9cc424118ca10e3b5531a
--
Lee Jones [李琼斯]
© 2016 - 2026 Red Hat, Inc.