From: "Rob Herring (Arm)" <robh@kernel.org>
To: Ayush Singh <ayush@beagleboard.org>
Cc: Jason Kridner <jkridner@beagleboard.org>,
luca.ceresoli@bootlin.com,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
linux-kernel@vger.kernel.org, conor+dt@kernel.org,
Mark Brown <broonie@kernel.org>,
Deepak Khatri <lorforlinux@beagleboard.org>,
Andrew Davis <afd@ti.com>, Dhruva Gole <d-gole@ti.com>,
linux-spi@vger.kernel.org, herve.codina@bootlin.com,
devicetree@vger.kernel.org,
Robert Nelson <robertcnelson@beagleboard.org>
Subject: Re: [PATCH 4/4] devicetree: bindings: spi: Introduce SPI bus extensions
Date: Tue, 29 Jul 2025 08:12:57 -0500 [thread overview]
Message-ID: <175379477596.388256.1787674509168915234.robh@kernel.org> (raw)
In-Reply-To: <20250729-spi-bus-extension-v1-4-b20c73f2161a@beagleboard.org>
On Tue, 29 Jul 2025 15:21:03 +0530, Ayush Singh wrote:
> An SPI bus can be wired to the connector and allows an add-on board to
> connect additional SPI devices to this bus.
>
> Those additional SPI devices could be described as sub-nodes of the SPI
> bus controller node however for hotplug connectors described via device
> tree overlays there is additional level of indirection, which is needed
> to decouple the overlay and the base tree:
>
> --- base device tree ---
>
> spi1: spi@abcd0000 {
> compatible = "xyz,foo";
> spi-bus-extension@0 {
> spi-bus = <&spi_ctrl>;
> };
> ...
> };
>
> spi5: spi@cafe0000 {
> compatible = "xyz,bar";
> spi-bus-extension@0 {
> spi-bus = <&spi_sensors>;
> };
> ...
> };
>
> connector {
> spi_ctrl: spi-ctrl {
> spi-parent = <&spi1>;
> #address-cells = <1>;
> #size-cells = <0>;
> };
>
> spi_sensors: spi-sensors {
> spi-parent = <&spi5>;
> #address-cells = <1>;
> #size-cells = <0>;
> };
> };
>
> --- device tree overlay ---
>
> ...
> // This node will overlay on the spi-ctrl node of the base tree
> spi-ctrl {
> eeprom@50 { compatible = "atmel,24c64"; ... };
> };
> ...
>
> --- resulting device tree ---
>
> spi1: spi@abcd0000 {
> compatible = "xyz,foo";
> spi-bus-extension@0 {
> spi-bus = <&spi_ctrl>;
> };
> ...
> };
>
> spi5: spi@cafe0000 {
> compatible = "xyz,bar";
> spi-bus-extension@0 {
> spi-bus = <&spi_sensors>;
> };
> ...
> };
>
> connector {
> spi_ctrl: spi-ctrl {
> spi-parent = <&spi1>;
> #address-cells = <1>;
> #size-cells = <0>;
>
> device@1 { compatible = "xyz,foo"; ... };
> };
>
> spi_sensors: spi-sensors {
> spi-parent = <&spi5>;
> #address-cells = <1>;
> #size-cells = <0>;
> };
> };
>
> Here spi-ctrl (same goes for spi-sensors) represent the part of SPI bus
> that is on the hot-pluggable add-on. On hot-plugging it will physically
> connect to the SPI adapter on the base board. Let's call the 'spi-ctrl'
> node an "extension node".
>
> In order to decouple the overlay from the base tree, the SPI adapter
> (spi@abcd0000) and the extension node (spi-ctrl) are separate nodes.
>
> The extension node is linked to the SPI bus controller in two ways. The
> first one with the spi-bus-extension available in SPI controller
> sub-node and the second one with the spi-parent property available in
> the extension node itself.
>
> The purpose of those two links is to provide the link in both direction
> from the SPI controller to the SPI extension and from the SPI extension
> to the SPI controller.
>
> Signed-off-by: Ayush Singh <ayush@beagleboard.org>
> ---
> .../devicetree/bindings/spi/spi-controller.yaml | 66 +++++++++++++++++++++-
> 1 file changed, 65 insertions(+), 1 deletion(-)
>
My bot found errors running 'make dt_binding_check' on your patch:
yamllint warnings/errors:
dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/spi/spi-controller.example.dtb: spi@abcd0000 (brcm,bcm2835-spi): 'oneOf' conditional failed, one must be fixed:
'interrupts' is a required property
'interrupts-extended' is a required property
from schema $id: http://devicetree.org/schemas/spi/brcm,bcm2835-spi.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/spi/spi-controller.example.dtb: spi@abcd0000 (brcm,bcm2835-spi): 'clocks' is a required property
from schema $id: http://devicetree.org/schemas/spi/brcm,bcm2835-spi.yaml#
Documentation/devicetree/bindings/spi/spi-controller.example.dtb: /example-2/connector/spi-addon/device@2: failed to match any schema with compatible: ['xyz,foo']
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250729-spi-bus-extension-v1-4-b20c73f2161a@beagleboard.org
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
prev parent reply other threads:[~2025-07-29 13:12 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-29 9:50 [PATCH 0/4] spi: Introduce spi bus extensions Ayush Singh
2025-07-29 9:51 ` [PATCH 1/4] spi: Follow spi-parent when retrieving a controller from node Ayush Singh
2025-07-29 9:51 ` [PATCH 2/4] spi: Move children registration in a dedicated function Ayush Singh
2025-07-29 9:51 ` [PATCH 3/4] spi: Handle spi bus extension Ayush Singh
2025-07-29 12:46 ` Krzysztof Kozlowski
2025-07-29 12:52 ` Ayush Singh
2025-07-29 13:09 ` Krzysztof Kozlowski
2025-07-29 9:51 ` [PATCH 4/4] devicetree: bindings: spi: Introduce SPI bus extensions Ayush Singh
2025-07-29 12:52 ` Krzysztof Kozlowski
2025-07-30 15:45 ` Luca Ceresoli
2025-07-30 18:30 ` Andrew Davis
2025-07-29 13:12 ` Rob Herring (Arm) [this message]
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=175379477596.388256.1787674509168915234.robh@kernel.org \
--to=robh@kernel.org \
--cc=afd@ti.com \
--cc=ayush@beagleboard.org \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=d-gole@ti.com \
--cc=devicetree@vger.kernel.org \
--cc=herve.codina@bootlin.com \
--cc=jkridner@beagleboard.org \
--cc=krzk+dt@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-spi@vger.kernel.org \
--cc=lorforlinux@beagleboard.org \
--cc=luca.ceresoli@bootlin.com \
--cc=robertcnelson@beagleboard.org \
/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