[PATCH v4] i2c: spacemit: configure ILCR for accurate SCL frequency

Andi Shyti andi.shyti at kernel.org
Tue Oct 21 09:03:34 PDT 2025


Hi Troy,

On Mon, Oct 20, 2025 at 11:28:45AM +0200, Andi Shyti wrote:
> On Fri, Oct 17, 2025 at 03:27:39PM +0800, Troy Mitchell wrote:
> > The SpacemiT I2C controller's SCL (Serial Clock Line) frequency for
> > master mode operations is determined by the ILCR (I2C Load Count Register).
> > Previously, the driver relied on the hardware's reset default
> > values for this register.
> > 
> > The hardware's default ILCR values (SLV=0x156, FLV=0x5d) yield SCL
> > frequencies lower than intended. For example, with the default
> > 31.5 MHz input clock, these default settings result in an SCL
> > frequency of approximately 93 kHz (standard mode) when targeting 100 kHz,
> > and approximately 338 kHz (fast mode) when targeting 400 kHz.
> > These frequencies are below the 100 kHz/400 kHz nominal speeds.
> > 
> > This patch integrates the SCL frequency management into
> > the Common Clock Framework (CCF). Specifically, the ILCR register,
> > which acts as a frequency divider for the SCL clock, is now registered
> > as a managed clock (scl_clk) within the CCF.
> > 
> > This patch also cleans up unnecessary whitespace
> > in the included header files.
> > 
> > Signed-off-by: Troy Mitchell <troy.mitchell at linux.spacemit.com>
> 
> merged to i2c/i2c-host.

I'm sorry, because of the report from LKP(*) I reverted your
patch. I2C_K1 is selected by MFD_SPACEMIT_P1, so that we get the
following warning:

  WARNING: unmet direct dependencies detected for I2C_K1

and compile I2C_K1 without COMMON_CLK. Please, fix it and
resubmit the patch.

Thanks,
Andi

(*) https://lore.kernel.org/oe-kbuild-all/202510202150.2qXd8e7Y-lkp@intel.com/



More information about the linux-riscv mailing list