public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Théo Lebrun" <theo.lebrun@bootlin.com>
To: "Krzysztof Kozlowski" <krzysztof.kozlowski@linaro.org>,
	"Rob Herring" <robh@kernel.org>
Cc: "Linus Walleij" <linus.walleij@linaro.org>,
	"Andi Shyti" <andi.shyti@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-i2c@vger.kernel.org>, <devicetree@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-mips@vger.kernel.org>,
	"Gregory Clement" <gregory.clement@bootlin.com>,
	"Vladimir Kondratiev" <vladimir.kondratiev@mobileye.com>,
	"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
	"Tawfik Bayouk" <tawfik.bayouk@mobileye.com>
Subject: Re: [PATCH 02/13] dt-bindings: i2c: nomadik: add mobileye,eyeq5-i2c bindings and example
Date: Mon, 19 Feb 2024 14:41:24 +0100	[thread overview]
Message-ID: <CZ93KAA53F8G.38AUM6RZGUYY7@bootlin.com> (raw)
In-Reply-To: <cf360cbf-7414-4024-8bdd-d2aba7f048b3@linaro.org>

Hello,

On Sat Feb 17, 2024 at 9:25 AM CET, Krzysztof Kozlowski wrote:
> On 16/02/2024 11:40, Théo Lebrun wrote:
> > On Fri Feb 16, 2024 at 11:33 AM CET, Krzysztof Kozlowski wrote:
> >> On 16/02/2024 11:18, Théo Lebrun wrote:
> >>>
> >>>>> +        mobileye,id:
> >>>>> +          $ref: /schemas/types.yaml#/definitions/uint32
> >>>>> +          description: Platform-wide controller ID (integer starting from zero).
> >>>>
> >>>> instance indexes are a NAK. You can use i2cN aliases if you must.
> >>>>
> >>>> Why do you need it? To access OLB? If so, add cell args to the OLB 
> >>>> phandle instead.
> >>>
> >>> Why we do what we do: I2C controller must write a 2 bit value depending
> >>> on the bus speed. All I2C controllers write into the same register.
> >>
> >> Which register?  Your devices do not share IO address space.
> > 
> > mobileye,olb is a prop with a phandle to a syscon. That syscon contains
> > the register we are interested in.
>
> So exactly what Rob said... I don't understand why you have chosen to go
> with alias.

I had misunderstood Rob's original message. Now that I've done some
tests to use cells I get what was meant. I'd have a follow-up question.
What should the cells contain? I see two options:

 - phandle + I2C controller global index (from 0 thru 4). Then Linux
   (or other) driver know how to map that index to register + mask
   combo. ie:

      i2c2: i2c@500000 {
         compatible = "mobileye,eyeq5-i2c", "arm,primecell";
         reg = <0 0x500000 0x0 0x1000>;
         /* ... */
         mobileye,olb = <&olb 2>;
      };

 - phandle + register offset + mask. ie:

      i2c2: i2c@500000 {
         compatible = "mobileye,eyeq5-i2c", "arm,primecell";
         reg = <0 0x500000 0x0 0x1000>;
         /* ... */
         mobileye,olb = <&olb 0xB8 0x300>; /* phandle + offset + mask */
      };

I would have guessed the second approach was frown upon as DT aren't
meant to contain iomem offsets. However I'm seeing quite a few drivers
using this approach, and no driver doing the first approach. Maybe my
instinct isn't leading me the right way.

See those bindings that use the second approach. They were found because
their drivers use the syscon_regmap_lookup_by_phandle_args() function
call. I've added the file creation date to highlight recent bindings
(that hopefully are closer to the right way).
 - phy/starfive,jh7110-pcie-phy.yaml    2023-06-29T15:51:12+08:00
 - usb/starfive,jh7110-usb.yaml         2023-05-18T19:27:48+08:00
 - net/starfive,jh7110-dwmac.yaml       2023-04-17T18:02:49+08:00
 - phy/qcom,sc8280xp-qmp-pcie-phy.yaml  2022-11-05T15:59:34+01:00
 - sound/snps,designware-i2s.yaml       2022-07-01T20:22:49+01:00
 - pinctrl/canaan,k210-fpioa.yaml       2020-12-13T22:50:44+09:00
 - media/ti,cal.yaml                    2019-11-12T15:53:47+01:00

I know looking at existing drivers/bindings isn't the right way, but I
have no other frame of reference. That's why I'm asking for guidance on
this one.

Thanks,

--
Théo Lebrun, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

------------------------------------------------------------------------


  reply	other threads:[~2024-02-19 13:41 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-15 16:52 [PATCH 00/13] Add Mobileye EyeQ5 support to the Nomadik I2C controller & use hrtimers for timeouts Théo Lebrun
2024-02-15 16:52 ` [PATCH 01/13] dt-bindings: i2c: nomadik: add timeout-usecs property bindings Théo Lebrun
2024-02-16  2:27   ` Rob Herring
2024-02-16  9:16     ` Théo Lebrun
2024-02-16  9:17       ` Krzysztof Kozlowski
2024-02-19 14:06       ` Linus Walleij
2024-02-19 14:29         ` Théo Lebrun
2024-02-21 16:58           ` Théo Lebrun
2024-02-21 17:43             ` Wolfram Sang
2024-02-22 17:14               ` Rob Herring
2024-02-22 19:28                 ` Wolfram Sang
2024-02-23 16:34                   ` Rob Herring
2024-02-26  8:41                     ` Wolfram Sang
2024-02-15 16:52 ` [PATCH 02/13] dt-bindings: i2c: nomadik: add mobileye,eyeq5-i2c bindings and example Théo Lebrun
2024-02-15 19:26   ` Rob Herring
2024-02-16  2:22   ` Rob Herring
2024-02-16 10:18     ` Théo Lebrun
2024-02-16 10:33       ` Krzysztof Kozlowski
2024-02-16 10:40         ` Théo Lebrun
2024-02-17  8:25           ` Krzysztof Kozlowski
2024-02-19 13:41             ` Théo Lebrun [this message]
2024-02-20  9:49               ` Krzysztof Kozlowski
2024-02-15 16:52 ` [PATCH 03/13] dt-bindings: hwmon: lm75: add label property Théo Lebrun
2024-02-16  7:41   ` Krzysztof Kozlowski
2024-02-16  8:00     ` Krzysztof Kozlowski
2024-02-16 10:22       ` Théo Lebrun
2024-02-24 17:30   ` Guenter Roeck
2024-02-26  7:43     ` Krzysztof Kozlowski
2024-02-15 16:52 ` [PATCH 04/13] i2c: nomadik: rename private struct pointers from dev to priv Théo Lebrun
2024-02-19 14:12   ` Linus Walleij
2024-02-15 16:52 ` [PATCH 05/13] i2c: nomadik: simplify IRQ masking logic Théo Lebrun
2024-02-19 14:15   ` Linus Walleij
2024-02-15 16:52 ` [PATCH 06/13] i2c: nomadik: use bitops helpers Théo Lebrun
2024-02-19 14:16   ` Linus Walleij
2024-02-15 16:52 ` [PATCH 07/13] i2c: nomadik: support short xfer timeouts using waitqueue & hrtimer Théo Lebrun
2024-02-19 14:19   ` Linus Walleij
2024-02-19 14:31     ` Théo Lebrun
2024-02-15 16:52 ` [PATCH 08/13] i2c: nomadik: replace jiffies by ktime for FIFO flushing timeout Théo Lebrun
2024-02-19 14:21   ` Linus Walleij
2024-02-19 14:38     ` Théo Lebrun
2024-02-19 14:53       ` Linus Walleij
2024-02-15 16:52 ` [PATCH 09/13] i2c: nomadik: fetch timeout-usecs property from devicetree Théo Lebrun
2024-02-19 14:22   ` Linus Walleij
2024-02-27 12:14   ` Wolfram Sang
2024-02-27 13:38     ` Théo Lebrun
2024-02-28 10:49       ` Wolfram Sang
2024-02-28 13:39         ` Théo Lebrun
2024-02-29  9:25           ` Wolfram Sang
2024-02-29  9:31             ` Théo Lebrun
2024-02-15 16:52 ` [PATCH 10/13] i2c: nomadik: support Mobileye EyeQ5 I2C controller Théo Lebrun
2024-02-19 14:35   ` Linus Walleij
2024-02-19 14:52     ` Théo Lebrun
2024-02-19 16:27       ` Théo Lebrun
2024-02-15 16:52 ` [PATCH 11/13] MIPS: mobileye: eyeq5: add 5 I2C controller nodes Théo Lebrun
2024-02-15 16:52 ` [PATCH 12/13] MIPS: mobileye: eyeq5: add evaluation board I2C temp sensor Théo Lebrun
2024-02-16  7:59   ` Krzysztof Kozlowski
2024-02-15 16:52 ` [PATCH 13/13] MIPS: mobileye: eyeq5: add resets to I2C controllers Théo Lebrun
2024-02-16  7:59   ` Krzysztof Kozlowski
2024-02-16  9:05     ` Théo Lebrun
2024-02-16  9:17       ` Krzysztof Kozlowski
2024-02-16 10:26         ` Théo Lebrun
2024-02-19 14:11 ` [PATCH 00/13] Add Mobileye EyeQ5 support to the Nomadik I2C controller & use hrtimers for timeouts Linus Walleij
2024-02-19 14:22   ` Théo Lebrun

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=CZ93KAA53F8G.38AUM6RZGUYY7@bootlin.com \
    --to=theo.lebrun@bootlin.com \
    --cc=andi.shyti@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregory.clement@bootlin.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=robh@kernel.org \
    --cc=tawfik.bayouk@mobileye.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=tsbogend@alpha.franken.de \
    --cc=vladimir.kondratiev@mobileye.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