devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Herve Codina <herve.codina@bootlin.com>
To: Ayush Singh <ayush@beagleboard.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>,
	David Gibson <david@gibson.dropbear.id.au>,
	Luca Ceresoli <luca.ceresoli@bootlin.com>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	devicetree@vger.kernel.org, Rob Herring <robh@kernel.org>,
	Jason Kridner <jkridner@gmail.com>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	devicetree-compiler@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Andrew Davis <afd@ti.com>
Subject: Re: Device tree representation of (hotplug) connectors: discussion at ELCE
Date: Thu, 11 Sep 2025 14:45:06 +0200	[thread overview]
Message-ID: <20250911144506.51809eb3@bootlin.com> (raw)
In-Reply-To: <36a85af7-75b1-46db-8df8-e83372d33b93@beagleboard.org>

Hi Ayush,

On Thu, 11 Sep 2025 17:45:17 +0530
Ayush Singh <ayush@beagleboard.org> wrote:

> On 9/11/25 15:53, Herve Codina wrote:
> > Hi Geert,
> >
> > On Thu, 11 Sep 2025 10:54:02 +0200
> > Geert Uytterhoeven <geert@linux-m68k.org> wrote:
> >  
> >> Hi Hervé,
> >>
> >> On Thu, 11 Sept 2025 at 10:48, Herve Codina <herve.codina@bootlin.com> wrote:  
> >>> On Wed, 10 Sep 2025 14:33:45 +1000
> >>> David Gibson <david@gibson.dropbear.id.au> wrote:  
> >>>> On Tue, Sep 09, 2025 at 11:41:26AM +0200, Herve Codina wrote:  
> >>>>> Suppose a base board with 2 connectors:
> >>>>>   - connA
> >>>>>   - connB
> >>>>>
> >>>>> Case 1: Addons are independant
> >>>>>                 +--------+
> >>>>>    connA <----> | AddonA |
> >>>>>                 +--------+
> >>>>>                            +--------+
> >>>>>    connB <---------------->| AddonB |
> >>>>>                            +--------+
> >>>>>
> >>>>> With addonA and B two addon board each connected at one connector without any
> >>>>> relationship between addon A and B
> >>>>>
> >>>>> Case 2: Only one Addons using ressources from both connector
> >>>>>
> >>>>>                  +------+
> >>>>>    connA <-----> |Addon |
> >>>>>                  |      |
> >>>>>    connB <-----> |      |
> >>>>>                  +------+  
> >>>> Case 2 is what I'm talking about.  Case 1 is the easy one.
> >>>>     
> >>>>> The addon is connected to both connector and uses ressources from connA and
> >>>>> connB in a dependent manner.
> >>>>>
> >>>>>
> >>>>> The Case 2 can be solved using a connector that described both connA and connB.
> >>>>> Having the split connA and connB is a mechanical point of view.  
> >>>> I don't think that's a good solution, because it means you have to
> >>>> make that decision at the board layer.  If I understand his case
> >>>> correctly, you have a board where you could do either case 1 or case 2
> >>>> at runtime.  We'd want the differences between these cases to only be
> >>>> reflected on the addon device tree, not the base board device tree.  
> >>> Based on my understanding of Geer's use-case, I think decision at base
> >>> board level will be needed.
> >>>
> >>> base board        addon board
> >>>    connA +--------+conn1
> >>>    connB +--------+conn2
> >>>    connC +
> >>>
> >>> Or
> >>>
> >>> base board        addon board
> >>>    connA +--------+conn1
> >>>    connB +    ,---+conn2
> >>>    connC +---'
> >>>
> >>> Or any other combination that would match.
> >>>
> >>>  From the addon board point of view, the only think we can
> >>> say is "me, as an addon board, I need a connector of type 'foo' and a
> >>> connector of type 'bar'".
> >>>
> >>> Also, at base board level, statically defined in the DT
> >>> connA is described (type 'foo'), connB and connC are
> >>> described (type 'bar').  
> >> Correct.
> >>  
> >>> The choice to map connA to the type 'foo' connector expected by the addon
> >>> and the choice to map connB or connC to the type 'bar' connector expected by
> >>> the addon can only be done at runtime and probably with the help of a driver
> >>> that have the knowledge of the 3 connectors.
> >>>
> >>> I have the feeling that the choice of physical connectors to which the addon
> >>> board is connected to is a human choice when the board is connected.  
> >> All these choices and decisions apply to single-connector add-on boards, too.
> >>  
> > Yes, in our use case (me and Luca), each addon has an eeprom, wired exactly the
> > same on all supported addon, which allows to known the exact addon. Also addon
> > insertions and removals are detected using some gpios wired to the connector.
> >
> > Based on that our specific driver handling our specific connector perform the
> > following operations on addon insertion detection:
> >    - load a first addon DT to have access to the eeprom
> >    - Read the eeprom to determine the addon type
> >    - load the DT matching with the addon type
> >
> > This part is of course connector type specific. I mean having an eeprom with
> > some encoded addon type values and hotplug detection with gpio is a part of
> > the contract between the board and the addon (part of connector specification).
> >
> > Best regards,
> > Hervé
> >  
> 
> My usecase is a bit more complicated, since I am trying to model all the 
> available headers on BeagleBoard.org sbcs (particularly PocketBeagle 2 
> initially) as connectors. However, that still ends up being a single 
> connector which can have multiple addon-boards simultaneously instead of 
> the other way around.
> 

In that case, a connector cannot have the state "free" or "used" handled
globally by a core part.

IMHO, each connector drivers should handle this kind of state if relevant.
I mean, in case of "pmods" compatible driver having this state per PMOD
connector could make sense whereas in "beagle-connector" it doesn't.

Also, on my side, with my 2-step DT loading, the first loading should not
consider the connector as 'used'.

All of that is implied by the "contract" between the board and the addon.
It is connector specific and so should be handled by the specific connector
driver itself.

Best regards,
Hervé

  reply	other threads:[~2025-09-11 12:45 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-02  8:57 Device tree representation of (hotplug) connectors: discussion at ELCE Luca Ceresoli
2025-09-04  5:23 ` David Gibson
2025-09-04  5:45   ` Ayush Singh
2025-09-08  4:36     ` David Gibson
2025-09-08  9:01       ` Geert Uytterhoeven
2025-09-09  2:44         ` David Gibson
2025-09-08 12:51       ` Herve Codina
2025-09-09  5:09         ` David Gibson
2025-09-09  9:41           ` Herve Codina
2025-09-09 13:04             ` Geert Uytterhoeven
2025-09-10  4:36               ` David Gibson
2025-09-11 10:11                 ` Herve Codina
2025-09-12  9:40                   ` Luca Ceresoli
2025-09-10  4:33             ` David Gibson
2025-09-11  8:48               ` Herve Codina
2025-09-11  8:54                 ` Geert Uytterhoeven
2025-09-11 10:23                   ` Herve Codina
2025-09-11 12:15                     ` Ayush Singh
2025-09-11 12:45                       ` Herve Codina [this message]
2025-09-11 13:08                         ` Geert Uytterhoeven
2025-09-11 13:58                           ` Herve Codina
2025-09-15  4:51                 ` David Gibson
2025-09-16  6:46                   ` Herve Codina
2025-09-16 10:14                     ` Geert Uytterhoeven
2025-09-16 12:22                       ` Ayush Singh
2025-09-16 13:34                         ` Geert Uytterhoeven
2025-09-16 14:25                           ` Herve Codina
2025-09-16 15:35                           ` Ayush Singh
2025-09-18  3:16                     ` David Gibson
2025-09-18  7:44                       ` Herve Codina
2025-09-18  8:06                         ` Herve Codina
2025-09-19  4:52                         ` David Gibson
2025-09-19  5:17                           ` Ayush Singh
2025-09-19 15:20                             ` Luca Ceresoli
2025-09-23  8:09                             ` David Gibson
2025-09-23  9:48                               ` Herve Codina
2025-09-23 10:29                                 ` Geert Uytterhoeven
2025-09-23 13:36                                   ` Herve Codina
2025-09-23 16:47                                     ` Andrew Davis
2025-09-24  4:17                                       ` David Gibson
2025-09-24  4:11                                   ` David Gibson
2025-09-24 17:03                                     ` Ayush Singh
2025-09-30  4:07                                       ` David Gibson
2025-09-30  7:52                                         ` Geert Uytterhoeven
2025-10-10  7:58                                           ` David Gibson
2025-10-10 16:31                                             ` Herve Codina
2025-09-24  3:54                                 ` David Gibson
2025-09-24 12:31                                   ` Herve Codina
2025-09-29  9:23                                     ` David Gibson
2025-09-30  7:09                                       ` Herve Codina

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=20250911144506.51809eb3@bootlin.com \
    --to=herve.codina@bootlin.com \
    --cc=afd@ti.com \
    --cc=ayush@beagleboard.org \
    --cc=conor+dt@kernel.org \
    --cc=david@gibson.dropbear.id.au \
    --cc=devicetree-compiler@vger.kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=geert@linux-m68k.org \
    --cc=jkridner@gmail.com \
    --cc=krzk+dt@kernel.org \
    --cc=krzk@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luca.ceresoli@bootlin.com \
    --cc=robh@kernel.org \
    --cc=thomas.petazzoni@bootlin.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).