From: Rob Herring <robh@kernel.org>
To: Alex Elder <elder@riscstar.com>
Cc: andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com,
maxime.chevallier@bootlin.com, rmk+kernel@armlinux.org.uk,
andersson@kernel.org, konradybcio@kernel.org, krzk+dt@kernel.org,
conor+dt@kernel.org, linusw@kernel.org, brgl@kernel.org,
arnd@arndb.de, gregkh@linuxfoundation.org,
Daniel Thompson <daniel@riscstar.com>,
mohd.anwar@oss.qualcomm.com, a0987203069@gmail.com,
alexandre.torgue@foss.st.com, ast@kernel.org,
boon.khai.ng@altera.com, chenchuangyu@xiaomi.com,
chenhuacai@kernel.org, daniel@iogearbox.net, hawk@kernel.org,
hkallweit1@gmail.com, inochiama@gmail.com,
john.fastabend@gmail.com, julianbraha@gmail.com,
livelycarpet87@gmail.com, mcoquelin.stm32@gmail.com, me@ziyao.cc,
prabhakar.mahadev-lad.rj@bp.renesas.com,
richardcochran@gmail.com, rohan.g.thomas@altera.com,
sdf@fomichev.me, siyanteng@cqsoftware.com.cn,
weishangjuan@eswincomputing.com, wens@kernel.org,
netdev@vger.kernel.org, bpf@vger.kernel.org,
linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
linux-gpio@vger.kernel.org,
linux-stm32@st-md-mailman.stormreply.com,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH net-next v2 10/14] dt-bindings: net: toshiba,tc9654-dwmac: add TC9564 Ethernet bridge
Date: Fri, 5 Jun 2026 09:40:32 -0500 [thread overview]
Message-ID: <20260605144032.GA3659201-robh@kernel.org> (raw)
In-Reply-To: <20260605010022.968612-11-elder@riscstar.com>
On Thu, Jun 04, 2026 at 08:00:17PM -0500, Alex Elder wrote:
> From: Daniel Thompson <daniel@riscstar.com>
>
> Add devicetree bindings for the Toshiba TC956x family of Ethernet-AVB/TSN
> bridges.
>
> The TC9564 contains a PCIe switch with one upstream and three downstream
> PCIe ports. The third PCIe downstream port has an attached embedded PCIe
> endpoint, and that endpoint implements two PCIe functions. Each internal
> PCIe function has a Synopsys XGMAC Ethernet interface capable of 10 Gbps
> operation.
>
> The TC9564 also implements an embedded GPIO controller, which exposes
> 10 lines externally. Some platforms use these GPIO lines, so this
> GPIO controller is managed by a separate driver. Other embedded
> peripherals (like a microcontroller, SRAM, and UART) are currently
> unused.
>
> The GPIO controller is managed by registers accessed via MMIO on an
> internal PCIe function's registers.
>
> Signed-off-by: Daniel Thompson <daniel@riscstar.com>
> Signed-off-by: Alex Elder <elder@riscstar.com>
> ---
> .../bindings/net/toshiba,tc9564-dwmac.yaml | 120 ++++++++++++++++++
> MAINTAINERS | 6 +
> 2 files changed, 126 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/net/toshiba,tc9564-dwmac.yaml
>
> diff --git a/Documentation/devicetree/bindings/net/toshiba,tc9564-dwmac.yaml b/Documentation/devicetree/bindings/net/toshiba,tc9564-dwmac.yaml
> new file mode 100644
> index 0000000000000..6e7a63dfcf86a
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/toshiba,tc9564-dwmac.yaml
> @@ -0,0 +1,120 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/toshiba,tc9564-dwmac.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Toshiba TC956x Ethernet-AVB/TSN Controller
> +
> +maintainers:
> + - Alex Elder <elder@riscstar.com>
> + - Daniel Thompson <daniel@riscstar.com>
> +
> +description: |
> + The Toshiba TC9564 (and more generally, TC956x) incorporates a PCIe
> + gen 3 switch with one upstream and three downstream ports. The first
> + two downstream ports are exposed externally, while the third is used
> + by an internal PCIe endpoint. The PCIe endpoint implements two PCIe
> + functions, and attached to each of these is a 10 Gbps capable Synopsys
> + Ethernet controller.
> +
> + The TC956x additionally implements other internal IP blocks, and in
> + particular it implements a GPIO controller. Ten of the 35 GPIO lines
> + implemented are exposed externally and are usable by the platform.
> + It is platform-dependent whether the GPIO function must be exposed,
> + and if it is, PCIe function 0 supplies it.
> +
> + ----------------------------------
> + | Host |
> + ------+...+----------+........+---
> + |i2c| | PCIe |
> + ----------------+...+----------+........+------
> + | TC956x |I2C| |upstream| |
> + | ----- --+--------+--- |
> + | ----- ------ ------- | PCIe switch | |
> + | |SPI| |GPIO| |reset| | | |
> + | ----- ------ |clock| | DS3 DS2 DS1 | |
> + | ------- ---++--++--++-- |
> + | ----- ------ downstream// \\ \\ | downstream
> + | |MCU| |SRAM| /==========/ \\ \===== PCIe port 1
> + | ----- ------ //PCIe port 3 \\ |
> + | || \======= downstream
> + | ----+-----------++-----------+---- | PCIe port 2
> + | | M | internal PCIe endpoint | M | |
> + | | S |------------------------| S | ------ |
> + | | I | PCIe | | PCIe | I | |UART| |
> + | | G |function 0| |function 1| G | ------ |
I don't see nodes for these PCI functions. Boot this platform with
CONFIG_PCI_DYNAMIC_OF_NODES enabled and use the resulting DT node
structure. Anything else is wrong. This will give you the DTS:
dtc -O dts /proc/device-tree
The ethernet nodes should be just these PCI function nodes. You need to
make the DWMAC PCI driver (stmmac_pci.c) bind to those 2 PCI devices.
And really, a DT node for them should be completely optional (unless
there's some power on ctrl needed).
Everything else like SPI, GPIO, UART, etc. should be under the PCIe
switch upstream node in a pci-ep-bus.
> + | | E |----++----| |----++----| E | |
> + | | N | eMAC 0 | | eMAC 1 | N | |
> + --------+.......+------+.....+-----------------
> + |USXGMII| |SGMII|
> + --+.......+-- --+.....+--
> + | ARQ113C | | QEP8121 |
> + | PHY | | PHY |
> + ------------- -----------
> +
> +properties:
> + compatible:
> + enum:
> + - pci1179,0220 # Toshiba TC9564 (a.k.a. Qualcomm QPS615)
> +
> + gpio:
> + type: object
> + description: Embedded GPIO controller
> + $ref: /schemas/gpio/gpio.yaml#
gpio.yaml alone does not define a GPIO controller. How many #gpio-cells
needs to be defined.
Is there no address associated with the controller?
> +
> + ethernet:
> + type: object
> + description: XGMAC Ethernet controller
> + $ref: /schemas/net/ethernet-controller.yaml#
> + properties:
> + mdio:
> + $ref: snps,dwmac.yaml#/properties/mdio
Either all of snps,dwmac.yaml should apply or none of it. Generally, we
only reference whole schema files (OF graph being a notable exception).
> + required:
> + - mdio
> +
> +required:
> + - compatible
> +
> +allOf:
> + - $ref: /schemas/pci/pci-device.yaml#
> + - $ref: /schemas/pci/pci-bus-common.yaml#
These 2 are just pci-pci-bridge.yaml.
Rob
next prev parent reply other threads:[~2026-06-05 14:40 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-05 1:00 [PATCH net-next v2 00/14] net: enable TC956x support Alex Elder
2026-06-05 1:00 ` [PATCH net-next v2 01/14] dt-bindings: net: qca,qca808x: Add regulator properties Alex Elder
2026-06-06 1:01 ` sashiko-bot
2026-06-09 20:38 ` Alex Elder
2026-06-05 1:00 ` [PATCH net-next v2 02/14] net: phy: qcom: qca808x: Add regulator management Alex Elder
2026-06-06 1:01 ` sashiko-bot
2026-06-08 8:07 ` Linus Walleij
2026-06-05 1:00 ` [PATCH net-next v2 03/14] net: pcs: pcs-xpcs-regmap: support XPCS memory-mapped MDIO bus via regmap Alex Elder
2026-06-05 15:35 ` Maxime Chevallier
2026-06-09 19:31 ` Alex Elder
2026-06-06 1:01 ` sashiko-bot
2026-06-09 20:38 ` Alex Elder
2026-06-07 17:47 ` Andrew Lunn
2026-06-05 1:00 ` [PATCH net-next v2 04/14] net: pcs: xpcs: re-order xpcs_pre_config() to update after the reset Alex Elder
2026-06-05 1:00 ` [PATCH net-next v2 05/14] net: pcs: pcs-xpcs: select operating mode for 10G-baseR capable PCS Alex Elder
2026-06-06 1:01 ` sashiko-bot
2026-06-07 17:52 ` Andrew Lunn
2026-06-05 1:00 ` [PATCH net-next v2 06/14] net: stmmac: dma: create a separate dma_device pointer Alex Elder
2026-06-06 1:01 ` sashiko-bot
2026-06-05 1:00 ` [PATCH net-next v2 07/14] net: stmmac: dwxgmac2: Add multi MSI interrupt mode Alex Elder
2026-06-05 1:00 ` [PATCH net-next v2 08/14] net: stmmac: dwxgmac2: Add XGMAC 3.01a support Alex Elder
2026-06-05 1:00 ` [PATCH net-next v2 09/14] net: stmmac: dwxgmac2: export symbols for XGMAC 3.01a DMA Alex Elder
2026-06-05 1:00 ` [PATCH net-next v2 10/14] dt-bindings: net: toshiba,tc9654-dwmac: add TC9564 Ethernet bridge Alex Elder
2026-06-05 2:40 ` Rob Herring (Arm)
2026-06-05 12:24 ` Alex Elder
2026-06-05 14:40 ` Rob Herring [this message]
2026-06-09 21:31 ` Alex Elder
2026-06-06 1:01 ` sashiko-bot
2026-06-05 1:00 ` [PATCH net-next v2 11/14] misc: tc956x_pci: add TC956x/QPS615 support Alex Elder
2026-06-06 1:01 ` sashiko-bot
2026-06-05 1:00 ` [PATCH net-next v2 12/14] gpio: tc956x: " Alex Elder
2026-06-06 1:01 ` sashiko-bot
2026-06-08 11:52 ` Bartosz Golaszewski
2026-06-05 1:00 ` [PATCH net-next v2 13/14] net: stmmac: " Alex Elder
2026-06-05 14:47 ` Rob Herring
2026-06-09 21:31 ` Alex Elder
2026-06-05 16:05 ` Maxime Chevallier
2026-06-09 19:32 ` Alex Elder
2026-06-06 1:01 ` sashiko-bot
2026-06-05 1:00 ` [PATCH net-next v2 14/14] arm64: dts: qcom: qcs6490-rb3gen2: enable TC9564 with a single QCA8081 phy Alex Elder
2026-06-06 1:01 ` sashiko-bot
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=20260605144032.GA3659201-robh@kernel.org \
--to=robh@kernel.org \
--cc=a0987203069@gmail.com \
--cc=alexandre.torgue@foss.st.com \
--cc=andersson@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=arnd@arndb.de \
--cc=ast@kernel.org \
--cc=boon.khai.ng@altera.com \
--cc=bpf@vger.kernel.org \
--cc=brgl@kernel.org \
--cc=chenchuangyu@xiaomi.com \
--cc=chenhuacai@kernel.org \
--cc=conor+dt@kernel.org \
--cc=daniel@iogearbox.net \
--cc=daniel@riscstar.com \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=elder@riscstar.com \
--cc=gregkh@linuxfoundation.org \
--cc=hawk@kernel.org \
--cc=hkallweit1@gmail.com \
--cc=inochiama@gmail.com \
--cc=john.fastabend@gmail.com \
--cc=julianbraha@gmail.com \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=linusw@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-stm32@st-md-mailman.stormreply.com \
--cc=livelycarpet87@gmail.com \
--cc=maxime.chevallier@bootlin.com \
--cc=mcoquelin.stm32@gmail.com \
--cc=me@ziyao.cc \
--cc=mohd.anwar@oss.qualcomm.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=prabhakar.mahadev-lad.rj@bp.renesas.com \
--cc=richardcochran@gmail.com \
--cc=rmk+kernel@armlinux.org.uk \
--cc=rohan.g.thomas@altera.com \
--cc=sdf@fomichev.me \
--cc=siyanteng@cqsoftware.com.cn \
--cc=weishangjuan@eswincomputing.com \
--cc=wens@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.