From: Rob Herring <robh@kernel.org>
To: Ayush Singh <ayush@beagleboard.org>
Cc: fabien.parent@linaro.org, d-gole@ti.com,
lorforlinux@beagleboard.org, jkridner@beagleboard.org,
robertcnelson@beagleboard.org, "Andrew Davis" <afd@ti.com>,
"Miguel Ojeda" <ojeda@kernel.org>,
"Alex Gaynor" <alex.gaynor@gmail.com>,
"Boqun Feng" <boqun.feng@gmail.com>,
"Gary Guo" <gary@garyguo.net>,
"Björn Roy Baron" <bjorn3_gh@protonmail.com>,
"Benno Lossin" <benno.lossin@proton.me>,
"Andreas Hindborg" <a.hindborg@kernel.org>,
"Alice Ryhl" <aliceryhl@google.com>,
"Trevor Gross" <tmgross@umich.edu>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Derek Kiernan" <derek.kiernan@amd.com>,
"Dragan Cvetic" <dragan.cvetic@amd.com>,
"Arnd Bergmann" <arnd@arndb.de>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Nishanth Menon" <nm@ti.com>,
"Vignesh Raghavendra" <vigneshr@ti.com>,
"Tero Kristo" <kristo@kernel.org>,
linux-kernel@vger.kernel.org, rust-for-linux@vger.kernel.org,
devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH 0/8] Add generic overlay for MikroBUS addon boards
Date: Wed, 11 Sep 2024 12:02:45 -0500 [thread overview]
Message-ID: <20240911170245.GA915638-robh@kernel.org> (raw)
In-Reply-To: <20240911-mikrobus-dt-v1-0-3ded4dc879e7@beagleboard.org>
On Wed, Sep 11, 2024 at 07:57:17PM +0530, Ayush Singh wrote:
> Hello all,
>
> This is an attempt to add MikroBUS addon support using the approach
> described by Grove connector patch series [0].
>
> The patch series tests out 2 addon boards + pwm and GPIO on the MikroBUS
> connector. The boards used are GPS3 Click (for UART) [1] and Weather
> Click (for I2C) [2]. Additionally, I have tested relative GPIO numbering
> using devicetree nexus nodes [3].
>
> The patch series does not attempt to do any dynamic discovery for 1-wire
> eeprom MikroBUS addon boards, nor does it provide any sysfs entry for
> board addition/removal. The connector driver might include them after
> the basic support is ironed out, but the existing patches for dynamic
> overlays work fine.
>
> The patch series has been tested on BeaglePlay [4].
>
> I will now go over individual parts of the patch series, but for a
> better picture of the approach, it would be best to checkout [0] first.
>
> MikroBUS connector driver
> -------------------------
>
> Just a stub platform driver for now. Will be extended in the future for
> dynamic board discovery using 1-wire eeprom present in some MikroBUS
> addon boards.
>
> While it is a stub driver, disabling it will make the GPIO connector
> nexus node unreachable (any driver attempting to use it will enter
> differed probing). So it is required.
>
> MikroBUS connector Devicetree
> ------------------------------
>
> The connector devicetree defines the MikroBUS GPIO nexus node. This
> allows using pin numbering relative to MikroBUS connector pins in the
> addon boards overlay. Currently, the patch uses a clockwise numbering:
>
> 0: PWM
> 1: INT
> 2: RX
> 3: TX
> 4: SCL
> 5: SDA
> 6: MOSI
> 7: MISO
> 8: SCK
> 9: CS
> 10: RST
> 11: AN
>
> Additionally, in case PWM pin is not using channel 0, a nexus node for pwm
> should also be used and go in the connector devicetree.
>
> MikroBUS connector symbols overlay
> ----------------------------------
>
> To make an overlay generic we need a standard name scheme which we
> use across base boards. For the connector pins the pinmux phandle
> shall be:
>
> <connector-name>_<pin-name>_mux_<pin-function>
>
> For the parent provider phandle, we use a similar naming scheme:
>
> <connector-name>_<pin-name>_<pin-function>
>
> For GPIO controller, I am using `MIKROBUS_GPIO` name since with nexus
> nodes, we do not need to define individual pin gpio controllers.
>
> The string symbols can be replaced with phandles once [5] is accepted.
> That will make connector stacking much simpler.
>
> MikroBUS addon board overlay
> ----------------------------
>
> The patch puts the addon board overlays in their own directory. I am
> using the following naming scheme for MikroBUS addon boards:
>
> <vendor>-<product_id>.dtso
>
> Mikroe [6] lists this for all boards in their website, but I am not sure
> if other vendors have a product_id.
>
> This naming also makes future dynamic discovery easier, since click id
> spec [7] contains vendor_id and product_id in the header.
>
> Usage
> -----
>
> So what does this all look like? Let's take an example of a BeaglePlay
> with one MikroBUS connectors for which we have physically attached a
> Wather click module to the first connector. Doing ahead of time
> command-line DT overlay application:
>
> ./fdtoverlay \
> -o output.dtb \
> -i k3-am625-beagleplay.dtb \
> k3-am625-beagleplay-mikrobus-connector0.dtbo mikroe-5761.dtbo
>
> Open Items
> ----------
>
> - SPI Support:
> Currently SPI dt requires `reg` property to specify the
> chipselect to use. This, makes the SPI device overlay dependent on the
> SPI controller. Thus for SPI support, we need a way to allow defining
> SPI chipselect relative to MikroBUS pins, and not the actual device
> controller.
>
> One possible solution is to introduce something like `named-reg` and
> allow selecting the chipselect by string array. But this probably
> requires more discussion so I have left out SPI support for now.
>
> NOTE: pins other than the CS MikroBUS pin can be used as chipselect.
> See [8].
>
> - Controller symbol duplication
> The current symbol scheme has multiple symbols for the same underlying
> controller (Eg: MIKROBUS_SCL_MUX_I2C_SCL and MIKROBUS_SDA_MUX_I2C_SDA)
> point to the same i2c controller.
>
> I think both of them will always use the same i2c controller, but
> maybe there are some exceptions? So I have left it as it is for this
> patch series. The same thing also applies to UART and SPI.
>
> NOTE: with the use of nexus node for GPIO, the GPIO controller symbol
> will be the same for all pins.
>
> - Nexus node dt-bindings
> I am not quite sure how to deal with the nexus node properties
> (#gpio-cells, gpio-map, gpio-map-mask, gpio-map-pass-thru) since they
> seem to conflict with upstream gpio schema (gpio-controller is a
> dependency of #gpio-cells).
Please submit a fix to dtschema. Either GH PR or patch to
devicetree-spec list.
Rob
next prev parent reply other threads:[~2024-09-11 17:02 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-11 14:27 [PATCH 0/8] Add generic overlay for MikroBUS addon boards Ayush Singh
2024-09-11 14:27 ` [PATCH 1/8] rust: kernel: Add Platform device and driver abstractions Ayush Singh
2024-09-11 14:56 ` Greg Kroah-Hartman
2024-09-11 15:52 ` Ayush Singh
2024-09-11 17:39 ` Danilo Krummrich
2024-09-11 18:05 ` Ayush Singh
2024-09-11 21:52 ` Danilo Krummrich
2024-09-11 17:35 ` Danilo Krummrich
2024-09-11 20:07 ` Greg Kroah-Hartman
2024-09-14 10:11 ` Janne Grunau
2024-09-11 14:27 ` [PATCH 2/8] dt-bindings: connector: Add MikorBUS connector Ayush Singh
2024-09-11 15:26 ` Rob Herring (Arm)
2024-09-11 17:26 ` Rob Herring
2024-09-11 18:00 ` Ayush Singh
2024-09-11 14:27 ` [PATCH 3/8] mikrobus: Add mikrobus driver Ayush Singh
2024-09-11 14:57 ` Greg Kroah-Hartman
2024-09-11 16:02 ` Ayush Singh
2024-09-11 20:03 ` Greg Kroah-Hartman
2024-09-12 13:32 ` Ayush Singh
2024-09-11 15:48 ` Andrew Lunn
2024-09-11 14:27 ` [PATCH 4/8] dts: ti: k3-am625-beagleplay: Enable mikroBUS connector Ayush Singh
2024-09-11 14:27 ` [PATCH 5/8] dts: ti: beagleplay: Add mikrobus connector symbols Ayush Singh
2024-09-11 14:27 ` [PATCH 6/8] addon_boards: Add addon_boards plumbing Ayush Singh
2024-09-11 15:00 ` Greg Kroah-Hartman
2024-09-11 16:09 ` Ayush Singh
2024-09-11 14:27 ` [PATCH 7/8] addon_boards: mikrobus: Add Weather Click Ayush Singh
2024-09-11 14:27 ` [PATCH 8/8] addon_boards: mikrobus: Add GPS3 Click Ayush Singh
2024-09-11 14:58 ` Greg Kroah-Hartman
2024-09-11 15:56 ` Ayush Singh
2024-09-11 20:04 ` Greg Kroah-Hartman
2024-09-12 7:16 ` Ayush Singh
2024-09-12 7:29 ` Dirk Behme
2024-09-12 7:39 ` Greg Kroah-Hartman
2024-09-12 8:17 ` Ayush Singh
2024-09-12 8:50 ` Geert Stappers
2024-09-11 17:02 ` Rob Herring [this message]
2024-09-20 16:51 ` [PATCH 0/8] Add generic overlay for MikroBUS addon boards Ayush Singh
2024-09-13 10:05 ` Alexander Stein
2024-09-13 10:23 ` Ayush Singh
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=20240911170245.GA915638-robh@kernel.org \
--to=robh@kernel.org \
--cc=a.hindborg@kernel.org \
--cc=afd@ti.com \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=arnd@arndb.de \
--cc=ayush@beagleboard.org \
--cc=benno.lossin@proton.me \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=conor+dt@kernel.org \
--cc=d-gole@ti.com \
--cc=derek.kiernan@amd.com \
--cc=devicetree@vger.kernel.org \
--cc=dragan.cvetic@amd.com \
--cc=fabien.parent@linaro.org \
--cc=gary@garyguo.net \
--cc=gregkh@linuxfoundation.org \
--cc=jkridner@beagleboard.org \
--cc=kristo@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lorforlinux@beagleboard.org \
--cc=nm@ti.com \
--cc=ojeda@kernel.org \
--cc=robertcnelson@beagleboard.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=tmgross@umich.edu \
--cc=vigneshr@ti.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).