openbmc.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Tali Perry <tali.perry1@gmail.com>
To: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Cc: "Tomer Maimon" <tmaimon77@gmail.com>,
	devicetree <devicetree@vger.kernel.org>,
	yangyicong@hisilicon.com, "Linux I2C" <linux-i2c@vger.kernel.org>,
	"Benjamin Fair" <benjaminfair@google.com>,
	"OpenBMC Maillist" <openbmc@lists.ozlabs.org>,
	JJLIU0@nuvoton.com, lukas.bulwahn@gmail.com,
	tomer.maimon@nuvoton.com, KWLIU@nuvoton.com, bence98@sch.bme.hu,
	arnd@arndb.de, sven@svenpeter.dev,
	"Jonathan Neuschäfer" <j.neuschaefer@gmx.net>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Avi Fishman" <Avi.Fishman@nuvoton.com>,
	"Tyrone Ting" <warp5tw@gmail.com>,
	"Andy Shevchenko" <andriy.shevchenko@linux.intel.com>,
	semen.protsenko@linaro.org, jie.deng@intel.com,
	avifishman70@gmail.com, "Patrick Venture" <venture@google.com>,
	"Linux Kernel Mailing List" <linux-kernel@vger.kernel.org>,
	"Wolfram Sang" <wsa@kernel.org>,
	kfting@nuvoton.com, "Tali Perry" <tali.perry@nuvoton.com>,
	olof@lixom.net
Subject: Re: [PATCH v1 6/6] i2c: npcm: Support NPCM845
Date: Tue, 8 Feb 2022 09:14:17 +0200	[thread overview]
Message-ID: <CAHb3i=vpFwez+ZzDhHkSxjkios3tyoM2urRpCxOn3vfwzvewog@mail.gmail.com> (raw)
In-Reply-To: <086655b0-b9d2-30ed-1496-47cdc6346003@canonical.com>

>-----Original Message-----
>From: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
>Sent: Monday, February 7, 2022 5:27 PM
>To: Jonathan Neuschäfer <j.neuschaefer@gmx.net>; Tyrone Ting <warp5tw@gmail.com>
>Cc: avifishman70@gmail.com; tmaimon77@gmail.com; tali.perry1@gmail.com; venture@google.com; yuenn@google.com; benjaminfair@google.com; robh+dt@kernel.org; semen.protsenko@linaro.org; yangyicong@hisilicon.com; wsa@kernel.org; jie.deng@intel.com; sven@svenpeter.dev; bence98@sch.bme.hu; lukas.bulwahn@gmail.com; arnd@arndb.de; olof@lixom.net; andriy.shevchenko@linux.intel.com; IS20 Tali Perry <tali.perry@nuvoton.com>; IS20 Avi Fishman <Avi.Fishman@nuvoton.com>; IS20 Tomer Maimon <tomer.maimon@nuvoton.com>; CS20 KWLiu <KWLIU@nuvoton.com>; CS20 JJLiu0 <JJLIU0@nuvoton.com>; CS20 KFTing <KFTING@nuvoton.com>; devicetree@vger.kernel.org; openbmc@lists.ozlabs.org; linux-i2c@vger.kernel.org; linux-kernel@vger.kernel.org
>Subject: Re: [PATCH v1 6/6] i2c: npcm: Support NPCM845
>
>On 07/02/2022 13:00, Jonathan Neuschäfer wrote:
>> Hello,
>>
>> On Mon, Feb 07, 2022 at 02:33:38PM +0800, Tyrone Ting wrote:
>>> From: Tyrone Ting <kfting@nuvoton.com>
>>>
>>> NPCM8XX uses a similar i2c module as NPCM7XX.
>>> The only difference is that the internal HW FIFO is larger.
>>>
>>> Related Makefile and Kconfig files are modified to support as well.
>>>
>>> Fixes: 56a1485b102e ("i2c: npcm7xx: Add Nuvoton NPCM I2C controller
>>> driver")
>>
>> It's not really a bug fix, but rather an additional feature.
>> Therefore, I suggest removing the Fixes tag from this patch.
>>
>>> Signed-off-by: Tyrone Ting <kfting@nuvoton.com>
>>> Signed-off-by: Tali Perry <tali.perry1@gmail.com>
>>> ---
>> [...]
>>>  /* init register and default value required to enable module */
>>>  #define NPCM_I2CSEGCTL 0xE4
>>> +#ifdef CONFIG_ARCH_NPCM7XX
>>>  #define NPCM_I2CSEGCTL_INIT_VAL 0x0333F000
>>> +#else
>>> +#define NPCM_I2CSEGCTL_INIT_VAL 0x9333F000
>>> +#endif
>>
>> This is going to cause problems when someone tries to compile a kernel
>> that runs on both NPCM7xx and NPCM8xx (because the driver will then
>> only work on NPCM7xx).
>
>Yes, good catch.
>
>The NPCM7XX is multiplatform, I guess NPCM8xx will be as well, so this looks like an invalid code. How such code is supposed to work on multiplatform kernel?
>

NPCM7xx and NPCM8xx are very different devices.
They share same driver sources for some of the modules but it's not ABI.
Users cannot compile a single kernel with two separate DTS.
In case of the i2c controller, the npcm7xx has a 16 byte HW FIFO,
and the NPCM8xx has 32 bytes HW FIFO.
This also means that registers fields are slightly different.
For init data we can move it to the DTS, but register field sizes
can't be handled with this approach.



>>
>> And every time another platform is added, this approach will make the
>> code less readable.
>>
>> A more future-proof approach is probably to have a struct with chip-
>> specific data (such as the I2CSECCTL initialization value), which is
>> then selected via the .data field in of_device_id.
>
>
>Best regards,
>Krzysztof

Thanks for the review!
Tali Perry, Nuvoton.

  parent reply	other threads:[~2022-02-08  7:15 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-07  6:33 [PATCH v1 0/6] i2c: npcm: Bug fixes timeout, spurious interrupts Tyrone Ting
2022-02-07  6:33 ` [PATCH v1 1/6] dt-bindings: i2c: npcm: support NPCM845 Tyrone Ting
2022-02-07 11:21   ` Jonathan Neuschäfer
2022-02-07 11:27   ` Krzysztof Kozlowski
2022-02-07 14:22   ` Rob Herring
2022-02-08  8:44     ` warp5tw
2022-02-08  9:03     ` warp5tw
2022-02-11 16:14   ` Rob Herring
2022-02-12  3:19     ` warp5tw
2022-02-07  6:33 ` [PATCH v1 2/6] i2c: npcm: Fix timeout calculation Tyrone Ting
2022-02-07 11:21   ` Krzysztof Kozlowski
2022-02-07 11:27   ` Jonathan Neuschäfer
2022-02-08  9:09     ` warp5tw
2022-02-07  6:33 ` [PATCH v1 3/6] i2c: npcm: Add tx complete counter Tyrone Ting
2022-02-07  6:33 ` [PATCH v1 4/6] i2c: npcm: Handle spurious interrupts Tyrone Ting
2022-02-07 11:40   ` Jonathan Neuschäfer
2022-02-08  9:19     ` warp5tw
2022-02-07  6:33 ` [PATCH v1 5/6] i2c: npcm: Remove own slave addresses 2:10 Tyrone Ting
2022-02-07  6:33 ` [PATCH v1 6/6] i2c: npcm: Support NPCM845 Tyrone Ting
2022-02-07 12:00   ` Jonathan Neuschäfer
2022-02-07 15:26     ` Krzysztof Kozlowski
2022-02-08  7:11       ` tali.perry
2022-02-08  7:14       ` Tali Perry [this message]
2022-02-08  7:59         ` Krzysztof Kozlowski
2022-02-08  8:51           ` Tali Perry
2022-02-08  8:56             ` Krzysztof Kozlowski
2022-02-08  9:22   ` Tali Perry
2022-02-08  9:29     ` Krzysztof Kozlowski
2022-02-08  9:31     ` Avi Fishman
2022-02-08  9:39       ` Krzysztof Kozlowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAHb3i=vpFwez+ZzDhHkSxjkios3tyoM2urRpCxOn3vfwzvewog@mail.gmail.com' \
    --to=tali.perry1@gmail.com \
    --cc=Avi.Fishman@nuvoton.com \
    --cc=JJLIU0@nuvoton.com \
    --cc=KWLIU@nuvoton.com \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=arnd@arndb.de \
    --cc=avifishman70@gmail.com \
    --cc=bence98@sch.bme.hu \
    --cc=benjaminfair@google.com \
    --cc=devicetree@vger.kernel.org \
    --cc=j.neuschaefer@gmx.net \
    --cc=jie.deng@intel.com \
    --cc=kfting@nuvoton.com \
    --cc=krzysztof.kozlowski@canonical.com \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lukas.bulwahn@gmail.com \
    --cc=olof@lixom.net \
    --cc=openbmc@lists.ozlabs.org \
    --cc=robh+dt@kernel.org \
    --cc=semen.protsenko@linaro.org \
    --cc=sven@svenpeter.dev \
    --cc=tali.perry@nuvoton.com \
    --cc=tmaimon77@gmail.com \
    --cc=tomer.maimon@nuvoton.com \
    --cc=venture@google.com \
    --cc=warp5tw@gmail.com \
    --cc=wsa@kernel.org \
    --cc=yangyicong@hisilicon.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).