mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-22 01:08:13 -04:00
mfd: rsmu: Fix page register setup
Fix writes to page register in 8A3400x family (Clock Matrix).
All calls to rsmu_write_page_register() (both in i2c and spi) have
resulted in early return, because all addresses in
include/linux/mfd/idt8a340_reg.h are less than RSMU_CM_SCSR_BASE.
There were 2 separate patch series which have to be merged in one time:
mfd and ptp. The latter have been merged, the former[1] have not.
Link: https://lore.kernel.org/netdev/LV3P220MB1202F8E2FCCFBA2519B4966EA0192@LV3P220MB1202.NAMP220.PROD.OUTLOOK.COM/
Fixes: 67d6c76fc8 ("mfd: rsmu: Support 32-bit address space")
Signed-off-by: Matthew Bystrin <dev.mbstr@gmail.com>
Link: https://patch.msgid.link/20260429072047.1111427-2-dev.mbstr@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
committed by
Lee Jones
parent
4dd72d0044
commit
6bc38f26ed
@@ -134,14 +134,10 @@ static int rsmu_i2c_write_device(struct rsmu_ddata *rsmu, u8 reg, u8 *buf, u8 by
|
||||
static int rsmu_write_page_register(struct rsmu_ddata *rsmu, u32 reg,
|
||||
rsmu_rw_device rsmu_write_device)
|
||||
{
|
||||
u32 page = reg & RSMU_CM_PAGE_MASK;
|
||||
u32 page = (reg | RSMU_CM_SCSR_BASE) & RSMU_CM_PAGE_MASK;
|
||||
u8 buf[4];
|
||||
int err;
|
||||
|
||||
/* Do not modify offset register for none-scsr registers */
|
||||
if (reg < RSMU_CM_SCSR_BASE)
|
||||
return 0;
|
||||
|
||||
/* Simply return if we are on the same page */
|
||||
if (rsmu->page == page)
|
||||
return 0;
|
||||
|
||||
@@ -101,11 +101,8 @@ static int rsmu_write_page_register(struct rsmu_ddata *rsmu, u32 reg)
|
||||
|
||||
switch (rsmu->type) {
|
||||
case RSMU_CM:
|
||||
/* Do not modify page register for none-scsr registers */
|
||||
if (reg < RSMU_CM_SCSR_BASE)
|
||||
return 0;
|
||||
page_reg = RSMU_CM_PAGE_ADDR;
|
||||
page = reg & RSMU_PAGE_MASK;
|
||||
page = (reg | RSMU_CM_SCSR_BASE) & RSMU_PAGE_MASK;
|
||||
buf[0] = (u8)(page & 0xFF);
|
||||
buf[1] = (u8)((page >> 8) & 0xFF);
|
||||
buf[2] = (u8)((page >> 16) & 0xFF);
|
||||
|
||||
Reference in New Issue
Block a user