From: Rob Herring <robh@kernel.org>
To: Vladimir Oltean <vladimir.oltean@nxp.com>
Cc: netdev@vger.kernel.org, Andrew Lunn <andrew@lunn.ch>,
Heiner Kallweit <hkallweit1@gmail.com>,
Russell King <linux@armlinux.org.uk>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
linux-kernel@vger.kernel.org,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
devicetree@vger.kernel.org
Subject: Re: [PATCH net-next 12/15] dt-bindings: net: dsa: sja1105: document the PCS nodes
Date: Thu, 20 Nov 2025 11:30:12 -0600 [thread overview]
Message-ID: <20251120173012.GA1563834-robh@kernel.org> (raw)
In-Reply-To: <20251118190530.580267-13-vladimir.oltean@nxp.com>
On Tue, Nov 18, 2025 at 09:05:27PM +0200, Vladimir Oltean wrote:
> The XPCS blocks in NXP SJA1105 and SJA1110 may be described in the
> device tree, and they follow the same bindings as the other instances
> which are memory-mapped using an APB3 or MCI interface.
>
> Document their compatible string, positioning in the switch's "regs"
> subnode, and the pcs-handle to them.
>
> The "type: object" addition in the ethernet-port node is to suppress
> a dt_binding_check warning that states "node schemas must have a type
> or $ref". This is fine, but I don't completely understand why it started
> being required just now (apparently, the presence of "properties" under
> the port node affects this).
Yes. It's related to quirks in how json-schema works. You would think
'properties' would require the instance to be an object, but no, such a
schema defining properties would pass even for a boolean property. So
requiring 'type: object' is necessary. In this case, we already do that
elsewhere so it's not strictly needed here, but figuring that out is
complicated.
> Cc: Rob Herring <robh@kernel.org>
> Cc: Krzysztof Kozlowski <krzk+dt@kernel.org>
> Cc: Conor Dooley <conor+dt@kernel.org>
> Cc: devicetree@vger.kernel.org
> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
> ---
> .../bindings/net/dsa/nxp,sja1105.yaml | 28 +++++++++++++++++++
> .../bindings/net/pcs/snps,dw-xpcs.yaml | 8 ++++++
> 2 files changed, 36 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml b/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml
> index 607b7fe8d28e..ee1a95d6b032 100644
> --- a/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml
> +++ b/Documentation/devicetree/bindings/net/dsa/nxp,sja1105.yaml
> @@ -85,11 +85,31 @@ properties:
> - compatible
> - reg
>
> + regs:
> + type: object
> + description:
> + Optional container node for peripherals in the switch address space other
> + than the switching IP itself. This node and its children only need to be
> + described if board-specific properties need to be specified, like SerDes
> + lane polarity inversion. If absent, default descriptions are used.
> + additionalProperties: false
> +
> + properties:
> + '#address-cells':
> + const: 1
> + '#size-cells':
> + const: 1
> +
> + patternProperties:
> + "^ethernet-pcs@[0-9a-f]+$":
> + $ref: /schemas/net/pcs/snps,dw-xpcs.yaml#
> +
> patternProperties:
> "^(ethernet-)?ports$":
> additionalProperties: true
> patternProperties:
> "^(ethernet-)?port@[0-9]$":
> + type: object
> allOf:
> - if:
> properties:
> @@ -107,6 +127,14 @@ patternProperties:
> tx-internal-delay-ps:
> $ref: "#/$defs/internal-delay-ps"
>
> + properties:
> + pcs-handle:
> + $ref: /schemas/types.yaml#/definitions/phandle
This already has a type, so drop the $ref.
> + description:
> + Phandle to a PCS device node from the "regs" container.
> + Can be skipped if the PCS description is missing - in that case,
> + the connection is implicit.
> +
> required:
> - compatible
> - reg
> diff --git a/Documentation/devicetree/bindings/net/pcs/snps,dw-xpcs.yaml b/Documentation/devicetree/bindings/net/pcs/snps,dw-xpcs.yaml
> index e77eec9ac9ee..46e4f611f714 100644
> --- a/Documentation/devicetree/bindings/net/pcs/snps,dw-xpcs.yaml
> +++ b/Documentation/devicetree/bindings/net/pcs/snps,dw-xpcs.yaml
> @@ -25,6 +25,14 @@ description:
> properties:
> compatible:
> oneOf:
> + - description:
> + Synopsys DesignWare XPCS in NXP SJA1105 switch (direct APB3 access
> + via SPI) with custom PMA
> + const: nxp,sja1105-pcs
> + - description:
> + Synopsys DesignWare XPCS in NXP SJA1110 switch (indirect APB3 access
> + via SPI) with custom PMA
> + const: nxp,sja1110-pcs
> - description: Synopsys DesignWare XPCS with none or unknown PMA
> const: snps,dw-xpcs
> - description: Synopsys DesignWare XPCS with Consumer Gen1 3G PMA
> --
> 2.34.1
>
next prev parent reply other threads:[~2025-11-20 17:30 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-18 19:05 [PATCH net-next 00/15] Probe SJA1105 DSA children using MFD and dynamic OF nodes Vladimir Oltean
2025-11-18 19:05 ` [PATCH net-next 12/15] dt-bindings: net: dsa: sja1105: document the PCS nodes Vladimir Oltean
2025-11-20 17:30 ` Rob Herring [this message]
2025-11-18 19:05 ` [PATCH net-next 13/15] net: pcs: xpcs-plat: add NXP SJA1105/SJA1110 support Vladimir Oltean
2025-11-18 19:05 ` [PATCH net-next 14/15] net: dsa: sja1105: replace mdiobus-pcs with xpcs-plat driver Vladimir Oltean
2025-11-19 0:41 ` Jakub Kicinski
2025-11-19 9:59 ` Vladimir Oltean
2025-11-19 10:31 ` Andy Shevchenko
2025-11-19 11:25 ` Vladimir Oltean
2025-11-19 16:11 ` Jakub Kicinski
2025-11-19 16:17 ` Andy Shevchenko
2025-11-19 17:23 ` Russell King (Oracle)
2025-11-19 17:39 ` Andy Shevchenko
2025-11-19 18:35 ` Jakub Kicinski
2025-11-19 19:33 ` Andy Shevchenko
2025-11-20 12:32 ` Russell King (Oracle)
2025-11-20 15:00 ` Jakub Kicinski
2025-11-19 11:19 ` kernel test robot
2025-11-19 12:01 ` Vladimir Oltean
2025-11-19 12:03 ` Russell King (Oracle)
2025-11-19 12:05 ` Russell King (Oracle)
2025-11-19 13:28 ` Vladimir Oltean
2025-11-19 12:01 ` kernel test robot
2025-11-20 0:01 ` kernel test robot
2025-11-18 19:05 ` [PATCH net-next 15/15] net: dsa: sja1105: permit finding the XPCS via pcs-handle Vladimir Oltean
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=20251120173012.GA1563834-robh@kernel.org \
--to=robh@kernel.org \
--cc=andrew@lunn.ch \
--cc=conor+dt@kernel.org \
--cc=davem@davemloft.net \
--cc=devicetree@vger.kernel.org \
--cc=edumazet@google.com \
--cc=hkallweit1@gmail.com \
--cc=krzk+dt@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=vladimir.oltean@nxp.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).