From nobody Fri Oct 3 11:22:56 2025 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2201028489D; Mon, 1 Sep 2025 22:43:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766626; cv=none; b=T2++Oh0lzV2LJOhrZqLgBJaEbCC6zQLXLczDktM4MlYigAEUgn5mBTQ7g3JWYFJOZcAyLhdhc9CT8DouCRXZuAZB7g3yTY1gTV6bixj+st4U4FQ57SGhuRPgBXFuPbLETzPuV1WaU3jZuZJWfS2e9QK19tg9HDgFo7ArLibMnC0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766626; c=relaxed/simple; bh=Xk1uhRMah0qcfyg4xf5mj8mPVVW337J1ks6LiUZ9v1U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=WoNl39pbv3tFLQl0Nyl4scFy4znRYZyIeKqnzZVxMCQeJG1J9Q+Z+x9z/NVT++5e4n2FLKa4sZJ9m6ifbWGo4LIptKfk9BCGQA27GjGhTETgykENFbBxuOR1ZmSTijKnhSmEXCaMASJC/hG6h9epKnlaw8plViM2ZN3Yjw7H1ZE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=nMO2fze3; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="nMO2fze3" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-45b883aa3c9so12370475e9.2; Mon, 01 Sep 2025 15:43:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756766622; x=1757371422; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=icrFmtmO+QecAfNtEL4t8ZYQuv8LDImS3Yehz1f8krU=; b=nMO2fze3F++Avs9ByAsyfAUCSh3btxntWTp4jrnqDRu6Ri3WRboqSFRyjx8TtPOHue lwpF6onKn45y8/70mkZjaNH73ORPtaCtNz9zdYWjtZE27yyAvuIXcXiWkyTlxdQahIKi YfOJYBP1/N8cOD+eL8DzvKCJxVlB1gp9742l1dh1gaB65WHxS/mkgQDil+wDNyaml9vU kcbejli8Oei88zWkvt1cgCvbnEoJmBmHYwADIUCDgl4hXQS4TXEzHbKdRKik7ajKVEaw dJoGGs9C33BlDJ/hAzlWQ5EciD2UYxXzmqZc9zPRzGJsIBfrjlb7hV/5E+04tNZYQCvd I+cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756766622; x=1757371422; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=icrFmtmO+QecAfNtEL4t8ZYQuv8LDImS3Yehz1f8krU=; b=c/mcWDPlEVr/QGDwbZt8ciaaRJBYaeQl2/XOxd7pRKEabQEnhXMcbCe5F7fP97eHK9 rripmNzCvN1BDibi6AguvKxMRtv6B5nxwBum+cxPDPBudH10UMYYVz4FTgBQ0gRkwAe5 xCRZohtlCQDYi7nYvjIDsW1UI/ux+fPye7MutDFNQFKFJAc22rxCRyOJSIH52cZbjgyC 9voh5j5DFMAIJNYkg6Zm5Y9EnMr38X1XPSq9idxV02yF5fA3YHWit/a+c2OhAa2UD6u3 Kx9RT1vl8cRzyMYcowKQ0AMHBQYx6kXydMdGn39vPvfL0V+jUGBTzgGI2mT2/7F47aBw 1QEg== X-Forwarded-Encrypted: i=1; AJvYcCVTXnkfIzVGgvkw2tEjt3+Xt1noBjXicsnr1x+W6/D1deZOw+g2HKCAJOM1Gcd7rJUOWsi+L4AJAPE63lRz@vger.kernel.org, AJvYcCWRU1tXXtdnt/XKLmA30HzcMNavL3qDYzncWP30iR4JhiOdNticbKIGP5GPmBy8x/97PjqtFrPc@vger.kernel.org, AJvYcCX4z3CX1Yj/mdViMaXNa3JABScgLMJ6aenNRK5sUzXyycYEzkYT8KiqE/6jWBFpnYU5Fz2YbBAVbaFt@vger.kernel.org X-Gm-Message-State: AOJu0YxykyTkKmdqITG1nQKR9kxE58UPUD2JY19xU06zrZhcDMTACThh C/y7tVrJZAV+LYLFHQWzimUt39ezLTtiKH1oYPFuj0zx+D2jv72YSRdu X-Gm-Gg: ASbGncvJdwp1sG1VKPtsZrBDWFDGO6y/9uY+xvIO37tSRw5VoJONkrTjqGDf17m4Yhb 8EROT0KbQXSN3pZItJ40EcHSaOBj6lYNeddkbrXMJNklYf9oeLtXuh9E7CxdyOchbVkldoU5RDn FaH9aHZEtn3sOc+VtBHysGyZNJN2Egm1nSMhbLn2FD/B8Cy5TLEEmZUgxT6Yc5RxCTb8N65ZwMK 7mvBgqrURBYfbZgGHZ3ce4XrjmW91IgoTeVeNjuqMcmEEEhUf706my18DZA0JYsNwUOij0pDAZH 69aNJgSskDvdEDM9vQ+f1kwQ6N7Em8+TXZoNLipEb/Ix21RZjFeHyfoKsEEZmP+y69MbddLD5z4 1LAXgOWY/MCMuUqZMcVuJNFyNqiFZyZs3CV3qkdQlQSRgWdUUGDpESk0Z X-Google-Smtp-Source: AGHT+IEratetm3iHmdK/UCMa9q6UyEfirmYo8z3QVRuJQvckPIEePFLg/w62HioMszgStH8bxaQSlg== X-Received: by 2002:a05:600c:1e8b:b0:45b:8324:d2fc with SMTP id 5b1f17b1804b1-45b8549c384mr83812805e9.0.1756766622372; Mon, 01 Sep 2025 15:43:42 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:ca6c:86b2:c8f:84d6]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3d2250115fdsm11532607f8f.40.2025.09.01.15.43.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 15:43:41 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiner Kallweit , Russell King , Philipp Zabel , Geert Uytterhoeven , Magnus Damm , Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH net-next 01/10] dt-bindings: net: pcs: renesas,rzn1-miic: Document RZ/T2H and RZ/N2H SoCs Date: Mon, 1 Sep 2025 23:43:14 +0100 Message-ID: <20250901224327.3429099-2-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Lad Prabhakar Extend the RZN1 MIIC device-tree binding schema to cover the RZ/T2H and RZ/N2H SoCs. These SoCs have a MIIC converter similar to RZ/N1, but with some differences: - RZ/T2H has two reset lines; RZ/N1 has none. - RZ/N1 supports 5 MIIC ports, whereas RZ/T2H supports 4 ports. - On RZ/N1, MIIC ports can be mapped to various endpoints such as RTOS MAC ports, switch ports, EtherCAT ports, SERCOS ports, HSR ports, or fixed PHY ports (covering PHY input indices 0-13). On RZ/T2H, ports can connect to EtherCAT slave ports, Ethernet switch ports, or GMAC ports (mapped to PHY input indices 0-8). - There are register bit differences between the SoCs, and RZ/N1 has additional registers currently unused by the driver. - On RZ/T2H, the switch is connected to GMAC0 whereas on RZ/N1 the switch can be connected to GMAC2/HW-RTOS GMAC. To accommodate these differences, a new generic compatible string `renesas,rzt2h-miic` is introduced for both RZ/T2H and RZ/N2H variants. The DT schema is updated to validate these differences and ensure proper port and reset configurations per SoC. Signed-off-by: Lad Prabhakar --- .../bindings/net/pcs/renesas,rzn1-miic.yaml | 171 +++++++++++++----- include/dt-bindings/net/pcs-rzt2h-miic.h | 23 +++ 2 files changed, 148 insertions(+), 46 deletions(-) create mode 100644 include/dt-bindings/net/pcs-rzt2h-miic.h diff --git a/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.ya= ml b/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml index 2d33bbab7163..832a49877a29 100644 --- a/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml +++ b/Documentation/devicetree/bindings/net/pcs/renesas,rzn1-miic.yaml @@ -4,13 +4,14 @@ $id: http://devicetree.org/schemas/net/pcs/renesas,rzn1-miic.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# =20 -title: Renesas RZ/N1 MII converter +title: Renesas RZ/{N1, N2H, T2H} MII converter =20 maintainers: - Cl=C3=A9ment L=C3=A9ger + - Lad Prabhakar =20 description: | - This MII converter is present on the Renesas RZ/N1 SoC family. It is + This MII converter is present on the Renesas RZ/{N1, N2H, T2H} SoC famil= ies. It is responsible to do MII passthrough or convert it to RMII/RGMII. =20 properties: @@ -21,10 +22,17 @@ properties: const: 0 =20 compatible: - items: - - enum: - - renesas,r9a06g032-miic - - const: renesas,rzn1-miic + oneOf: + - items: + - enum: + - renesas,r9a06g032-miic + - const: renesas,rzn1-miic + + - items: + - enum: + - renesas,r9a09g077-miic # RZ/T2H + - renesas,r9a09g087-miic # RZ/N2H + - const: renesas,rzt2h-miic =20 reg: maxItems: 1 @@ -43,11 +51,20 @@ properties: - const: rmii_ref - const: hclk =20 + resets: + items: + - description: Converter register reset + - description: Converter reset + + reset-names: + items: + - const: rst + - const: crst + renesas,miic-switch-portin: description: MII Switch PORTIN configuration. This value should use on= e of the values defined in dt-bindings/net/pcs-rzn1-miic.h. $ref: /schemas/types.yaml#/definitions/uint32 - enum: [1, 2] =20 power-domains: maxItems: 1 @@ -60,11 +77,11 @@ patternProperties: properties: reg: description: MII Converter port number. - enum: [1, 2, 3, 4, 5] =20 renesas,miic-input: description: Converter input port configuration. This value should= use - one of the values defined in dt-bindings/net/pcs-rzn1-miic.h. + one of the values defined in dt-bindings/net/pcs-rzn1-miic.h for= RZ/N1 SoC + and include/dt-bindings/net/pcs-rzt2h-miic.h for RZ/{T2H, N2H} S= oCs. $ref: /schemas/types.yaml#/definitions/uint32 =20 required: @@ -73,47 +90,109 @@ patternProperties: =20 additionalProperties: false =20 - allOf: - - if: - properties: - reg: - const: 1 - then: - properties: - renesas,miic-input: - const: 0 - - if: +allOf: + - if: + properties: + compatible: + contains: + const: renesas,rzn1-miic + then: + properties: + renesas,miic-switch-portin: + enum: [1, 2] + patternProperties: + "^mii-conv@[0-5]$": properties: reg: - const: 2 - then: - properties: - renesas,miic-input: - enum: [1, 11] - - if: - properties: - reg: - const: 3 - then: - properties: - renesas,miic-input: - enum: [7, 10] - - if: + enum: [1, 2, 3, 4, 5] + resets: false + reset-names: false + allOf: + - if: + properties: + reg: + const: 1 + then: + properties: + renesas,miic-input: + const: 0 + - if: + properties: + reg: + const: 2 + then: + properties: + renesas,miic-input: + enum: [1, 11] + - if: + properties: + reg: + const: 3 + then: + properties: + renesas,miic-input: + enum: [7, 10] + - if: + properties: + reg: + const: 4 + then: + properties: + renesas,miic-input: + enum: [4, 6, 9, 13] + - if: + properties: + reg: + const: 5 + then: + properties: + renesas,miic-input: + enum: [3, 5, 8, 12] + else: + properties: + renesas,miic-switch-portin: + const: 0 + required: + - resets + - reset-names + patternProperties: + "^mii-conv@[0-5]$": properties: reg: - const: 4 - then: - properties: - renesas,miic-input: - enum: [4, 6, 9, 13] - - if: - properties: - reg: - const: 5 - then: - properties: - renesas,miic-input: - enum: [3, 5, 8, 12] + enum: [0, 1, 2, 3] + allOf: + - if: + properties: + reg: + const: 0 + then: + properties: + renesas,miic-input: + enum: [0, 3, 6] + - if: + properties: + reg: + const: 1 + then: + properties: + renesas,miic-input: + enum: [1, 4, 7] + - if: + properties: + reg: + const: 2 + then: + properties: + renesas,miic-input: + enum: [2, 5, 8] + - if: + properties: + reg: + const: 3 + then: + properties: + renesas,miic-input: + const: 1 =20 required: - '#address-cells' diff --git a/include/dt-bindings/net/pcs-rzt2h-miic.h b/include/dt-bindings= /net/pcs-rzt2h-miic.h new file mode 100644 index 000000000000..c1f35fc0f1cd --- /dev/null +++ b/include/dt-bindings/net/pcs-rzt2h-miic.h @@ -0,0 +1,23 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +/* + * Copyright (C) 2025 Renesas Electronics Corporation. + */ + +#ifndef _DT_BINDINGS_PCS_RZT2H_ETHSS +#define _DT_BINDINGS_PCS_RZT2H_ETHSS + +/* + * Refer to the datasheet Internal Connection of Ethernet + * Ports to check the available combination + */ +#define ETHSS_GMAC0_PORT 0 +#define ETHSS_GMAC1_PORT 1 +#define ETHSS_GMAC2_PORT 2 +#define ETHSS_ETHERCAT_PORT0 3 +#define ETHSS_ETHERCAT_PORT1 4 +#define ETHSS_ETHERCAT_PORT2 5 +#define ETHSS_SWITCH_PORT0 6 +#define ETHSS_SWITCH_PORT1 7 +#define ETHSS_SWITCH_PORT2 8 + +#endif --=20 2.51.0 From nobody Fri Oct 3 11:22:56 2025 Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B01F228505C; Mon, 1 Sep 2025 22:43:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766627; cv=none; b=uLtv1BEubYa/Q4gr1WWExxHkoOVmJsiS/KEqUICJ4pGtflN51UtN0uJ0SZ/nQDxItZqVmCwVwuU2xTgOegO/0SqOY9XCahzcx0nnGmw5W3cQxFXurRrT4jp7bz8y8bT5UBYiQepvClKHf62pbtDtEQHP+p5gdBW/GDeGlEHn3Qw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766627; c=relaxed/simple; bh=UI3CRtkshl1AnoCq+kLhk5wvlAEGqmE3Dv37ID9sLIU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hbVK7KfhFDKyJDKOox5WzH+V5tEyZXYHNjOX1HXPR4QoPnZZbo8nKfDktQxkOL/D+Mvsy1MpC5/Utdil7CikExBe3HoqH6CNWc56aMfpdkfxQwEictjWyYFesIjopQMGe4X/NldlSi0aMPH7FuNS2rcdvMZhK8saswYctQZFh/8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=REgN2tW/; arc=none smtp.client-ip=209.85.128.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="REgN2tW/" Received: by mail-wm1-f46.google.com with SMTP id 5b1f17b1804b1-45b7e69570bso23337815e9.0; Mon, 01 Sep 2025 15:43:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756766624; x=1757371424; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LRxsjA1/FhLHHhjYL51G49JTjlgrH5OyGIJZg1vJb5Q=; b=REgN2tW/Nad+b+Mpb3xm9RoT3FtGIVywfLblQSbFdhrpo66Or9ad3qzflhWUqzm4hx JJbXpaV7lsPolvq4Nh1pTvYat2PDaMr96NMth0+RBouVKPPdFC9BSOSv5hKHtlfJ0KGB kAJg2FYfw9TM443muBDXdNp9l+UIAjfrPnP6P0bjiJ8fhOBxQswk+fys3uVt7Tlht81Y kDVVHBDevgeo1uVKR0HgzRuZWZJIetHfz8k+IcRfJ6WjVGoGco+sIXKuZgdj5qR2PXPg Vz1wFyx0i+aIiKsQAqv+yNgrVp8+/dt07ZdcDKsAI5QnGFBgoZ8jJCKBactb8h0hpRV3 jpYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756766624; x=1757371424; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LRxsjA1/FhLHHhjYL51G49JTjlgrH5OyGIJZg1vJb5Q=; b=b+u4UIr5n0vS6XYa88rwrAdxFVhKLq2qUvpJncj2yg6YDNjUc6wUDRiKp7pQnFNh/p 3o1Ry942ZiR+QvuFYVSh2PrDJEqtY/9FF86d30V8gXGyykghbAW08sED9MPYOHTGauWK LvphE1dUcJJnJTj6KtfZ20Qv9eHiOOBabAajfQAPZZ6sBa4gdwtKW/ZzYiG5kHjTUn6n TsAZfQQ8AJEy+aEc2r2jWFfJI+ibtGoMqSULeVlWI52eej7XVv93J2exdHV95xq/H1pL mA9SuPfGumAfSS/FPW8ECNSChpaxVGAa9EHPl9j6mXY8XP3wqTo91t2Xo+toWjYmRhfo rO+A== X-Forwarded-Encrypted: i=1; AJvYcCWxFeD88iLq0BcUk6X+CmrnYzEKbCoEwsNm/FjYR5gG8YRJSySUtrrknmnIFR+ysyY//7ucSQnTj+p7iJjW@vger.kernel.org, AJvYcCXnbikQqAb8nd+ovO1SGKD3D6ENUKNLJbnMplErlBbgStbtVO7Cl3fHO0+TLUXRnGecJB9rBZQtAVCo@vger.kernel.org, AJvYcCXu8TR329yPKEDXLmEz9RJJUNe703CgAsBouTXHe6EAZdWovN7xu0R0fCB0Hax9tvHUzdKG/u3r@vger.kernel.org X-Gm-Message-State: AOJu0YwzAWcWadtfGilxObSuvu4EULPPk4jFFLD2RQrbvIXmkMRwvme5 3xg8UdphxOJV/ZU2Z9wEiGfKoT3T7sag2CZZ5J8ziHvXxPAY5OuEB+Tx X-Gm-Gg: ASbGncvk3Hoh0ENykG9wRXpMSUoac6oFBGbZHT46mFqvds/Pox35QQFCnOHz63v/kQT tM6qbUvOEp6FOryzqvw0GEYZoNMi94i6E2T7j3s/GpTlyNGUeCQpjd1iskuKAiy4GZ9O4R6jngQ jJAEqCCMIZ44Xw5PyQJhql5eKMQ3Q1pCMU+flkEOIz5rZsWOSH5hQuU8MpaEVahnw14e2PA3hTh 8k4N2i/xFqEHgyLOWx6IoX4sTqLzhJr56nsOkHHVohbEprqzphDffdbXlfYUbRGu2aMQnRLlUmD zxdpOS5BSFmErOs8kSoHwyEx6RIX1lKRYBpi0D5KEEN6SDvs4W+1Cyvt0GNuOKUIAWOmPEqTbD2 aE8juP/maWXHtvDFo21Zi+mBsIyGYUbTUlBoTPu1U2n6FCFE6MscPrr/C X-Google-Smtp-Source: AGHT+IHb4kHTEmj2bQZ2Om2KAmxngtW1m5OIbnlXWgqEHp6W75PVRI0ojABGojtcwHGw/Dt9iptNEw== X-Received: by 2002:a05:600c:19cc:b0:455:ed48:144f with SMTP id 5b1f17b1804b1-45b8c85802fmr42594855e9.14.1756766623972; Mon, 01 Sep 2025 15:43:43 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:ca6c:86b2:c8f:84d6]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3d2250115fdsm11532607f8f.40.2025.09.01.15.43.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 15:43:42 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiner Kallweit , Russell King , Philipp Zabel , Geert Uytterhoeven , Magnus Damm , Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH net-next 02/10] net: pcs: rzn1-miic: Drop trailing comma from of_device_id table Date: Mon, 1 Sep 2025 23:43:15 +0100 Message-ID: <20250901224327.3429099-3-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Remove the trailing comma after the sentinel entry in the of_device_id match table. Signed-off-by: Lad Prabhakar --- drivers/net/pcs/pcs-rzn1-miic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/pcs/pcs-rzn1-miic.c b/drivers/net/pcs/pcs-rzn1-mii= c.c index ce73d9474d5b..c1bd7cd58478 100644 --- a/drivers/net/pcs/pcs-rzn1-miic.c +++ b/drivers/net/pcs/pcs-rzn1-miic.c @@ -529,7 +529,7 @@ static void miic_remove(struct platform_device *pdev) =20 static const struct of_device_id miic_of_mtable[] =3D { { .compatible =3D "renesas,rzn1-miic" }, - { /* sentinel */ }, + { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, miic_of_mtable); =20 --=20 2.51.0 From nobody Fri Oct 3 11:22:56 2025 Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D5354285CA2; Mon, 1 Sep 2025 22:43:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766628; cv=none; b=bwasbQjjddQdBaZo3pG4dMMxXB9gAm78mP4hUzK2p4BTiDGaM7J7TGhPJetjScWqciJnKhwB0c1jGRLm9NcF7ii4rRYvIWhOQFDnVpDULPZ1Tvg6d0LodRs0rETPTrHxi2iZCNB+H7JhYOGNeIHHvhXuH8lwepsdTeO1c86Xobw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766628; c=relaxed/simple; bh=wlVXDxSWItE7cOaNVUxlk5yJDRsf2onCqWK6Au+TPRY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=uekvTy0ZuVzBDlfU28jsyhywaAufY6oOKsVTju8FAxZl4NVBpghxsEE2jScdttLv+Lo1BzibD2F1bm25+u/vGXv+kTBQyiAoxZjmDv1tlNJKzxBthh0x1VuVRduyFgjeua2KV1HtLSvD6p8NRzGe/JaHA1A6wiyMDTDGQLyEFtY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=PSHoydf4; arc=none smtp.client-ip=209.85.221.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="PSHoydf4" Received: by mail-wr1-f43.google.com with SMTP id ffacd0b85a97d-3da4c14a5f9so22805f8f.0; Mon, 01 Sep 2025 15:43:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756766625; x=1757371425; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Dpf1HRIReBhclGaGoeU5lABskc0cPSkWsjSryTq94ho=; b=PSHoydf4a32M+9wVR96ZCoFkOrk+0oVJiHyStsQn10nr5zPStMQF1F4K4/y6mAvlYB SZA1LXD5FWNaSqZUh/tt+tp/Vr9vn9Us3Q/V2uleshZcQyN2T1ahNlm8M0IZVr0Yr6Qn Dem98WOCcSWEXpG84hIPZrfXS9TMBgbq7znjBmArcM5psz5V0xDktX53kyC7oev5KImA Kj4W9XMIMZ0mCbVeW4NaWyWbWTMvMr6rnTqdqq7Vvng8Go8R6xTH6AeZtDh0igYxxQGr /YKkrPoh2peIxknvSwJ1OSPN16mUhBqE/Ypz1Iqdsb7zfI7sxGRKn/ImDCXT5faIP2wi vPtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756766625; x=1757371425; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Dpf1HRIReBhclGaGoeU5lABskc0cPSkWsjSryTq94ho=; b=ELiGg8qRl8M6r0PmH5eG+Ggk7RO7QLAJHfz6/aWe/YBfcBNeIAx2aXP+cb6URqsG/v PhZsSaFsWN/XEKicrb6muljtJHSqkeN51IonoF4DBiDSrvypEnVVG+YYgtlB2X7JWUvo epI7r3b+qBAWDrwsgNUKm+AtIbEciOEsRnbHAYE0evPh2X5vM9JcBaic/wwv1oMjUX8F a5nwhQKyU7xhc24kndmN25wM41Hnua50Q3jT/71d/k26jov/0HvHcJRxMezY4Ffkp/sx 6o/2uPKruR4GLzfz7E22g94y63lN1uDFlZXcqbBOEAaJCoffduBR4EelgEz8ICXaqSZK hUtQ== X-Forwarded-Encrypted: i=1; AJvYcCU8zshN//TYrS1rds4rHN5eCltuSlFRHBZndC5YRFgQBctQP9J9sxWj9r9KfhuGscJjqGDM7NqSSRWW@vger.kernel.org, AJvYcCXLSQtBQ3zPUZCqa+QykvrhG7MvSRBMPqYwSxx8E0ngMbNZsng20cgO7GABQNMWqB621Pi5Z+TIdP3fyv4R@vger.kernel.org, AJvYcCXXiqkr+CTa9iFO6ZHVPbfn2kWiymrQKa4v1MGehBWq1ilZSAT00hYdZXEZ19W7UyKlHB3ZmGZx@vger.kernel.org X-Gm-Message-State: AOJu0Yys9KVOnIZy+r+L0Nji6EAqwU6nrg8VfPCvzhjcj1spL3bDMvq0 H07j/X5mKmJj4IEVRpLofUbHZdHNpZO/CvUzL8b2i2zXRfwVlAWP/DUC X-Gm-Gg: ASbGncv5VGorpgls9O4UKOisKzSxh81yUPTMQRCm4hvSMllmdZgPYZJTBcPzbo5Tp03 5fT0kXPNkEJN+Wr9WdpobJY63JdstAxqvtuH1PR+s6/CqAt6BP4Q9gnWwxuV/wjUp/8AoxvBWCn qp8kwZ2uaziynD/5IPwATV82lMEanFAoKlVTPsTG2o3hiPNXLYCWgtlWnyIMbk7JEBz0hvHdfaC 4Ijf3bsn0QuXEacJkTtBekVc0MkKkf3/kjarvDN0MnHdasnIhzuM54N0A4DSFfZQ7Bs52TIqR7R oyBkBhJKSqWyTw5NH6fgHNfLmohkpGHDy/p65wnoTfOB5M03hQfyEeNidPqhTPccPPKVQzPK1ck dqqzIxMgOQW6egQJSbTGM7E8ftxTe/1JDebBIcp7UOW7/Vw== X-Google-Smtp-Source: AGHT+IFQ5s2CZF43iW9WLb+4YZLcpDojaIyp2A+g1jFQJ0oPOYqt2voW7VHUkGCc1JKAEI34+vNjHg== X-Received: by 2002:a05:6000:144b:b0:3d9:70cc:6dc1 with SMTP id ffacd0b85a97d-3d970cc6f4emr1191422f8f.6.1756766625104; Mon, 01 Sep 2025 15:43:45 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:ca6c:86b2:c8f:84d6]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3d2250115fdsm11532607f8f.40.2025.09.01.15.43.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 15:43:44 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiner Kallweit , Russell King , Philipp Zabel , Geert Uytterhoeven , Magnus Damm , Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH net-next 03/10] net: pcs: rzn1-miic: Add missing include files Date: Mon, 1 Sep 2025 23:43:16 +0100 Message-ID: <20250901224327.3429099-4-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable From: Lad Prabhakar The pcs-rzn1-miic driver makes use of ARRAY_SIZE(), BIT() and GENMASK() macros but does not explicitly include the headers where they are defined. Add the missing and includes. Signed-off-by: Lad Prabhakar --- drivers/net/pcs/pcs-rzn1-miic.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/pcs/pcs-rzn1-miic.c b/drivers/net/pcs/pcs-rzn1-mii= c.c index c1bd7cd58478..adf4b5e4741c 100644 --- a/drivers/net/pcs/pcs-rzn1-miic.c +++ b/drivers/net/pcs/pcs-rzn1-miic.c @@ -5,6 +5,8 @@ * Cl=C3=A9ment L=C3=A9ger */ =20 +#include +#include #include #include #include --=20 2.51.0 From nobody Fri Oct 3 11:22:56 2025 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 17180286897; Mon, 1 Sep 2025 22:43:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766630; cv=none; b=jnCAOmWKRppwGSPUpiYiupGCKLvX/wVaULQbsl1OFZc7kFUk7ivNQvGto8Lk5ajNjG+fiVWHxB/Pkhvx6HPI3qE1zRJxLf81JsrDmQ/Diq/9BtHtGS99ehT1M2CJtv4tjTz7BpXB2hy3NLVcGT3Z/CzoxQxbqhKr7j2DZ0EqHB8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766630; c=relaxed/simple; bh=VFrfmfLM6ot8NnsD6XJ9M+cxB3rtEQHdLVqe3yeCg6c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SUYPPI4UvvYyLGlVyTC+X4RcL0Fh/+Nna3XpZyxSJv2YDwmbmAXgRxxyOeiviJamwhxS2NYyxwIIgS1HqHvDsuka8ys+eqN/Ver0cmkzQ0RllX0O44KPc0FnOr9ptepDGFhExmqo+2JgA/1lMNt7Z20dFxuq4JbmoK0m+vWUz38= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=N7kZ4bT6; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="N7kZ4bT6" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-45b627ea685so40775385e9.1; Mon, 01 Sep 2025 15:43:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756766626; x=1757371426; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ngY+Jnprj5GUpvEIlbRysZTvfanFErZK6rGStM8x9Cw=; b=N7kZ4bT6+hmX28Pp9nbdJiVVh/k210k76tzHM/E+2o1RZdidepoYacui8iedVInGHs UtY9EUOKmqxYf2dnY7o7BOlz+l3/xG1DrzD+ZhBYL55atcxWXBRpu/kH20PtY0izrMcy EcBOzZHim0Rx2jRxNaVPahpBSq1Knn7Qr+/5kJcSVDgjr6XhGTy5LIUdwsiVKxphC8lF GCtCRkcYemg/aR3gAMTGjz+XoiVGanipgTs33ZWSa9DHHCHuZMi+fDyqsKWsUyExPi/h UpDX9tH64REEWfzOL3qY2AP+G/ROAstq0GNBB42m62JUmXBst1e73AXWhHrhcdEux5Ng 6oiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756766626; x=1757371426; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ngY+Jnprj5GUpvEIlbRysZTvfanFErZK6rGStM8x9Cw=; b=jssUntWX4W8VmCQzLFdZA80xhzEHTjIbMiN2mfQ/uPxW16cjJNH3VHICSefKF1/TOw r3tuL0Fzp5JSWzDJnqotgoX8xBJp2GxzHK5xrPxXLGVXX2vl8YFhe2Ru4dunjW+RfHtI RzHUKEofM6Ht+7t4dRckzieL5d67caHSumRX2zrpxHa/FBQVFjLcQc5X7hLg2c/Q3fc3 Tl4XWxvJt80dzq7ALdG2IQCofo/fo+L//eSPzzRtWxNGqcf7MB+jEO3a80RCBDWMqmEh F+3QQY5dkLWvPBjX4wLbXcgs6wU36hoVai74tQ8DWalGP7ldfOkfYw//MopAB4mTrvgZ CgMg== X-Forwarded-Encrypted: i=1; AJvYcCUAeJXehJcQdC8Xky3s11jfmc+29Qlww8RN7fJCaRcEbqOmF9q1bA5C6o6VYDm3h5leJbq1hGTp@vger.kernel.org, AJvYcCWkj7+tyKn29BMUzrGhcKbmjBKhfP7NBvkUFMYy3Gx3GmOXGbrm1KDcYP9Fl9Yhls0QcPifBh9lAMQprKSv@vger.kernel.org, AJvYcCX5kVrYLVVsTkSCtP5457X5yWYcOf63Vk2DbDvKEW/jxvjnSMHgsUft8CkCPtrn5JfNoSdLgHkztcx5@vger.kernel.org X-Gm-Message-State: AOJu0Yw+56N24igaS6Y6NKcKNNQISS9L/Tdtq+tOODwtGF+Lz4f09C28 YJ4UIM74W5N6CZcZru1Irx0+yNCXa+oXJrDYJAfcfV95qLcrYMf8pE4r X-Gm-Gg: ASbGncuk0OfiTPjVDMUOAjkv2M2h1lC2N5wYhb+TUwqesgm16cnFID/VM8q3Wz+EI15 JJPvte7XRJTQShWkduw46y20tVcbWqUr4LlIBCI4aTveyKpidfnT5O48Q13Twt1rJjaa3Rm2ixO Tt5oHT68e88j/Rh6Mu9xqPzlScnvtR8LhwYNDUlx8/ZkneMiOku7NK1pOmQ547EtqYfMT5jwdcv 9jgVqA4Yf5LzUEzw5XbaQujE/WbB4a6S3onKDJpKvXLlokPZiY9tDnChBS3+vclgRiTildLF1KC owwXEhEGY1L762ypgDTCSVxMFyfk/weUHDOLvKNhscJag6olrVPNwHfUtoahJQAD5KsjNjish7p e3PUOhr7PG16KpCroBWp20Q+sTiVRt4I8T8gWF8hkoBCPiw== X-Google-Smtp-Source: AGHT+IHI7+e/rkZCbsgNzg3OTnNCgNvM2bCxCtvd98W8laZf/MY26gULIy4PaLlV19mrC9arM0Vrgw== X-Received: by 2002:a05:600c:5303:b0:45b:86ee:415f with SMTP id 5b1f17b1804b1-45b86ee43ebmr73599705e9.6.1756766626239; Mon, 01 Sep 2025 15:43:46 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:ca6c:86b2:c8f:84d6]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3d2250115fdsm11532607f8f.40.2025.09.01.15.43.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 15:43:45 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiner Kallweit , Russell King , Philipp Zabel , Geert Uytterhoeven , Magnus Damm , Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH net-next 04/10] net: pcs: rzn1-miic: Move configuration data to SoC-specific struct Date: Mon, 1 Sep 2025 23:43:17 +0100 Message-ID: <20250901224327.3429099-5-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Move configuration data such as the modctrl matching table, converter count, and string lookup tables into the SoC-specific miic_of_data structure. Update the helper functions to use the per-SoC configuration instead of relying on fixed-size arrays or global tables, and allocate DT configuration memory dynamically. This refactoring keeps the existing RZ/N1 support intact while preparing the driver to handle the different configuration requirements of the RZ/T2H SoC. Signed-off-by: Lad Prabhakar --- drivers/net/pcs/pcs-rzn1-miic.c | 107 ++++++++++++++++++++++---------- 1 file changed, 75 insertions(+), 32 deletions(-) diff --git a/drivers/net/pcs/pcs-rzn1-miic.c b/drivers/net/pcs/pcs-rzn1-mii= c.c index adf4b5e4741c..724bac86cf8c 100644 --- a/drivers/net/pcs/pcs-rzn1-miic.c +++ b/drivers/net/pcs/pcs-rzn1-miic.c @@ -16,6 +16,7 @@ #include #include #include +#include #include =20 #define MIIC_PRCMD 0x0 @@ -50,7 +51,7 @@ =20 #define MIIC_MAX_NR_PORTS 5 =20 -#define MIIC_MODCTRL_CONF_CONV_NUM 6 +#define MIIC_MODCTRL_CONF_CONV_MAX 6 #define MIIC_MODCTRL_CONF_NONE -1 =20 /** @@ -58,11 +59,13 @@ * See section 8.2.1 of manual. * @mode_cfg: Configuration value for convctrl * @conv: Configuration of ethernet port muxes. First index is SWITCH_PORT= IN, - * then index 1 - 5 are CONV1 - CONV5. + * then index 1 - 5 are CONV1 - CONV5 for RZ/N1 SoCs. In case + * of RZ/T2H and RZ/N2H SoCs, the first index is SWITCH_PORTIN then + * index 0 - 3 are CONV0 - CONV3. */ struct modctrl_match { u32 mode_cfg; - u8 conv[MIIC_MODCTRL_CONF_CONV_NUM]; + u8 conv[MIIC_MODCTRL_CONF_CONV_MAX]; }; =20 static struct modctrl_match modctrl_match_table[] =3D { @@ -111,7 +114,7 @@ static const char * const conf_to_string[] =3D { [MIIC_HSR_PORTB] =3D "HSR_PORTB", }; =20 -static const char *index_to_string[MIIC_MODCTRL_CONF_CONV_NUM] =3D { +static const char * const index_to_string[] =3D { "SWITCH_PORTIN", "CONV1", "CONV2", @@ -125,11 +128,33 @@ static const char *index_to_string[MIIC_MODCTRL_CONF_= CONV_NUM] =3D { * @base: base address of the MII converter * @dev: Device associated to the MII converter * @lock: Lock used for read-modify-write access + * @of_data: Pointer to OF data */ struct miic { void __iomem *base; struct device *dev; spinlock_t lock; + const struct miic_of_data *of_data; +}; + +/** + * struct miic_of_data - OF data for MII converter + * @match_table: Matching table for convctrl configuration + * @match_table_count: Number of entries in the matching table + * @conf_conv_count: Number of entries in the conf_conv array + * @conf_to_string: String representations of the configuration values + * @conf_to_string_count: Number of entries in the conf_to_string array + * @index_to_string: String representations of the index values + * @index_to_string_count: Number of entries in the index_to_string array + */ +struct miic_of_data { + struct modctrl_match *match_table; + u8 match_table_count; + u8 conf_conv_count; + const char * const *conf_to_string; + u8 conf_to_string_count; + const char * const *index_to_string; + u8 index_to_string_count; }; =20 /** @@ -398,12 +423,11 @@ static int miic_init_hw(struct miic *miic, u32 cfg_mo= de) return 0; } =20 -static bool miic_modctrl_match(s8 table_val[MIIC_MODCTRL_CONF_CONV_NUM], - s8 dt_val[MIIC_MODCTRL_CONF_CONV_NUM]) +static bool miic_modctrl_match(s8 *table_val, s8 *dt_val, u8 count) { int i; =20 - for (i =3D 0; i < MIIC_MODCTRL_CONF_CONV_NUM; i++) { + for (i =3D 0; i < count; i++) { if (dt_val[i] =3D=3D MIIC_MODCTRL_CONF_NONE) continue; =20 @@ -414,53 +438,57 @@ static bool miic_modctrl_match(s8 table_val[MIIC_MODC= TRL_CONF_CONV_NUM], return true; } =20 -static void miic_dump_conf(struct device *dev, - s8 conf[MIIC_MODCTRL_CONF_CONV_NUM]) +static void miic_dump_conf(struct miic *miic, s8 *conf) { + const struct miic_of_data *of_data =3D miic->of_data; const char *conf_name; int i; =20 - for (i =3D 0; i < MIIC_MODCTRL_CONF_CONV_NUM; i++) { + for (i =3D 0; i < of_data->conf_conv_count; i++) { if (conf[i] !=3D MIIC_MODCTRL_CONF_NONE) - conf_name =3D conf_to_string[conf[i]]; + conf_name =3D of_data->conf_to_string[conf[i]]; else conf_name =3D "NONE"; =20 - dev_err(dev, "%s: %s\n", index_to_string[i], conf_name); + dev_err(miic->dev, "%s: %s\n", of_data->index_to_string[i], conf_name); } } =20 -static int miic_match_dt_conf(struct device *dev, - s8 dt_val[MIIC_MODCTRL_CONF_CONV_NUM], - u32 *mode_cfg) +static int miic_match_dt_conf(struct miic *miic, s8 *dt_val, u32 *mode_cfg) { + const struct miic_of_data *of_data =3D miic->of_data; struct modctrl_match *table_entry; int i; =20 - for (i =3D 0; i < ARRAY_SIZE(modctrl_match_table); i++) { - table_entry =3D &modctrl_match_table[i]; + for (i =3D 0; i < of_data->match_table_count; i++) { + table_entry =3D &of_data->match_table[i]; =20 - if (miic_modctrl_match(table_entry->conv, dt_val)) { + if (miic_modctrl_match(table_entry->conv, dt_val, + miic->of_data->conf_conv_count)) { *mode_cfg =3D table_entry->mode_cfg; return 0; } } =20 - dev_err(dev, "Failed to apply requested configuration\n"); - miic_dump_conf(dev, dt_val); + dev_err(miic->dev, "Failed to apply requested configuration\n"); + miic_dump_conf(miic, dt_val); =20 return -EINVAL; } =20 -static int miic_parse_dt(struct device *dev, u32 *mode_cfg) +static int miic_parse_dt(struct miic *miic, u32 *mode_cfg) { - s8 dt_val[MIIC_MODCTRL_CONF_CONV_NUM]; - struct device_node *np =3D dev->of_node; + struct device_node *np =3D miic->dev->of_node; struct device_node *conv; + int port, ret; + s8 *dt_val; u32 conf; - int port; =20 - memset(dt_val, MIIC_MODCTRL_CONF_NONE, sizeof(dt_val)); + dt_val =3D kmalloc_array(miic->of_data->conf_conv_count, sizeof(*dt_val),= GFP_KERNEL); + if (!dt_val) + return -ENOMEM; + + memset(dt_val, MIIC_MODCTRL_CONF_NONE, sizeof(*dt_val)); =20 if (of_property_read_u32(np, "renesas,miic-switch-portin", &conf) =3D=3D = 0) dt_val[0] =3D conf; @@ -473,7 +501,10 @@ static int miic_parse_dt(struct device *dev, u32 *mode= _cfg) dt_val[port] =3D conf; } =20 - return miic_match_dt_conf(dev, dt_val, mode_cfg); + ret =3D miic_match_dt_conf(miic, dt_val, mode_cfg); + kfree(dt_val); + + return ret; } =20 static int miic_probe(struct platform_device *pdev) @@ -483,16 +514,18 @@ static int miic_probe(struct platform_device *pdev) u32 mode_cfg; int ret; =20 - ret =3D miic_parse_dt(dev, &mode_cfg); - if (ret < 0) - return ret; - miic =3D devm_kzalloc(dev, sizeof(*miic), GFP_KERNEL); if (!miic) return -ENOMEM; =20 - spin_lock_init(&miic->lock); + miic->of_data =3D of_device_get_match_data(dev); miic->dev =3D dev; + + ret =3D miic_parse_dt(miic, &mode_cfg); + if (ret < 0) + return ret; + + spin_lock_init(&miic->lock); miic->base =3D devm_platform_ioremap_resource(pdev, 0); if (IS_ERR(miic->base)) return PTR_ERR(miic->base); @@ -529,8 +562,18 @@ static void miic_remove(struct platform_device *pdev) pm_runtime_put(&pdev->dev); } =20 +static struct miic_of_data rzn1_miic_of_data =3D { + .match_table =3D modctrl_match_table, + .match_table_count =3D ARRAY_SIZE(modctrl_match_table), + .conf_conv_count =3D MIIC_MODCTRL_CONF_CONV_MAX, + .conf_to_string =3D conf_to_string, + .conf_to_string_count =3D ARRAY_SIZE(conf_to_string), + .index_to_string =3D index_to_string, + .index_to_string_count =3D ARRAY_SIZE(index_to_string), +}; + static const struct of_device_id miic_of_mtable[] =3D { - { .compatible =3D "renesas,rzn1-miic" }, + { .compatible =3D "renesas,rzn1-miic", .data =3D &rzn1_miic_of_data }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, miic_of_mtable); --=20 2.51.0 From nobody Fri Oct 3 11:22:56 2025 Received: from mail-wr1-f44.google.com (mail-wr1-f44.google.com [209.85.221.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 79D452874F9; Mon, 1 Sep 2025 22:43:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766631; cv=none; b=IWEMZFrMENgEWRUAlaNVuOoX51X6PNnMsLqMOJ0WoVjiw6iNKhUdgadxUK8lkl0Unv5NzObNq8d9cTAnlB0BYWrzNa1rhBOC9vltNMPsXNAIlpqFDnuDDg/nNDBjfB26G2d8c5b5gDTRndnsULl9lHO3/sP1DdQ6UGfjX5I4098= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766631; c=relaxed/simple; bh=HKzlJfBwtYMiPWoKVvJXrcSUcjr8IuCkD7uXCY6Rq6Q=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=C52bz+QVAM7Cw44+sBwSoMwEbM9OcYpbZJUpSfZz8m0zdirC4IJXtWhKsblI+0Y16ziRYo77StKyW9Ij5UjZ7/JLEMX/x9np2xGG1GWKACMJgVIsPg6yZrE6LwV7cxoujCzcmJmPFKsBPIX0ghq8tOv4Khpct7GNyo9NKf0fW2w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=NufEPrnG; arc=none smtp.client-ip=209.85.221.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="NufEPrnG" Received: by mail-wr1-f44.google.com with SMTP id ffacd0b85a97d-3cf48ec9fa4so2459563f8f.0; Mon, 01 Sep 2025 15:43:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756766628; x=1757371428; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=aPcl2S44WD8tgUmGsmxJ2F4rL8Qbeu2knIPNC9oF8oQ=; b=NufEPrnGaom0ITl4W7smHuTvTMr+hCd+sgy9zj/Rp/gDd6IVqqO5jEdE4xOeNsn05s Jyq5vCWxCpy/nfmJ6HqTbD5HpB/NRmtMdHRV7Zz3sPdTw0Ypviwj1R19TLQMdE0T+nuY kGjwaodkc6LA9fbfNCLVpEBMtlI7mX2Yz3+e24cAixM18zWlmM23R0BXTLSM8svQKiHe 0ImMJp2Oh8ihb7hQHxPl77b2z0FHFGvfexunjZHc750Cq/bmXzbXODSQnDlYES2RZ89x C83ATQoPneOS1cxQSANeFngFCvOmKRLxpm4+iqIZ+iQqgyPu7iQ3BZT6uJRHBHRgdoji 8UrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756766628; x=1757371428; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aPcl2S44WD8tgUmGsmxJ2F4rL8Qbeu2knIPNC9oF8oQ=; b=cWiCPITs0PE7OlOxSUAQCJXctXGejKUvWDjUbfpvzkSpcngQ0vG0JuXN/u+l4bncrk Wyf4sd/ZluVrw9GEleJlu/ij1Z3BwjD3dWELNXw67ZRzvqEZzXDRxDKdT2KS4rcUHZ3c Ot0BIZSkOOJ8hRO5uDtgV+VN9S57WX8nkT6dbJ0Z4kT65Asjk//rk6ftjx6SxEJ8hYFC WSk6kxLrHcmI5q/tVbdRlrEiV5dXmcqNx9pMl/WV7orvDRhK2OA7SOGDf7R7yJON2RE8 Z5j+A8PeYfLIOmv28oWiC/q3nOOqyShEA4tnhMkBslUnkNkkwcBlbWMDBiKIcNb5aWic aItw== X-Forwarded-Encrypted: i=1; AJvYcCUzkOZfBm/Ss1SOWwKnsSfsHpiVNfdh4ahxUED9qzg72qJ5iJQLrwU/gXSFf3RR9YTTpvAV5YpZp9q/@vger.kernel.org, AJvYcCV0ruZA8dORZo2Ihd/DGC5b2zUBH+jXMPxJ41ravfZDfXwRC388W2+E2pYzTGB4iTUmoYbAkJSr5g/4Xodk@vger.kernel.org, AJvYcCV76k0a/O8UITsnhhEstHLjXggzmEzbqSvkQj8tpdCAqHqNFi7WKozx1ne3SqP2NJ/X0LK0ykNm@vger.kernel.org X-Gm-Message-State: AOJu0Yz1hYNIOAREvLcaQdI9mTNp3wbr4K7i0jrSRx4vYFjr9s9jvkh2 s8Vzqx0Zp28x28xg33tFE+gYkR1JK+3n/bp+/RuCa9PnHcGZ8SIlRdtg04FtfL+N X-Gm-Gg: ASbGncu4j7Z93a09J6F0/hTzDvaV7EclawpWDu1xgNgC0Zdj1JrWIzGCm7qyKNKmfkz GWNQO/yisn7VbI0Zqxj5lgZCqiRxFRs803f16GShIlRS+jZCBwgdwHZDDup8Fy3hw1hN7ys6YHr H4B/mVxKy0R9mzFXYLPHyVuQ52mioM1EdvuXzTxX9t3Psw5NRp9FsTmKI5NlQC02GYNk/jqHtc0 zO88X+leSVUMTtilphMRSEP/j5jMH6U2V6b2NmeDK/F5I9WbIyymTRM6Tb7MU7THo4TVUiUHONu JXJQxZUYg2z7jwk/zXwPjGOJkpwTpQwe3cJWYckxYwstutERFuPB4lZo6YF1SQ3wVvAKzlMTkqe dctrPoHFfQN18O1QuCfZDqbUr1dbp98khyafWCw+dw6A8ivemkm9encB8 X-Google-Smtp-Source: AGHT+IHWRxSFD5WV54k9OOb2rpOfeI4MHEy08wVe5dfiwl68eztWh4lagC9+eIKkm0ucFoeBJgrO9w== X-Received: by 2002:a5d:5889:0:b0:3b8:dabe:bd78 with SMTP id ffacd0b85a97d-3d1df156527mr6757599f8f.54.1756766627778; Mon, 01 Sep 2025 15:43:47 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:ca6c:86b2:c8f:84d6]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3d2250115fdsm11532607f8f.40.2025.09.01.15.43.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 15:43:46 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiner Kallweit , Russell King , Philipp Zabel , Geert Uytterhoeven , Magnus Damm , Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH net-next 05/10] net: pcs: rzn1-miic: move port range handling into SoC data Date: Mon, 1 Sep 2025 23:43:18 +0100 Message-ID: <20250901224327.3429099-6-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Define per-SoC miic_port_start and miic_port_max fields in struct miic_of_data and use them to validate the device-tree "reg" port number and to compute the driver's internal zero-based port index as (port - miic_port_start). Replace uses of the hard-coded MIIC_MAX_NR_PORTS with the SoC-provided miic_port_max when iterating over ports. On RZ/N1 the MIIC ports are numbered 1..5, whereas RZ/T2H numbers its MIIC ports 0..3. By making the port base and range part of the OF data the driver no longer assumes a fixed numbering scheme and can support SoCs that enumerate ports from either zero or one and that expose different numbers of ports. This change is preparatory work for adding RZ/T2H support. Signed-off-by: Lad Prabhakar --- drivers/net/pcs/pcs-rzn1-miic.c | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/drivers/net/pcs/pcs-rzn1-miic.c b/drivers/net/pcs/pcs-rzn1-mii= c.c index 724bac86cf8c..c119ec66fe95 100644 --- a/drivers/net/pcs/pcs-rzn1-miic.c +++ b/drivers/net/pcs/pcs-rzn1-miic.c @@ -49,8 +49,6 @@ #define MIIC_SWCTRL 0x304 #define MIIC_SWDUPC 0x308 =20 -#define MIIC_MAX_NR_PORTS 5 - #define MIIC_MODCTRL_CONF_CONV_MAX 6 #define MIIC_MODCTRL_CONF_NONE -1 =20 @@ -146,6 +144,8 @@ struct miic { * @conf_to_string_count: Number of entries in the conf_to_string array * @index_to_string: String representations of the index values * @index_to_string_count: Number of entries in the index_to_string array + * @miic_port_start: MIIC port start number + * @miic_port_max: Maximum MIIC supported */ struct miic_of_data { struct modctrl_match *match_table; @@ -155,6 +155,8 @@ struct miic_of_data { u8 conf_to_string_count; const char * const *index_to_string; u8 index_to_string_count; + u8 miic_port_start; + u8 miic_port_max; }; =20 /** @@ -330,6 +332,7 @@ static const struct phylink_pcs_ops miic_phylink_ops = =3D { =20 struct phylink_pcs *miic_create(struct device *dev, struct device_node *np) { + const struct miic_of_data *of_data; struct platform_device *pdev; struct miic_port *miic_port; struct device_node *pcs_np; @@ -342,9 +345,6 @@ struct phylink_pcs *miic_create(struct device *dev, str= uct device_node *np) if (of_property_read_u32(np, "reg", &port)) return ERR_PTR(-EINVAL); =20 - if (port > MIIC_MAX_NR_PORTS || port < 1) - return ERR_PTR(-EINVAL); - /* The PCS pdev is attached to the parent node */ pcs_np =3D of_get_parent(np); if (!pcs_np) @@ -363,18 +363,24 @@ struct phylink_pcs *miic_create(struct device *dev, s= truct device_node *np) return ERR_PTR(-EPROBE_DEFER); } =20 + miic =3D platform_get_drvdata(pdev); + of_data =3D miic->of_data; + if (port > of_data->miic_port_max || port < of_data->miic_port_start) { + put_device(&pdev->dev); + return ERR_PTR(-EINVAL); + } + miic_port =3D kzalloc(sizeof(*miic_port), GFP_KERNEL); if (!miic_port) { put_device(&pdev->dev); return ERR_PTR(-ENOMEM); } =20 - miic =3D platform_get_drvdata(pdev); device_link_add(dev, miic->dev, DL_FLAG_AUTOREMOVE_CONSUMER); put_device(&pdev->dev); =20 miic_port->miic =3D miic; - miic_port->port =3D port - 1; + miic_port->port =3D port - of_data->miic_port_start; miic_port->pcs.ops =3D &miic_phylink_ops; =20 phy_interface_set_rgmii(miic_port->pcs.supported_interfaces); @@ -410,7 +416,7 @@ static int miic_init_hw(struct miic *miic, u32 cfg_mode) miic_reg_writel(miic, MIIC_MODCTRL, FIELD_PREP(MIIC_MODCTRL_SW_MODE, cfg_mode)); =20 - for (port =3D 0; port < MIIC_MAX_NR_PORTS; port++) { + for (port =3D 0; port < miic->of_data->miic_port_max; port++) { miic_converter_enable(miic, port, 0); /* Disable speed/duplex control from these registers, datasheet * says switch registers should be used to setup switch port @@ -497,6 +503,8 @@ static int miic_parse_dt(struct miic *miic, u32 *mode_c= fg) if (of_property_read_u32(conv, "reg", &port)) continue; =20 + /* Adjust for 0 based index */ + port +=3D !miic->of_data->miic_port_start; if (of_property_read_u32(conv, "renesas,miic-input", &conf) =3D=3D 0) dt_val[port] =3D conf; } @@ -570,6 +578,8 @@ static struct miic_of_data rzn1_miic_of_data =3D { .conf_to_string_count =3D ARRAY_SIZE(conf_to_string), .index_to_string =3D index_to_string, .index_to_string_count =3D ARRAY_SIZE(index_to_string), + .miic_port_start =3D 1, + .miic_port_max =3D 5, }; =20 static const struct of_device_id miic_of_mtable[] =3D { --=20 2.51.0 From nobody Fri Oct 3 11:22:56 2025 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A1DA3288C02; Mon, 1 Sep 2025 22:43:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766632; cv=none; b=WkHTsnMqpyDKDUwG1edsFC/+pdOGfeWmgcr0T1tQYPYBA/gxGeiIU7W2cSZUlVGtTgstozUUvgKoYff1Du/9eLVQm9SyydZ8+mezNlqv2rtneiEXtfr/5p5ia6eP9VLCRoPPPvuFp0zcMbpgsFGzkTko7l7JRb5JHKX7sHpRdBc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766632; c=relaxed/simple; bh=8HshSuEiNlD+DPs2hJsobLcN/4dGYvXtUBGZfWl4190=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ma4LYX6b02yfpjTH1FA8vHSMhAINPaTHkoklygcoL8gNhJ6vrZUA+Lt0DLEkPOPeSJo4ukeVMTQlHCzMyGbggYunZ2b/AOg3NX82SX/MzCedafgeX1M7pfgApQQFC0JPD372e5+4bjnLItIj8J/fYizuZJzc3w3TxWXo1qxRyAQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=k7D22pzf; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="k7D22pzf" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-45b8b7ac427so9318745e9.2; Mon, 01 Sep 2025 15:43:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756766629; x=1757371429; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kVC9j2e4zOAf/fwuoB3wkppFNpvmnksdRiWPMuNeTcE=; b=k7D22pzfSVARowsvsRXzylJuGkmQCClh52fjK2HZ/3X08h3M87iCqkSVz/XNun8S+K eINZH1bygbqFHStRKOn4gJ0CYNTGo0r0rW04d22YDYuUIqch3wIFEQOye4yuB5kyZYaz SoASQK55uTjQUzBj6Jcb9s9qsbqyFx+Q6NDJXfZCzSwpvl5K3cg1Vjq8JrTaPeKLEj1W 0A9cfMqHdhk27d7LsB8lunRR9agEPcF+KjHZ1Hq+x5i1ggq4jw6Hh2IlaucNqCS/sgb6 rhLJ85AvfoTBQoAqDXJzW3SAlmelGnEilFnVj4PJjJrp8NgosHi4/wgv2x1YKAH9UdKt DJIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756766629; x=1757371429; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kVC9j2e4zOAf/fwuoB3wkppFNpvmnksdRiWPMuNeTcE=; b=iIDHEtIFU7cqdUTb1z/rIf7Zz80hHC+JmVGoImxmc9FE740TTU7G9l3tPt9nifSSR1 xo7BroBmKdQTqMq4IVt+LYW1lY0VAYZMUJ/PkrNVZCtZQku8rOcV7ofN4A6C2Hrhg/nI 9PUkE76xx2r2kVVn6OFsv4oehL+taMldM2ed+u2Kn4KRh8AwcYCFMWsmedbuDUj28ZMi S/z24p/ewNIrZtFgElPMnDOLHSiwuSeVIuMYRwGTGBZUvPeul+IaOzge1p5T1kBAoOxD ADw2wJW35aeQpSOekscSbFaVpz7OheyN6ibvGImjG6mXxG8hRB3mI1DVUgeYvAyeptI4 YqfA== X-Forwarded-Encrypted: i=1; AJvYcCVCUc/ppEwdE/zE4HebdYe31ih1wqG2ASFUfo6pGVnp6Gvg0d2LA9aXF85Nn4PhXbFjIB7HJD46@vger.kernel.org, AJvYcCVxIy7A59QYrnXmkjeyjQETi5w5C5c8ME/FM0DJybdcW8inmu/2UOtVI8OucGxDT6Cb96LKkNLA+n83k6HF@vger.kernel.org, AJvYcCX0D1jt0lObHsmhduoO0i8VYTe7VgDAe/iUM/prXiNSfvAAKHYwOpM2nnig+XBTZ8IJWauano5Zvy3J@vger.kernel.org X-Gm-Message-State: AOJu0YwEhf1W7q7K3GWHoiORe8gaZrvg1uSnuFFkG1/NmJZvEY2x5wiu llYeXaF1lXM4gq8XjIkvhCmG8qaTXseVOGdyACqoigSpLqbIiz6UH6aq X-Gm-Gg: ASbGncuSHVoyjZrsV7oOnR+kQPtfvZ1LgzsGJBPA7nUQwZz4TkxDodKx3yIZ6zOUtvN yp8YYTmqTOE/V+uJn/QHT4EDOepMfcwIYe8mTIu0Op0VBSGFcFdjjMPHbOvi6dBvEF9U/V1SLnW I1GCGiA30uPMT00cC41ip1wfbZMa1z9JNwrTZI7fLFG19mh77H3VWtmryBCeE5vR17CYguMFJjd lG8PZhYyy9IKtzbTxOdigSgS1xXPSAFPXJNio7c920G7oGp0JzW1y7uKldeptSolZMukSKdDGuc JiNdlG32MvRPVkD4AbrUEUq+eNywV5xp1OHkE2i0TM4LmyKgnzRtiQsSy5BTkCCfV32ogrc1R4k PKCr20fasBTiw8kGGLoNYmFDd1rncr5IAZm36PHZonNXm/TAR9hmrQOJL X-Google-Smtp-Source: AGHT+IG2LRv5fpxxjmsAnZtNymcmWMBkEQbeL5ddyrq8GeK1i1Te8g6l3Ri3I39l5G0LkrxtH7Gewg== X-Received: by 2002:a05:600c:45cd:b0:45b:8453:d82 with SMTP id 5b1f17b1804b1-45b85532f4dmr79821915e9.10.1756766628904; Mon, 01 Sep 2025 15:43:48 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:ca6c:86b2:c8f:84d6]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3d2250115fdsm11532607f8f.40.2025.09.01.15.43.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 15:43:48 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiner Kallweit , Russell King , Philipp Zabel , Geert Uytterhoeven , Magnus Damm , Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH net-next 06/10] net: pcs: rzn1-miic: Make switch mode mask SoC-specific Date: Mon, 1 Sep 2025 23:43:19 +0100 Message-ID: <20250901224327.3429099-7-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Move the hardcoded switch mode mask definition into the SoC-specific miic_of_data structure. This allows each SoC to define its own mask value rather than relying on a single fixed constant. For RZ/N1 the mask remains GENMASK(4, 0). This is in preparation for adding support for RZ/T2H, where the switch mode mask is GENMASK(2, 0). Signed-off-by: Lad Prabhakar --- drivers/net/pcs/pcs-rzn1-miic.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/net/pcs/pcs-rzn1-miic.c b/drivers/net/pcs/pcs-rzn1-mii= c.c index c119ec66fe95..c0aa93fd7274 100644 --- a/drivers/net/pcs/pcs-rzn1-miic.c +++ b/drivers/net/pcs/pcs-rzn1-miic.c @@ -7,6 +7,7 @@ =20 #include #include +#include #include #include #include @@ -23,7 +24,6 @@ #define MIIC_ESID_CODE 0x4 =20 #define MIIC_MODCTRL 0x8 -#define MIIC_MODCTRL_SW_MODE GENMASK(4, 0) =20 #define MIIC_CONVCTRL(port) (0x100 + (port) * 4) =20 @@ -146,6 +146,7 @@ struct miic { * @index_to_string_count: Number of entries in the index_to_string array * @miic_port_start: MIIC port start number * @miic_port_max: Maximum MIIC supported + * @sw_mode_mask: Switch mode mask */ struct miic_of_data { struct modctrl_match *match_table; @@ -157,6 +158,7 @@ struct miic_of_data { u8 index_to_string_count; u8 miic_port_start; u8 miic_port_max; + u8 sw_mode_mask; }; =20 /** @@ -402,6 +404,7 @@ EXPORT_SYMBOL(miic_destroy); =20 static int miic_init_hw(struct miic *miic, u32 cfg_mode) { + u8 sw_mode_mask =3D miic->of_data->sw_mode_mask; int port; =20 /* Unlock write access to accessory registers (cf datasheet). If this @@ -414,7 +417,7 @@ static int miic_init_hw(struct miic *miic, u32 cfg_mode) miic_reg_writel(miic, MIIC_PRCMD, 0x0001); =20 miic_reg_writel(miic, MIIC_MODCTRL, - FIELD_PREP(MIIC_MODCTRL_SW_MODE, cfg_mode)); + ((cfg_mode << __ffs(sw_mode_mask)) & sw_mode_mask)); =20 for (port =3D 0; port < miic->of_data->miic_port_max; port++) { miic_converter_enable(miic, port, 0); @@ -580,6 +583,7 @@ static struct miic_of_data rzn1_miic_of_data =3D { .index_to_string_count =3D ARRAY_SIZE(index_to_string), .miic_port_start =3D 1, .miic_port_max =3D 5, + .sw_mode_mask =3D GENMASK(4, 0), }; =20 static const struct of_device_id miic_of_mtable[] =3D { --=20 2.51.0 From nobody Fri Oct 3 11:22:56 2025 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A72E028AAE6; Mon, 1 Sep 2025 22:43:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766633; cv=none; b=oAzHxqObaM3jZn9OMrFDCSQCkwPc9ciGwtPSe+hm3kSbDplH3fH3L7LvFzU7/QDK7jCPTKQHWrcUwWcwzmBvxNUSq7iqd6lEe15F2KLoX251a+XD7AdOrRdYISVkYEuKUKEvOMJPImrQOUJmgqNWW68ap/5viGK8C7EysL50Lw0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766633; c=relaxed/simple; bh=lMKeb0TCdKK5JLosgCN57J85UwrzJxrP9I4R+kf0uxM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=HIwJ2tMOE5CuofEYAZKx4X9J726RMPg4yqOzbAhMSdGHh/Tpuwp4oXEvpoVnz/2zXRip2HlknfH9JAAyMeQztLoGi5zazM2eAFr3dCpXZdo0p3gMQn80/Gog8+Quj4XLQGtS0nA+6V6xm6DiOlTUx5lwq221sK3BmpyinXzVIU0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=iiOCPAD+; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="iiOCPAD+" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-45b87bc67a4so14048455e9.3; Mon, 01 Sep 2025 15:43:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756766630; x=1757371430; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GcQz7HXGNdo+h3s/5EGZrc1fI9Ul+MIvTQII6PFNK+8=; b=iiOCPAD+P+yZ4tm2L54T9w10BjN3t+Jahyr9rSbOQectTXbcLURm0pX3vsCSasDi+t ScNaNVL86GXmChzszQ8U6o0/7vNvQ8SK0nLCnYQOzUWNCnUihqAQwa1uam3/e7k3Nc1F jWd+UCPZYfxSpsqOTZHgtCQg2gFqX4yAbWhbkZ6imwwpfPbFZVDDXkI6fvM1s60e03jw VmUS5Ohf5W+ipIZgYKDX4kXpoa9lpupYHh6z4DPYWgXD+2SRBIQJNqdvaIGKke8PHDQW ClCDh31IRxRF/8VanhHtfx3z5veq+DJI4A48MXWOqZqUG88Hh+uUGIm7mn/PyybD7+Dg cPww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756766630; x=1757371430; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GcQz7HXGNdo+h3s/5EGZrc1fI9Ul+MIvTQII6PFNK+8=; b=AZhJ01nuaZHGdYZWgiXM6hEbGb/5jCoG+cXEpjA3VKTNO2lrlIwNzKJLJmK6oXpsNm NAKSLJtazQQsoFOczFM7T1AY0Ll9EX+zubD3CFkZ37BpJq0vtmiBpt6JRqI6dk2mnw+J t4EvP6KDcFiqH8nmxdrPjiWls0mc+BrDe9B4ffr1kw2je2HIDPyyKYGxv0tievXmaqGk DnlVvbE/TKFvs7uehwhzXZMXLzMi50lGQXRvORH1koXqj9JT/IQhS+d0umNmsQIhXSVw oHolcyc8FSt4z1bpvsgO4UiiLvQCQ3tqyKKTmpAa7Xtz9JMoBSjaW34l50ape8fQbfSz XnJw== X-Forwarded-Encrypted: i=1; AJvYcCVxzVyHbYNmYKt4cHh43xlB80FXlXsmDynTD8FbvajKJZiOwv0T36oogYCcAjFLJgC9DUrj+mo3H1wIEQAg@vger.kernel.org, AJvYcCWagXa0R7fwWyMRiWEMjldGIj5mGVCT4CtwQc4G5O3UYDQLHyhvDX2pX9uyQBaIxWzOIWgJUB7P@vger.kernel.org, AJvYcCXf9WWcszIhH56ejesL3Vy4EZluynFndcPdO5rrHlnqReSq0CFaexdzZ0TjKVBHVoWLV+ReY9EN1z+b@vger.kernel.org X-Gm-Message-State: AOJu0Yxlb6gprGd7J3HXq1qPsabeo5Mo9hfKR5Kff8Ya+K9OwfqJH1rz JgysqBl0VAObBxufDmXLHStLC/l4XPR8KIqV2i9lX1Npdal0FKS3Z/Ad X-Gm-Gg: ASbGnctqWHLbgcc4MeGCU+S14t036I3HEv2HysDV3619vq7bfp7NKqEv5aA9v8UWLzb tU5MbHGVR11JqfxQb+TWABSUv+x7Li0BZtIBIRBgWM2vqWt7HG2I93myFk9/KH1cnjzdPuRo1kz wlyzj599v49FtdDN5OC95AHVblw32xOwS9vI3bYSX92uqJ9WrXunVB844AvRUx9MbDhTLFp/YCx IIgGm/D536Uk+QTHqYWJh+bDhhap0ZkvWbzgwoKkPXPdKNixyo5rW+E6Btg4+Vd6RdurJ2L/V6N sW4O7iXXACHhE49FK7WIDo6D3vQ8s8pqgpbOdJhDMudShT4h0/+nBdH2w/rhO4+MBq9VxFkp5Ie uJ+HF1cp9dJBb4DNf+h8LLigw4GYXTTdfNGEfIr2tkXN6Jg== X-Google-Smtp-Source: AGHT+IGSrAHB3WYCOXa2RRMfke6j65Rvl36anQvwUOg7mqIyV22kswaYduYAQzHaDdakGyS4eYdodQ== X-Received: by 2002:a05:600c:8206:b0:45b:7e68:7492 with SMTP id 5b1f17b1804b1-45b8843c122mr66591165e9.1.1756766630003; Mon, 01 Sep 2025 15:43:50 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:ca6c:86b2:c8f:84d6]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3d2250115fdsm11532607f8f.40.2025.09.01.15.43.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 15:43:49 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiner Kallweit , Russell King , Philipp Zabel , Geert Uytterhoeven , Magnus Damm , Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH net-next 07/10] net: pcs: rzn1-miic: Add support to handle resets Date: Mon, 1 Sep 2025 23:43:20 +0100 Message-ID: <20250901224327.3429099-8-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Add reset-line handling to the RZN1 MIIC driver and move reset configuration into the SoC/OF data. Introduce MIIC_MAX_NUM_RSTS (=3D 2), add storage for reset_control_bulk_data in struct miic and add reset_ids and reset_count fields to miic_of_data. When reset_ids are present in the OF data, the driver obtains the reset lines with devm_reset_control_bulk_get_exclusive(), deasserts them during probe and registers a devres action to assert them on remove or on error. This change is preparatory work to support the RZ/T2H SoC, which exposes two reset lines for the ETHSS IP. The driver remains backward compatible for platforms that do not provide reset lines. Signed-off-by: Lad Prabhakar --- drivers/net/pcs/pcs-rzn1-miic.c | 41 +++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/drivers/net/pcs/pcs-rzn1-miic.c b/drivers/net/pcs/pcs-rzn1-mii= c.c index c0aa93fd7274..d97554e203f0 100644 --- a/drivers/net/pcs/pcs-rzn1-miic.c +++ b/drivers/net/pcs/pcs-rzn1-miic.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -17,6 +18,7 @@ #include #include #include +#include #include #include =20 @@ -52,6 +54,8 @@ #define MIIC_MODCTRL_CONF_CONV_MAX 6 #define MIIC_MODCTRL_CONF_NONE -1 =20 +#define MIIC_MAX_NUM_RSTS 2 + /** * struct modctrl_match - Matching table entry for convctrl configuration * See section 8.2.1 of manual. @@ -126,12 +130,14 @@ static const char * const index_to_string[] =3D { * @base: base address of the MII converter * @dev: Device associated to the MII converter * @lock: Lock used for read-modify-write access + * @rsts: Reset controls for the MII converter * @of_data: Pointer to OF data */ struct miic { void __iomem *base; struct device *dev; spinlock_t lock; + struct reset_control_bulk_data rsts[MIIC_MAX_NUM_RSTS]; const struct miic_of_data *of_data; }; =20 @@ -147,6 +153,8 @@ struct miic { * @miic_port_start: MIIC port start number * @miic_port_max: Maximum MIIC supported * @sw_mode_mask: Switch mode mask + * @reset_ids: Reset names array + * @reset_count: Number of entries in the reset_ids array */ struct miic_of_data { struct modctrl_match *match_table; @@ -159,6 +167,8 @@ struct miic_of_data { u8 miic_port_start; u8 miic_port_max; u8 sw_mode_mask; + const char * const *reset_ids; + u8 reset_count; }; =20 /** @@ -518,6 +528,16 @@ static int miic_parse_dt(struct miic *miic, u32 *mode_= cfg) return ret; } =20 +static void miic_reset_control_bulk_assert(void *data) +{ + struct miic *miic =3D data; + int ret; + + ret =3D reset_control_bulk_assert(miic->of_data->reset_count, miic->rsts); + if (ret) + dev_err(miic->dev, "failed to assert reset lines\n"); +} + static int miic_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; @@ -541,6 +561,27 @@ static int miic_probe(struct platform_device *pdev) if (IS_ERR(miic->base)) return PTR_ERR(miic->base); =20 + if (miic->of_data->reset_count) { + u8 i; + + for (i =3D 0; i < miic->of_data->reset_count; i++) + miic->rsts[i].id =3D miic->of_data->reset_ids[i]; + + ret =3D devm_reset_control_bulk_get_exclusive(miic->dev, + miic->of_data->reset_count, + miic->rsts); + if (ret) + return dev_err_probe(miic->dev, ret, "failed to get bulk reset lines\n"= ); + + ret =3D reset_control_bulk_deassert(miic->of_data->reset_count, miic->rs= ts); + if (ret) + return dev_err_probe(miic->dev, ret, "failed to deassert reset lines\n"= ); + + ret =3D devm_add_action_or_reset(dev, miic_reset_control_bulk_assert, mi= ic); + if (ret) + return dev_err_probe(miic->dev, ret, "failed to add reset action\n"); + } + ret =3D devm_pm_runtime_enable(dev); if (ret < 0) return ret; --=20 2.51.0 From nobody Fri Oct 3 11:22:56 2025 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 01BEE28CF6B; Mon, 1 Sep 2025 22:43:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766634; cv=none; b=WOoWc0m5Gfln7DA7hZ+r6bi0C0RrihUncliIj/JtMVcWJap+pDpwgiC6QwSOCSFFHDS9+2A5OtwDsZQlxuzIZppV7CFM0cNiRvCbeMyCjxbzw7P5EJ5wdnqTJH0WrvyuuA2k/uXm2vRmUwRV0cq2YN4Z8P40harDOsk+D1aUWwY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766634; c=relaxed/simple; bh=0g9Y+fRiKtqlqtIPNtlUiVKwkkUcSq3rzj1NafZH040=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=a6POAQuBFoUV1edkgPw64H6RKlmh39ttZcGjal0jKB6UFOpuQPHUNipNVyXqc6wUw2e7Vg4jrIfuoVev2VEAIiN1LaDeH08bCfkrihIf9RZKcRW4IywL6Sz6HO2AptesFPrqTnDcCpj6ATWobE//0PVGSHwWm/LxJVEN2zYZ5j0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=nBdktPL2; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="nBdktPL2" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-45b7d485204so38115605e9.0; Mon, 01 Sep 2025 15:43:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756766631; x=1757371431; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3UG4YQV+BnKD+9tuOZKviNK3qjMBfNAhvkY7wSqu92A=; b=nBdktPL2vzPTwgmqFNr8Gc3DwI2dGDZBWCfbnu4x+Q6uOhpxXwqGdmyJI4VmUBBp+v wFYHei8+kagmUs+Fu0QTQi6Q2N3MMBMUwTwFun7qJBfoOyMFsh8QdWdRif6e+Z+ie57v WWFOjWxCzLCMek8UCu0nokR6MIYK8U3aZONrhkipUWLe9LKjNlv4t6XG79NhH2Kl++on 2KOEqph91Xpf/rJBuISOItxYvqV9luUtNuvD+8ldQidy+EcN1kabR4wq23xzfy2nPDg1 Y1BUsvCaN3FATJAOFtRITo4s901rzoVJwx/h2Dk9/V6ZTaYoTOuC1AkOlHGFFA+ftWTH iZ0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756766631; x=1757371431; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3UG4YQV+BnKD+9tuOZKviNK3qjMBfNAhvkY7wSqu92A=; b=OhSbPijmLl14FGirXXoAyXfRwIF4+IqKgKy/XbtOHY82Y9XCUzdAV2VKHcHjVrDmDX ctZTGCacVep1epowxS4+LiewXHrOL0ZR8rT+E2TF+qWwPCmglKUG4Bf3wK9B/wxYsYhd ilwwlHujvqvOiCBbJCYYkT7eEvX86zKbmsY5FrWHTdTYNXgs+AeFIS1VPZtqgzk8oGfX JgPrpZcg3Xv1IH18LRnoE6mE6V8gmUFs7834hB5QPyJLAzRwGxb3bez5lvmbrIGsygTU ySQrP8Nrp481whjObCJHqz4+GQ7m//ngO3+idsvP5XTd+F3BbV9VfWXNsSind3yRTz2A FN+A== X-Forwarded-Encrypted: i=1; AJvYcCUWGl6vd23AzWoT7vnKwVIzwwd+2trUBGQTFRiTlE0Fl/scbthe0OjGr5mt1ojAyNR2Ql+FAMBKVcoG@vger.kernel.org, AJvYcCW8abT9SuR3MbNOxLVEGGa2KnIoBSpkhp/tayv+HUsVX3BN4n2IYHzyztXYLJwOZB0smQha8PSk@vger.kernel.org, AJvYcCXuDhjIB1MfOle50yUWtd52wKOE/7bIrtmFVVf+JGNXuHiZj3MBj7hD0NN1twoKZxoo7wR6LhP63Qf58P9u@vger.kernel.org X-Gm-Message-State: AOJu0YwrUlc2L7EHJGx4hPctiLhy2jS4OOPkuf7do84ipU0SxQx9dFO6 GgPsKo867Ak034Qle4mKqqzpWzc+r18OMJebbktZtX999iF5FKn4Sdru X-Gm-Gg: ASbGnctlwWe62oB5suguGRF0TNuYC7CkTf4D6qVuG8o4yi90JTTsc9YCXnvjxwFZFbP 3zERL3omfkIins92wxW6Hv/IpVX6EdOtd+zbIgOeEPSXscUxHeyv++jiZHoSTtUVUSW1cbshX4c jQ5c031BvA7mxoI+M+YaNzw+LN2L7XpjWzdH3XjxDReorg/WNI98pQ9nMF/ZZKajfLZqe6fhQXC +yWtdEf0kZG57jJ+WEzNX01l94BYxi7k/fJQqzxc9wQmx9Hx8JCOj2sMt3tc1jDlo1L2u78yq6g ZUhaa2iJcY1exdM1lY/2u/xvzFgVjTx87ECqJOpdxdFAuNtRQKJGZGdTPy6+kjgQvAJJZYcyY2Q CKJ+7T+3YmC3qWQAMtGLZsNCztbecA/aU1iZrm6gdLziX3Kpgf9MlRdj4J8BNnaOLbJE= X-Google-Smtp-Source: AGHT+IHiDcaGseOy3xIrzM3QHR7ZqscZnUr/b/bpsX2O/9rj8ksjhX6xLfZlnsbZ50rAiit34rbydg== X-Received: by 2002:a5d:5888:0:b0:3c8:89e9:6ab3 with SMTP id ffacd0b85a97d-3d1def6a5bbmr9009436f8f.46.1756766631102; Mon, 01 Sep 2025 15:43:51 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:ca6c:86b2:c8f:84d6]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3d2250115fdsm11532607f8f.40.2025.09.01.15.43.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 15:43:50 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiner Kallweit , Russell King , Philipp Zabel , Geert Uytterhoeven , Magnus Damm , Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH net-next 08/10] net: pcs: rzn1-miic: add per-SoC control for MIIC register unlock/lock Date: Mon, 1 Sep 2025 23:43:21 +0100 Message-ID: <20250901224327.3429099-9-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Make MIIC accessory register unlock/lock behaviour selectable via SoC/OF data. Add init_unlock_lock_regs and miic_write to struct miic_of_data so the driver can either perform the traditional global unlock sequence (as used on RZ/N1) or use a different policy for other SoCs (for example RZ/T2H, which does not require leaving registers unlocked). miic_reg_writel() now calls the per-SoC miic_write callback to perform register writes. Provide miic_reg_writel_unlocked() as the default writer and set it for the RZ/N1 OF data so existing platforms keep the same behaviour. Add a miic_unlock_regs() helper that implements the accessory register unlock sequence so the unlock/lock sequence can be reused where needed (for example when a SoC requires explicit unlock/lock around individual accesses). This change is preparatory work for supporting RZ/T2H. Signed-off-by: Lad Prabhakar --- drivers/net/pcs/pcs-rzn1-miic.c | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/drivers/net/pcs/pcs-rzn1-miic.c b/drivers/net/pcs/pcs-rzn1-mii= c.c index d97554e203f0..86d4dccd694e 100644 --- a/drivers/net/pcs/pcs-rzn1-miic.c +++ b/drivers/net/pcs/pcs-rzn1-miic.c @@ -155,6 +155,8 @@ struct miic { * @sw_mode_mask: Switch mode mask * @reset_ids: Reset names array * @reset_count: Number of entries in the reset_ids array + * @init_unlock_lock_regs: Flag to indicate if registers need to be unlock= ed before access + * @miic_write: Function pointer to write a value to a MIIC register */ struct miic_of_data { struct modctrl_match *match_table; @@ -169,6 +171,8 @@ struct miic_of_data { u8 sw_mode_mask; const char * const *reset_ids; u8 reset_count; + bool init_unlock_lock_regs; + void (*miic_write)(struct miic *miic, int offset, u32 value); }; =20 /** @@ -190,11 +194,25 @@ static struct miic_port *phylink_pcs_to_miic_port(str= uct phylink_pcs *pcs) return container_of(pcs, struct miic_port, pcs); } =20 -static void miic_reg_writel(struct miic *miic, int offset, u32 value) +static inline void miic_unlock_regs(struct miic *miic) +{ + /* Unprotect register writes */ + writel(0x00A5, miic->base + MIIC_PRCMD); + writel(0x0001, miic->base + MIIC_PRCMD); + writel(0xFFFE, miic->base + MIIC_PRCMD); + writel(0x0001, miic->base + MIIC_PRCMD); +} + +static void miic_reg_writel_unlocked(struct miic *miic, int offset, u32 va= lue) { writel(value, miic->base + offset); } =20 +static void miic_reg_writel(struct miic *miic, int offset, u32 value) +{ + miic->of_data->miic_write(miic, offset, value); +} + static u32 miic_reg_readl(struct miic *miic, int offset) { return readl(miic->base + offset); @@ -421,10 +439,8 @@ static int miic_init_hw(struct miic *miic, u32 cfg_mod= e) * is going to be used in conjunction with the Cortex-M3, this sequence * will have to be moved in register write */ - miic_reg_writel(miic, MIIC_PRCMD, 0x00A5); - miic_reg_writel(miic, MIIC_PRCMD, 0x0001); - miic_reg_writel(miic, MIIC_PRCMD, 0xFFFE); - miic_reg_writel(miic, MIIC_PRCMD, 0x0001); + if (miic->of_data->init_unlock_lock_regs) + miic_unlock_regs(miic); =20 miic_reg_writel(miic, MIIC_MODCTRL, ((cfg_mode << __ffs(sw_mode_mask)) & sw_mode_mask)); @@ -625,6 +641,8 @@ static struct miic_of_data rzn1_miic_of_data =3D { .miic_port_start =3D 1, .miic_port_max =3D 5, .sw_mode_mask =3D GENMASK(4, 0), + .init_unlock_lock_regs =3D true, + .miic_write =3D miic_reg_writel_unlocked, }; =20 static const struct of_device_id miic_of_mtable[] =3D { --=20 2.51.0 From nobody Fri Oct 3 11:22:56 2025 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CE286296BC0; Mon, 1 Sep 2025 22:43:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766636; cv=none; b=MhFmuF5uYAAySdjVVIv8ebVvNkA98/0Lo3rmZjFPOdbpM9lINn97z6B1cqtZ5IgA4mJNWwwJQHOsI6p/COboBLZoPq1Q70FqrECKfnfex7DcF9wauP2oLkpzjjz2S4qPdo3KSRsP6DQn/K6DAfsaDPorJFqyXXKyaMp/Dx8jkcE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766636; c=relaxed/simple; bh=SCLkrsEWnzB9eKvqG0q6Ea4G1QTnBOSaX79K7x+a/dw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LPiHyn6JAXjxQu+6ItxOJ7Wz8ovGTC3a9u8i0v+NMw2x52Vr3rVCZRgcfCrggBZaL4lDBH/kMp4j6DDYvvmt0invK/xcyGp8LMpmcGM/rQ40cNY5UrxDHNeIIOnRXQj91zNIzXLcTcUzrTuCcYzmi5TfkbCiQOHCHte0sbWLlPE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=TLQ5+tiH; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="TLQ5+tiH" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-45b83ae1734so18965855e9.0; Mon, 01 Sep 2025 15:43:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756766633; x=1757371433; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=E4Gu7IGtrz35Fo4f6Ngu2+JRiwq4NSt4HvcJP5xmKD4=; b=TLQ5+tiHr4R8c5uqH1hWAgZ0R+ZRd559GszlfrUUnw0s57aWZcqNTpw0xhc+BhtALX 3q98WsKtAJIzq3NcOXvnVjJrszjX3vs2RIx1vyj7nY8nOR/i9jwL4cFhp4iIy2MVcyf9 PrOptt4GLodDGp+/sZy0ZbDBP+mBzw5256mspOWQoIZLB8CmwuiayUUsq943N/NaKxX/ R1TaAwomM3h202AEg3IvJXdOVrMr7VXxsVVIUU/8aND/kl6RJ3h+fUQNs/tEoxTurizL IgY05PKLiyzlvzirRT1VfSDIFiBm1wmcB4+sW1CviHJOa/wE4/sHuLtxSjvLCFBj9dJY dbRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756766633; x=1757371433; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=E4Gu7IGtrz35Fo4f6Ngu2+JRiwq4NSt4HvcJP5xmKD4=; b=EtAgtnQbLKp8B1tKZ75IA84KRHf9OV9U2+tjHBleK2DCYntzYwyFchHmJuGA3ml2JT 8ruDVfCxO3rC5YNyD6Tlwuh6H1jHgFSgcLFJU5ALtTgPFu+YgyEcqx92KI7LX5/UgL2Z VrY6V6RUbTw6fwmi+/Hv6SOOkOCUZq1dCOK29kWUTGNc8Wunx//q9TY5BnMq3QykTknb sH0ckxOzdWJmlD/0EBzaq0EhwIHErWPTaz9xAmeKv8MnX6LvZP+xhsn6/HfGzkGmw1wJ cK3q7XlAXETtRenOYemlugVcYxBLHdb+GNArWIWZHPKso5i9Bq0mgEbDlx9GISzura7S F0Dg== X-Forwarded-Encrypted: i=1; AJvYcCUHkuEM8g2GGSQv2AjCFNHn06W4nGhKUgNG6B3xkfIMJBR30x0FVM1HVjUZUX2w1ehFd18Ej+P+@vger.kernel.org, AJvYcCUW40gJV77FaeVM0c+W0IZ6/HHk6YZci9Tw9zMKO/ID30OkG0+3UsB/p0X4xPXOIpi/4QN2pI5IZ2QR@vger.kernel.org, AJvYcCWsH6axmX3hSeKp8QGwfAdxkgA/j9+DikQqIp6hr/kyC9k7z5YMsveLl0MwoPqfqwMHWM3uwC55cDHXnirR@vger.kernel.org X-Gm-Message-State: AOJu0YzLBAPd5hIgQjmViC8ryICF02cj9D7oj24rYT3eFdCHKOL/KBEj en3+UGZFev8XyUfBOgaUitjNZkweUbfEyhvsteyQCraqqN0iPjAICUd1 X-Gm-Gg: ASbGncujlWaA756xZdlFdWY4WmtVUF0eLxrsWdUhOVvO2ci5KwlkDcpd57ecXxAHh7t 383VnN/S1Wg13i4Pd+Qt7oj1Wl9E2jxc+OKpZWjTypXEA9h5xFXHenX0By8JDEdxG+C4ACQC5qI f8n8rjnBEHB48y2d7G7xugsDrAoUWh4lyDoPCNjjtYwSgVszB4y+dE5IVylKaITHbnK9r0HE5SY jB6JFKd8oxL7ujydmQ1lP26pRg6xzWzdVgeICvYqR+czdmaxsa9B/Aq4Kycpu+aQvocauDP4zre 0ao7OlhVZumwlNQ6ov16qdIZPlUZWW7LEBmLiMyiNjQvmCA83LXuHy0irwGWJ7+9wFIkEpBM5hG 8H0zH7mTmwOv63EysD4Q5NnF225SqOQ2Z0A1f2wK+kgROhqXglvCY35Om X-Google-Smtp-Source: AGHT+IHp0y726g+Zzu2IZQPOjiBXQwp8bRxiUnH9+BmM9YDF9R54b31Y68vJBceZtELyEzGsEv2jQA== X-Received: by 2002:a5d:64c4:0:b0:3d6:3af4:7cdb with SMTP id ffacd0b85a97d-3d63af4814bmr4946588f8f.24.1756766632695; Mon, 01 Sep 2025 15:43:52 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:ca6c:86b2:c8f:84d6]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3d2250115fdsm11532607f8f.40.2025.09.01.15.43.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 15:43:51 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiner Kallweit , Russell King , Philipp Zabel , Geert Uytterhoeven , Magnus Damm , Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH net-next 09/10] net: pcs: rzn1-miic: Add RZ/T2H MIIC support Date: Mon, 1 Sep 2025 23:43:22 +0100 Message-ID: <20250901224327.3429099-10-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Add support for the Renesas RZ/T2H MIIC by defining SoC-specific modctrl match tables, register map, and string representations for converters and ports. Signed-off-by: Lad Prabhakar --- drivers/net/pcs/Kconfig | 11 +++-- drivers/net/pcs/pcs-rzn1-miic.c | 82 +++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 5 deletions(-) diff --git a/drivers/net/pcs/Kconfig b/drivers/net/pcs/Kconfig index f6aa437473de..9e19692985d7 100644 --- a/drivers/net/pcs/Kconfig +++ b/drivers/net/pcs/Kconfig @@ -26,11 +26,12 @@ config PCS_MTK_LYNXI which is part of MediaTek's SoC and Ethernet switch ICs. =20 config PCS_RZN1_MIIC - tristate "Renesas RZ/N1 MII converter" - depends on OF && (ARCH_RZN1 || COMPILE_TEST) + tristate "Renesas RZ/{N1, T2H, N2H} MII converter" + depends on OF + depends on ARCH_RZN1 || ARCH_R9A09G077 || ARCH_R9A09G087 || COMPILE_TEST help - This module provides a driver for the MII converter that is available - on RZ/N1 SoCs. This PCS converts MII to RMII/RGMII or can be set in - pass-through mode for MII. + This module provides a driver for the MII converter available on + Renesas RZ/N1, RZ/T2H, and RZ/N2H SoCs. This PCS converts MII to + RMII/RGMII, or can be set in pass-through mode for MII. =20 endmenu diff --git a/drivers/net/pcs/pcs-rzn1-miic.c b/drivers/net/pcs/pcs-rzn1-mii= c.c index 86d4dccd694e..024562204d7c 100644 --- a/drivers/net/pcs/pcs-rzn1-miic.c +++ b/drivers/net/pcs/pcs-rzn1-miic.c @@ -21,6 +21,7 @@ #include #include #include +#include =20 #define MIIC_PRCMD 0x0 #define MIIC_ESID_CODE 0x4 @@ -125,6 +126,57 @@ static const char * const index_to_string[] =3D { "CONV5", }; =20 +static struct modctrl_match rzt2h_modctrl_match_table[] =3D { + {0x0, {ETHSS_GMAC0_PORT, ETHSS_SWITCH_PORT0, ETHSS_SWITCH_PORT1, + ETHSS_SWITCH_PORT2, ETHSS_GMAC1_PORT}}, + + {0x1, {MIIC_MODCTRL_CONF_NONE, ETHSS_ETHERCAT_PORT0, ETHSS_ETHERCAT_PORT1, + ETHSS_GMAC2_PORT, ETHSS_GMAC1_PORT}}, + + {0x2, {ETHSS_GMAC0_PORT, ETHSS_ETHERCAT_PORT0, ETHSS_ETHERCAT_PORT1, + ETHSS_SWITCH_PORT2, ETHSS_GMAC1_PORT}}, + + {0x3, {MIIC_MODCTRL_CONF_NONE, ETHSS_ETHERCAT_PORT0, ETHSS_ETHERCAT_PORT1, + ETHSS_ETHERCAT_PORT2, ETHSS_GMAC1_PORT}}, + + {0x4, {ETHSS_GMAC0_PORT, ETHSS_SWITCH_PORT0, ETHSS_ETHERCAT_PORT1, + ETHSS_ETHERCAT_PORT2, ETHSS_GMAC1_PORT}}, + + {0x5, {ETHSS_GMAC0_PORT, ETHSS_SWITCH_PORT0, ETHSS_ETHERCAT_PORT1, + ETHSS_SWITCH_PORT2, ETHSS_GMAC1_PORT}}, + + {0x6, {ETHSS_GMAC0_PORT, ETHSS_SWITCH_PORT0, ETHSS_SWITCH_PORT1, + ETHSS_GMAC2_PORT, ETHSS_GMAC1_PORT}}, + + {0x7, {MIIC_MODCTRL_CONF_NONE, ETHSS_GMAC0_PORT, ETHSS_GMAC1_PORT, + ETHSS_GMAC2_PORT, MIIC_MODCTRL_CONF_NONE}} +}; + +static const char * const rzt2h_conf_to_string[] =3D { + [ETHSS_GMAC0_PORT] =3D "GMAC0_PORT", + [ETHSS_GMAC1_PORT] =3D "GMAC1_PORT", + [ETHSS_GMAC2_PORT] =3D "GMAC2_PORT", + [ETHSS_ETHERCAT_PORT0] =3D "ETHERCAT_PORT0", + [ETHSS_ETHERCAT_PORT1] =3D "ETHERCAT_PORT1", + [ETHSS_ETHERCAT_PORT2] =3D "ETHERCAT_PORT2", + [ETHSS_SWITCH_PORT0] =3D "SWITCH_PORT0", + [ETHSS_SWITCH_PORT1] =3D "SWITCH_PORT1", + [ETHSS_SWITCH_PORT2] =3D "SWITCH_PORT2", +}; + +static const char * const rzt2h_index_to_string[] =3D { + "SWITCH_PORTIN", + "CONV0", + "CONV1", + "CONV2", + "CONV3", +}; + +static const char * const rzt2h_reset_ids[] =3D { + "rst", + "crst", +}; + /** * struct miic - MII converter structure * @base: base address of the MII converter @@ -203,11 +255,24 @@ static inline void miic_unlock_regs(struct miic *miic) writel(0x0001, miic->base + MIIC_PRCMD); } =20 +static inline void miic_lock_regs(struct miic *miic) +{ + /* Protect register writes */ + writel(0x0000, miic->base + MIIC_PRCMD); +} + static void miic_reg_writel_unlocked(struct miic *miic, int offset, u32 va= lue) { writel(value, miic->base + offset); } =20 +static void miic_reg_writel_locked(struct miic *miic, int offset, u32 valu= e) +{ + miic_unlock_regs(miic); + writel(value, miic->base + offset); + miic_lock_regs(miic); +} + static void miic_reg_writel(struct miic *miic, int offset, u32 value) { miic->of_data->miic_write(miic, offset, value); @@ -645,8 +710,25 @@ static struct miic_of_data rzn1_miic_of_data =3D { .miic_write =3D miic_reg_writel_unlocked, }; =20 +static struct miic_of_data rzt2h_miic_of_data =3D { + .match_table =3D rzt2h_modctrl_match_table, + .match_table_count =3D ARRAY_SIZE(rzt2h_modctrl_match_table), + .conf_conv_count =3D 5, + .conf_to_string =3D rzt2h_conf_to_string, + .conf_to_string_count =3D ARRAY_SIZE(rzt2h_conf_to_string), + .index_to_string =3D rzt2h_index_to_string, + .index_to_string_count =3D ARRAY_SIZE(rzt2h_index_to_string), + .miic_port_start =3D 0, + .miic_port_max =3D 4, + .sw_mode_mask =3D GENMASK(2, 0), + .reset_ids =3D rzt2h_reset_ids, + .reset_count =3D ARRAY_SIZE(rzt2h_reset_ids), + .miic_write =3D miic_reg_writel_locked, +}; + static const struct of_device_id miic_of_mtable[] =3D { { .compatible =3D "renesas,rzn1-miic", .data =3D &rzn1_miic_of_data }, + { .compatible =3D "renesas,rzt2h-miic", .data =3D &rzt2h_miic_of_data }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, miic_of_mtable); --=20 2.51.0 From nobody Fri Oct 3 11:22:56 2025 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F013299957; Mon, 1 Sep 2025 22:43:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766637; cv=none; b=CVaFm7WM58aE4ZMwdYfgGgi1pKLBkQYa+c0EEJMSoxt5NcfCtmX/fmFqhRNFKsuwd80MzkrQ06m7vnI6gXCZ1TK9loUrHmbni9EX1xvQIL4N3+Hu0DHHlMzC4IxtpfkRACGVw7j+K+O41jh7nOo4LReRbw9ZUv7brT+diMm8UT4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756766637; c=relaxed/simple; bh=uXQiqD3bAp36ytO9RFr3KHkmWopvyJp/k2yAFl41jjk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ThoROjWeUvKeIooDbWQjm8WFMiZ46pgp0i0GXpBrf4DHz1dCuj4xTM/XnXSTDUZ7Gw0Ey3NfpNQthE+dRAAkTKoWU9Z6HATXLRW4GNTazxBxwcTJtTW3VEzxQGLzKv/a+n+GowdtWzVjWEnAS2CJvpGtZx4v+Hkaim42lqSSjb4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=bhsO2/q+; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bhsO2/q+" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-45b7c01a8c1so37609545e9.2; Mon, 01 Sep 2025 15:43:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1756766634; x=1757371434; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=/D0zIK/90YKRqjCv1wm+ESOlhgTGD5ibtI3Ci4OU4E4=; b=bhsO2/q+1BC5v9FnFbStW7KS0f/jTg7Qrw5LgvfdK2ULNlovREX2PJc79HXbxH8BOA WeBI3vavFh25b+wR/M2aE2EyJHjdgGpY0dBwXZrpua0CCCCFdZEbgfG0GSdNCWc+QyyY aCgoFv3YSVyqQU9JQXf/AmExkgrK0nfi0sLNVCWbORnpT5Q64jmsQxvFi+svIX+1DF4O 9l/P3upcTwJPGqXvGuApmpUyqgAoSViDAjonG0O2ev8KUMe+JxUkqx2uu1y40K27pebK pqLwdLhjeTPvaaByj0Wp7NhFcb/UFfAMcvwbyfTxPLvCFlnsucklvb9qcL71u6U3GCfF S/3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756766634; x=1757371434; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/D0zIK/90YKRqjCv1wm+ESOlhgTGD5ibtI3Ci4OU4E4=; b=Kd3H8HXXqH5p8aH+GYoK5e1a0h9TjmxAOcjqQLKI6ej06z59Dyrl2OzWs9P4fOF9kQ Hrjl4WllAvUKVeLOO+dA8GiAHo0SqL5aXPoyKbDVpCxu505zbhn5DXYkmrEOexUUirck 329CWmSQicxgShC5esOx25JXKANzl6L5qeZmNWpeMagjirl2n61ijYMY0usheMz5VZZS 5xW/nNnOsWykz5bIRR44KOWoM5Ys7AKMfG+0ZN2UMb+AjNA4QeeK/c49DSNYTBPsbiqG qw5vgZT181aHITTorMnyLhnP986mWc6tEVLKH6POU1U22mOdqp5Ha4+/I7AZakQ77m09 kGHA== X-Forwarded-Encrypted: i=1; AJvYcCU7IHcpzsvhv6Otcz7Exm3aOjVnHPAzwUU81YiZIuGDsPkPiOziI3ddRZN0O04TcxGYkh9/OT1J@vger.kernel.org, AJvYcCVJjixSGYgo4WGIBSdnZeMIf8RkhnDcrGPNJqSKHZmP+gIT7oLFmZOsr6SxVa2L8KLR/Q/pQOXIdQ5Y@vger.kernel.org, AJvYcCXj0rP80xkJdxtQSLTreOkFttrHcWZ0rswh8gxCm9Ox/Wwj70XQcLznJDbdgXojfwfO3vkQcGk7AxLDAIds@vger.kernel.org X-Gm-Message-State: AOJu0YxsTPkahqn6D/Jf6s6ZvQHdHW+vXStzl8mv7KoQAaVS2Xt40Rud JZqy3JzhCn4hOUKe37BWZ34mH7lWBitJLdG1vTzvJAg098YcVz+SDK2yGebKjJaC X-Gm-Gg: ASbGncsVeBWx7sKj6fueHKnJqqHrpgoSfrw47kF8Z5cXYGOaNztaaL4YE8tzvnQwfM/ XKkxWdeQKCL4Z5rAk4gqsnZkiLF/eFMu/Ecdv+/pZCpm6iNl9N1IGHUsW7L7jEJB2Z+btEDtCcZ 0WY+QWIgGADfYDaK4M+kB0lj9CPSVoQ1RuqfNgKafGZErqihscWLrqB40oyNLsePdxfXrm7ioqP /en5yR0uHhdyJQ50j5951lk2070VAdefen2FPFZwuiA8VO590JCqw/c1ZdimmVjCXg9f4NKAw// YwDAombUEBJSmkImmumyf/e4ixdxv9gDyH1pfAINTxdotGDfmv8oDViIWtleLa/hfyRIRquF/H4 0kHg+5kIgtc/WcMU3jM851JBo1t3ioOT/Cx/BpWbFJxWHrnrXz9x+AccXCgBV6r7hcRA= X-Google-Smtp-Source: AGHT+IEj5HYSRuIEFDmct01GRAuX5FjvzMWfN23JgVD0VzHd8Rizrk4/l1Yi1jINnhV5dPW1g1SSFw== X-Received: by 2002:a05:6000:188d:b0:3d9:70cc:6dcd with SMTP id ffacd0b85a97d-3d970cc6f97mr998103f8f.1.1756766633670; Mon, 01 Sep 2025 15:43:53 -0700 (PDT) Received: from iku.Home ([2a06:5906:61b:2d00:ca6c:86b2:c8f:84d6]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-3d2250115fdsm11532607f8f.40.2025.09.01.15.43.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Sep 2025 15:43:53 -0700 (PDT) From: Prabhakar X-Google-Original-From: Prabhakar To: =?UTF-8?q?Cl=C3=A9ment=20L=C3=A9ger?= , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiner Kallweit , Russell King , Philipp Zabel , Geert Uytterhoeven , Magnus Damm , Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Prabhakar , Biju Das , Fabrizio Castro , Lad Prabhakar Subject: [PATCH net-next 10/10] net: pcs: rzn1-miic: Add PCS validate callback for RZ/T2H MIIC Date: Mon, 1 Sep 2025 23:43:23 +0100 Message-ID: <20250901224327.3429099-11-prabhakar.mahadev-lad.rj@bp.renesas.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> References: <20250901224327.3429099-1-prabhakar.mahadev-lad.rj@bp.renesas.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Lad Prabhakar Add a SoC-specific `pcs_ops` pointer in `miic_of_data` to allow custom phylink PCS callbacks. For RZ/T2H MIIC, implement `rzt2h_miic_validate` to restrict valid interfaces to RGMII, RMII, and MII. Assign `rzt2h_miic_phylink_ops` with the new validate callback to the RZ/T2H MIIC SoC data structure, keeping existing PCS support intact for other SoCs. Signed-off-by: Lad Prabhakar --- drivers/net/pcs/pcs-rzn1-miic.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/drivers/net/pcs/pcs-rzn1-miic.c b/drivers/net/pcs/pcs-rzn1-mii= c.c index 024562204d7c..ee0805c82141 100644 --- a/drivers/net/pcs/pcs-rzn1-miic.c +++ b/drivers/net/pcs/pcs-rzn1-miic.c @@ -209,6 +209,7 @@ struct miic { * @reset_count: Number of entries in the reset_ids array * @init_unlock_lock_regs: Flag to indicate if registers need to be unlock= ed before access * @miic_write: Function pointer to write a value to a MIIC register + * @pcs_ops: PCS operations for the MII converter */ struct miic_of_data { struct modctrl_match *match_table; @@ -225,6 +226,7 @@ struct miic_of_data { u8 reset_count; bool init_unlock_lock_regs; void (*miic_write)(struct miic *miic, int offset, u32 value); + const struct phylink_pcs_ops *pcs_ops; }; =20 /** @@ -307,6 +309,17 @@ static void miic_converter_enable(struct miic *miic, i= nt port, int enable) miic_reg_rmw(miic, MIIC_CONVRST, MIIC_CONVRST_PHYIF_RST(port), val); } =20 +static int rzt2h_miic_validate(struct phylink_pcs *pcs, unsigned long *sup= ported, + const struct phylink_link_state *state) +{ + if (phy_interface_mode_is_rgmii(state->interface) || + state->interface =3D=3D PHY_INTERFACE_MODE_RMII || + state->interface =3D=3D PHY_INTERFACE_MODE_MII) + return 0; + + return -EINVAL; +} + static int miic_config(struct phylink_pcs *pcs, unsigned int neg_mode, phy_interface_t interface, const unsigned long *advertising, bool permit) @@ -425,6 +438,13 @@ static const struct phylink_pcs_ops miic_phylink_ops = =3D { .pcs_pre_init =3D miic_pre_init, }; =20 +static const struct phylink_pcs_ops rzt2h_miic_phylink_ops =3D { + .pcs_validate =3D rzt2h_miic_validate, + .pcs_config =3D miic_config, + .pcs_link_up =3D miic_link_up, + .pcs_pre_init =3D miic_pre_init, +}; + struct phylink_pcs *miic_create(struct device *dev, struct device_node *np) { const struct miic_of_data *of_data; @@ -476,7 +496,7 @@ struct phylink_pcs *miic_create(struct device *dev, str= uct device_node *np) =20 miic_port->miic =3D miic; miic_port->port =3D port - of_data->miic_port_start; - miic_port->pcs.ops =3D &miic_phylink_ops; + miic_port->pcs.ops =3D miic->of_data->pcs_ops; =20 phy_interface_set_rgmii(miic_port->pcs.supported_interfaces); __set_bit(PHY_INTERFACE_MODE_RMII, miic_port->pcs.supported_interfaces); @@ -708,6 +728,7 @@ static struct miic_of_data rzn1_miic_of_data =3D { .sw_mode_mask =3D GENMASK(4, 0), .init_unlock_lock_regs =3D true, .miic_write =3D miic_reg_writel_unlocked, + .pcs_ops =3D &miic_phylink_ops, }; =20 static struct miic_of_data rzt2h_miic_of_data =3D { @@ -724,6 +745,7 @@ static struct miic_of_data rzt2h_miic_of_data =3D { .reset_ids =3D rzt2h_reset_ids, .reset_count =3D ARRAY_SIZE(rzt2h_reset_ids), .miic_write =3D miic_reg_writel_locked, + .pcs_ops =3D &rzt2h_miic_phylink_ops, }; =20 static const struct of_device_id miic_of_mtable[] =3D { --=20 2.51.0