From nobody Sat Feb 7 08:13:53 2026 Received: from pidgin.makrotopia.org (pidgin.makrotopia.org [185.142.180.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A3CB4266565; Sun, 26 Oct 2025 23:48:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.142.180.65 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761522497; cv=none; b=jKuaeJJzTMESie/2SOyPITj4WX/25yaD8Ut9kCJTKud33PH/eIOB9vGuIy4Y7NAUXjaboiDOObhYjPbRzaVgO9u/o157Ji49NrdBnlMO2w+cz5at6TgLULYFFQyUnNACXyRGLZX1wwhE5CBdSar3v7fe556l/NBUOFIArmgW9pM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761522497; c=relaxed/simple; bh=5vJ7EY2mhyYHZnh8K9E/ULcmcCJSOnW6jbY2eY+8tGM=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=WIIevcWbo0/KXZqKo5wwDN/9n+oUCJ6juLIATCP16p7Ifii2PMcVleIrTouL6NFC1tLKKfZY5U5vUgqpFP0meq32vCi+eo3cOgavTKRz7rEwtNlrTvMT4J1/diYQirUVYtdyuw1DHEUAFuQCSHADRNo1werilewQGuO4vzJZ9uk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org; spf=pass smtp.mailfrom=makrotopia.org; arc=none smtp.client-ip=185.142.180.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=makrotopia.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=makrotopia.org Received: from local by pidgin.makrotopia.org with esmtpsa (TLS1.3:TLS_AES_256_GCM_SHA384:256) (Exim 4.98.2) (envelope-from ) id 1vDAT4-000000007ga-0DgB; Sun, 26 Oct 2025 23:48:10 +0000 Date: Sun, 26 Oct 2025 23:48:06 +0000 From: Daniel Golle To: Hauke Mehrtens , Andrew Lunn , Vladimir Oltean , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Simon Horman , Russell King , netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Andreas Schirm , Lukas Stockmann , Alexander Sverdlin , Peter Christen , Avinash Jayaraman , Bing tao Xu , Liang Xu , Juraj Povazanec , "Fanni (Fang-Yi) Chan" , "Benny (Ying-Tsan) Weng" , "Livia M. Rosu" , John Crispin Subject: [PATCH net-next v3 10/12] dt-bindings: net: dsa: lantiq,gswip: add support for MaxLinear GSW1xx switches Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Extend the Lantiq GSWIP device tree binding to also cover MaxLinear GSW1xx switches which are based on the same hardware IP but connected via MDIO instead of being memory-mapped. Add compatible strings for MaxLinear GSW120, GSW125, GSW140, GSW141, and GSW145 switches and adjust the schema to handle the different connection methods with conditional properties. Add MaxLinear GSW125 example showing MDIO-connected configuration. Signed-off-by: Daniel Golle --- v3: * add maxlinear,rx-inverted and maxlinear,tx-inverted properties v2: * remove git conflict left-overs which somehow creeped in * indent example with 4 spaces instead of tabs .../bindings/net/dsa/lantiq,gswip.yaml | 275 +++++++++++++----- 1 file changed, 202 insertions(+), 73 deletions(-) diff --git a/Documentation/devicetree/bindings/net/dsa/lantiq,gswip.yaml b/= Documentation/devicetree/bindings/net/dsa/lantiq,gswip.yaml index dd3858bad8ca..1148fdd0b6bc 100644 --- a/Documentation/devicetree/bindings/net/dsa/lantiq,gswip.yaml +++ b/Documentation/devicetree/bindings/net/dsa/lantiq,gswip.yaml @@ -4,7 +4,12 @@ $id: http://devicetree.org/schemas/net/dsa/lantiq,gswip.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# =20 -title: Lantiq GSWIP Ethernet switches +title: Lantiq GSWIP and MaxLinear GSW1xx Ethernet switches + +description: + Lantiq GSWIP and MaxLinear GSW1xx switches share the same hardware IP. + Lantiq switches are embedded in SoCs and accessed via memory-mapped I/O, + while MaxLinear switches are standalone ICs connected via MDIO. =20 $ref: dsa.yaml# =20 @@ -34,6 +39,108 @@ patternProperties: description: Configure the RMII reference clock to be a clock output rather than an input. Only applicable for RMII mode. + maxlinear,rx-inverted: + type: boolean + description: + Enable RX polarity inversion for SerDes port. + maxlinear,tx-inverted: + type: boolean + description: + Enable TX polarity inversion for SerDes port. + +allOf: + - if: + properties: + compatible: + contains: + enum: + - lantiq,xrx200-gswip + - lantiq,xrx300-gswip + - lantiq,xrx330-gswip + then: + properties: + reg: + minItems: 3 + maxItems: 3 + description: Memory-mapped register regions (switch, mdio, mii) + reg-names: + items: + - const: switch + - const: mdio + - const: mii + mdio: + $ref: /schemas/net/mdio.yaml# + unevaluatedProperties: false + + properties: + compatible: + const: lantiq,xrx200-mdio + + required: + - compatible + gphy-fw: + type: object + properties: + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + + compatible: + items: + - enum: + - lantiq,xrx200-gphy-fw + - lantiq,xrx300-gphy-fw + - lantiq,xrx330-gphy-fw + - const: lantiq,gphy-fw + + lantiq,rcu: + $ref: /schemas/types.yaml#/definitions/phandle + description: phandle to the RCU syscon + + patternProperties: + "^gphy@[0-9a-f]{1,2}$": + type: object + + additionalProperties: false + + properties: + reg: + minimum: 0 + maximum: 255 + description: + Offset of the GPHY firmware register in the RCU regist= er + range + + resets: + items: + - description: GPHY reset line + + reset-names: + items: + - const: gphy + + required: + - reg + + required: + - compatible + - lantiq,rcu + + additionalProperties: false + required: + - reg-names + else: + properties: + reg: + maxItems: 1 + description: MDIO bus address + reg-names: false + gphy-fw: false + mdio: + $ref: /schemas/net/mdio.yaml# + unevaluatedProperties: false =20 maintainers: - Hauke Mehrtens @@ -44,78 +151,11 @@ properties: - lantiq,xrx200-gswip - lantiq,xrx300-gswip - lantiq,xrx330-gswip - - reg: - minItems: 3 - maxItems: 3 - - reg-names: - items: - - const: switch - - const: mdio - - const: mii - - mdio: - $ref: /schemas/net/mdio.yaml# - unevaluatedProperties: false - - properties: - compatible: - const: lantiq,xrx200-mdio - - required: - - compatible - - gphy-fw: - type: object - properties: - '#address-cells': - const: 1 - - '#size-cells': - const: 0 - - compatible: - items: - - enum: - - lantiq,xrx200-gphy-fw - - lantiq,xrx300-gphy-fw - - lantiq,xrx330-gphy-fw - - const: lantiq,gphy-fw - - lantiq,rcu: - $ref: /schemas/types.yaml#/definitions/phandle - description: phandle to the RCU syscon - - patternProperties: - "^gphy@[0-9a-f]{1,2}$": - type: object - - additionalProperties: false - - properties: - reg: - minimum: 0 - maximum: 255 - description: - Offset of the GPHY firmware register in the RCU register ran= ge - - resets: - items: - - description: GPHY reset line - - reset-names: - items: - - const: gphy - - required: - - reg - - required: - - compatible - - lantiq,rcu - - additionalProperties: false + - maxlinear,gsw120 + - maxlinear,gsw125 + - maxlinear,gsw140 + - maxlinear,gsw141 + - maxlinear,gsw145 =20 required: - compatible @@ -130,6 +170,7 @@ examples: reg =3D <0xe108000 0x3100>, /* switch */ <0xe10b100 0xd8>, /* mdio */ <0xe10b1d8 0x130>; /* mii */ + reg-names =3D "switch", "mdio", "mii"; dsa,member =3D <0 0>; =20 ports { @@ -228,3 +269,91 @@ examples: }; }; }; + + - | + #include + + mdio { + #address-cells =3D <1>; + #size-cells =3D <0>; + + switch@1f { + compatible =3D "maxlinear,gsw125"; + reg =3D <0x1f>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + label =3D "lan0"; + phy-handle =3D <&switchphy0>; + phy-mode =3D "internal"; + }; + + port@1 { + reg =3D <1>; + label =3D "lan1"; + phy-handle =3D <&switchphy1>; + phy-mode =3D "internal"; + }; + + port@4 { + reg =3D <4>; + label =3D "wan"; + phy-mode =3D "1000base-x"; + maxlinear,rx-inverted; + managed =3D "in-band-status"; + }; + + port@5 { + reg =3D <5>; + phy-mode =3D "rgmii-id"; + tx-internal-delay-ps =3D <2000>; + rx-internal-delay-ps =3D <2000>; + ethernet =3D <ð0>; + + fixed-link { + speed =3D <1000>; + full-duplex; + }; + }; + }; + + mdio { + #address-cells =3D <1>; + #size-cells =3D <0>; + + switchphy0: switchphy@0 { + reg =3D <0>; + + leds { + #address-cells =3D <1>; + #size-cells =3D <0>; + + led@0 { + reg =3D <0>; + color =3D ; + function =3D LED_FUNCTION_LAN; + }; + }; + }; + + switchphy1: switchphy@1 { + reg =3D <1>; + + leds { + #address-cells =3D <1>; + #size-cells =3D <0>; + + led@0 { + reg =3D <0>; + color =3D ; + function =3D LED_FUNCTION_LAN; + }; + }; + }; + }; + }; + }; --=20 2.51.1