RE: [PATCH v3 2/2] i2c: dwsignware: determine HS tHIGH and tLOW based on HW parameters
From: Michael Wu
Date: Wed Oct 02 2024 - 05:31:16 EST
Hi,
> On Tue, Oct 01, 2024 at 04:29:34PM +0800, Michael Wu wrote:
> > In commit 35eba185fd1a ("i2c: designware: Calculate SCL timing parameter
> > for High Speed Mode") hs_hcnt and hs_lcnt are calculated based on fixed
> > tHIGH = 160 and tLOW = 120. However, the set of these fixed values only
> > applies to the combination of hardware parameters IC_CAP_LOADING =
> 400pF
> > and IC_CLK_FREQ_OPTIMIZATION = 1. Outside of this combination, if these
> > fixed tHIGH = 160 and tLOW = 120 are still used, the calculated hs_hcnt
> > and hs_lcnt may not be small enough, making it impossible for the SCL
> > frequency to reach 3.4 MHz.
> >
> > Section 3.15.4.5 in DesignWare DW_apb_i2b Databook v2.03 says that when
> > IC_CLK_FREQ_OPTIMIZATION = 0,
> >
> > MIN_SCL_HIGHtime = 60 ns for 3.4 Mbps, bus loading = 100pF
> > = 120 ns for 3.4 Mbps, bus loading = 400pF
> > MIN_SCL_LOWtime = 160 ns for 3.4 Mbps, bus loading = 100pF
> > = 320 ns for 3.4 Mbps, bus loading = 400pF
> >
> > and section 3.15.4.6 says that when IC_CLK_FREQ_OPTIMIZATION = 1,
> >
> > MIN_SCL_HIGHtime = 60 ns for 3.4 Mbps, bus loading = 100pF
> > = 160 ns for 3.4 Mbps, bus loading = 400pF
> > MIN_SCL_LOWtime = 120 ns for 3.4 Mbps, bus loading = 100pF
> > = 320 ns for 3.4 Mbps, bus loading = 400pF
> >
> > In order to calculate more accurate hs_hcnt amd hs_lcnt, two hardware
> > parameters IC_CAP_LOADING and IC_CLK_FREQ_OPTIMIZATION must be
> > considered together.
>
> ...
>
> > + * @bus_capacitance_pf: bus capacitance in picofarads
>
> Since it seems a new version of the series is warranted, and looking into
> the current kernel source (no other users of this unit were observed),
> I think we may do correct capitalisation here for the sake of physics
> and unit system, i.e.
>
> * @bus_capacitance_pF: bus capacitance in picofarads
Are you serious? I have never seen capital letters used to declare a
variable name. Although checkpatch.pl does not consider this as an issue,
is this against everyone's custom or unspoken rules?
Sincerely,
Michael