From nobody Fri Oct 2 04:25:16 2026 Received: from mail-lj1-f174.google.com (mail-lj1-f174.google.com [209.85.208.174]) (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 584F23EEAF4 for ; Wed, 5 Aug 2026 08:55:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785920149; cv=none; b=uryWC3cV+zfYwoILgfcJISlkO0UFLM4ZcONG7J0Rxh89/I3WWB7OAZCqR0fgDrOV9RdA3xR53Wlq8cs52GDKTkoD54yqQ9HN3n2EEeDf3cQNfCDHc5tnATHKCfnnkrGRPzLEdOZWAJYrRSg9MCaMAO16CbkTqkK8o8iWGQoAqsg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785920149; c=relaxed/simple; bh=tBuHJhzyR1hEsYiEvM9jD9sksOaD5cSYtrYtChto41o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AJ0VGhZshafIT3UdXtFqPx7xnQ3W5gipDJfTThUf0A1oKhJoxaHp52Nh7mnkveGOja0Vg7TZOsRf2NObzqp0FuOf+JvKixdD1dnXC6tVRY98WchE61nGV0j811crYCAhtXWDEoGOc3omFKQrxDTfU1leC+5ju4LOf/RGQ66jPsQ= 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=EtSTuQmn; arc=none smtp.client-ip=209.85.208.174 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="EtSTuQmn" Received: by mail-lj1-f174.google.com with SMTP id 38308e7fff4ca-39c953950dfso6676311fa.1 for ; Wed, 05 Aug 2026 01:55:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785920145; x=1786524945; 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:content-type; bh=1H1aAxnj7afVZ3zqJ198w7ntS0lziu9NK3yGPDspD10=; b=EtSTuQmnos/6pYn9hqVY2iiCSq3mOmk2xzbekBsX2xX+ulUw5dQKP047q1kbtx0r/g Xop+L5x8X9txPLFCvTJ3JciioKIXET0hkgcT3osGau1xDTcBobfxruLej9a17IUPBP4w QbxTYi+9gCQrDQlY3bi7r8pWY9xGDbLaU8kFRcUtZdzJLf2gvBjwmNbAfIPi9D0qDgcc xx0rHlqafH/PmznNcMousCf3yrCECFtrmMe8KQJj84VYRpSLPkXqRv1BNZbamuM3s2mT nECbKWKVEoSZ9sVsZiz/FWcUKk0qpKPBlKQO3IMVFAejplzUbMCAczBdhTAj3NWtAlGX IRmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785920145; x=1786524945; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=1H1aAxnj7afVZ3zqJ198w7ntS0lziu9NK3yGPDspD10=; b=M+QXjtzXeFA/xXbjvcUHyWM24iPp4FneFDSI/IqLp8qsqaQRmDVaAENBdQt4E28gsZ N0Foz8EaVhTu4y02beklCXgyortvo85UgSCxRg6nkANpJ1nZQSEFh2WbhKQ6AzgFZHD1 3Q9K+1mriHMn9/l94YytsvLQJyCn/CyDD3sCEqaO9vfo326x8bnkrl70vO1rFB/qBxfp +jEjyifrfs8nUlVjy11Lq1dY5KKK2RAOm5Jd4WvsIgCBh6A6TurdC3QOhD33pQboriDk vrrKRCVpxfxVkQQ7lUPHpOFmuWlb6JkfozqEOOxQ4BRYDSIHEySjOZaGPeAQLuBDjGAK UI0g== X-Forwarded-Encrypted: i=1; AHgh+RqLs68a0y9mqFb8qG72MfDfKXvnWqwwl92Dha5XDDK45KE6zuFU2aL78uuXfAMALUdUHzM3WVuNFiOgu5s=@vger.kernel.org X-Gm-Message-State: AOJu0YysDcyA3ZKJ9MMGLe2pPWm/p09paZDbSPHln6RDLIDUYqkW0lXn ZgfmRrXWH+VuIbMjnh/+qft90hJeBDiK/DMVJiiNgXciWjwRNIfge415 X-Gm-Gg: AR+sD11+EtGW560g9we14RX24MOwUgfQQLqhG6fXuPbuD3HxDJdADgL9gx0oemvOlyP /t1Ffyp7vZUw+fLzTQ5l5z8uK8VQMC3qHCWxeVT0NPP1/qAO1Z/3nDDSHc1/NaAUxbAyJ9nUFo0 Kn6KzaLn2L6a5euEkb6yAGpEVpvWexumzV4UiWrmvrnJJYfy9wSWOyISWf9/llmfnvrAF15q48I Bxpw2Fd2Oxhrnd+M+ymL6woMuCBqEQjiK9mbxEpacckIJWUKwBonukAFNG6gq/xc17EVWoU/7xF eTKG9+kB9q3FBuWLACKfeom7DE6amxsoASE6YuoagU+PvY+KdSnzv70If/gnL2TG+PV1yMEbhRE bSni3S/hl9OlehPK5468e9eEAYdX3DaY8HE2LhwleeVqyvybahQK5XTFLcqv/OlSkD0wPBL/vRD fB1XvK0qOxxT9t23LuXhK5+5ZVZEKN8TtWEFlQhOZuC1Kka55l5LoEN6zPPSPoiQ== X-Received: by 2002:a05:651c:1586:b0:39e:ea4f:4202 with SMTP id 38308e7fff4ca-39fbb262b33mr5974851fa.31.1785920145074; Wed, 05 Aug 2026 01:55:45 -0700 (PDT) Received: from NB-6746.. ([188.243.183.76]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39fb9a152aasm7470471fa.21.2026.08.05.01.55.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Aug 2026 01:55:44 -0700 (PDT) From: Artem Shimko To: netdev@vger.kernel.org, Andrew Lunn , Heiner Kallweit , Russell King , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Maxime Chevallier Cc: Artem Shimko , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH net-next v6 1/3] dt-bindings: vendor-prefixes: add Guangdong Dapu Telecom Co., Ltd. Date: Wed, 5 Aug 2026 11:55:38 +0300 Message-ID: <20260805085540.452260-2-a.shimko.dev@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260805085540.452260-1-a.shimko.dev@gmail.com> References: <20260805085540.452260-1-a.shimko.dev@gmail.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" Add vendor prefix for Guangdong Dapu Telecom Co., Ltd. [1], a manufacturer of Ethernet PHYs, networking and other equipment. The prefix will be used in the DAP8211R(I) Gigabit Ethernet PHY binding. [1] https://www.dptel.com/ Signed-off-by: Artem Shimko Acked-by: Krzysztof Kozlowski --- Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/vendor-prefixes.yaml b/Docum= entation/devicetree/bindings/vendor-prefixes.yaml index 396044f368e7..f8efecb560b6 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.yaml +++ b/Documentation/devicetree/bindings/vendor-prefixes.yaml @@ -457,6 +457,8 @@ patternProperties: description: Dongwoon Anatech "^dptechnics,.*": description: DPTechnics + "^dptel,.*": + description: Guangdong Dapu Telecom Co., Ltd. "^dragino,.*": description: Dragino Technology Co., Limited "^dream,.*": --=20 2.43.0 From nobody Fri Oct 2 04:25:16 2026 Received: from mail-lj1-f179.google.com (mail-lj1-f179.google.com [209.85.208.179]) (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 97A103EFD25 for ; Wed, 5 Aug 2026 08:55:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785920151; cv=none; b=KNNbqOz2TLjtVK4/K91X9h2XjhsWesiXNC1TfLOyKlUaNRjoNUjgYY0rmii2CHuYb7OQcRsLrAxRNk/pTB2KIzeRO+dxwtDytbE8oIkB8UKk1PJ0l+kMhHqec3ZpM7pMcY/y+xopTPfhQPTzFNZ1eYGropor1ka/jpWkiT6kqzk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785920151; c=relaxed/simple; bh=O872SQ79TPMDbksJwVaEBXDu7e4HtwncX9MRzGeVkKE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YzsKSpYxVHJS7SD5tj3PSDJI8UfpRbIbRGqO0Q32Q/JlnLvC6WM2wBPYsYKgm0moZJlwNu3E/+Yo3uX0BYOW2wT8ydpX8tS2/sdZLDopwMxf4cpVQGMmCxH4c/whPeiUCFspjS8oxVNn/l/zBloGoXrIfb9l2PcWio/ptm+DuuM= 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=aZ3ZeiUr; arc=none smtp.client-ip=209.85.208.179 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="aZ3ZeiUr" Received: by mail-lj1-f179.google.com with SMTP id 38308e7fff4ca-39faa67fab8so5480571fa.2 for ; Wed, 05 Aug 2026 01:55:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785920147; x=1786524947; 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:content-type; bh=atrTTnzv9w0bdiLK/lrbhOGNem1ngbHriUvHl3btaxg=; b=aZ3ZeiUrNaiB4Ao6BCd0nndUxmqM3kET782Q7QWSDPuoyPfYJAUsKqd3tRPov2stAr IIMVWMcIeDtyBoWMZ0WAgRx20NafsI5MfPY6YH3LgV99CFXwGSwjB5QSxSYVqYakjAlz nueQp2maFuXBuWr+kOCrPyD3oGfLsh5CL3S3JAspsHQaE9eEngMgdKnr1+clL4cWWDKb Z0oA+8wMFf6YcKNEJvTAB8UZNN7rBQ6PGjjfRJUj+32yN3N85Gv5CNUCmB9aApToj5nD KSu9SGZAqDyTXZ3yBjvrtgUktImMaQH32BjDH55kKmlA+FY4Utm8h28cSfAfS9SKTMBe QtQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785920147; x=1786524947; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=atrTTnzv9w0bdiLK/lrbhOGNem1ngbHriUvHl3btaxg=; b=VWHwPNzCUxfsDrLgCS+ZtdtLlRKrfw1ldNgAEKaDo9eNHmGWXpfm5vEbIMnJGgH6Mh h+QNx+KZROvkPeoqUvw8w5xhMjaT1kNYhniZh1omyZTIbHjeC6qVt+P4QYwf64dpZUhB +5rgd0WlWrfbPumytYBP1LQQOScqee7JoCbEbcEIJz+pJoL2RR2q++wQXsaRVQp4BYYE xGrncO4BxZtr5aQssX7sHnBhbgODzPRJT/8OXIK92tKXveHqCQY/xdiNEmn6+c1/yabE FNhn1/DvGRDFKJnafYL9UOa0QC9LVH5zecBdRgkScaPeK5sA6GfQZ3rk+Tf34cJaZlPM y9Cw== X-Forwarded-Encrypted: i=1; AHgh+RrSgSi7XgVM7JCfmT3gg22OatpjJQ2W4inHTlCYpyBaVCUSROfNVDEBkCNQlRJGpPmz4yrxNVY1FNBLJjc=@vger.kernel.org X-Gm-Message-State: AOJu0Yxq7VTsPUmIFocwGFtEC+yCBH67VpL/w+qC1wWVPk0JTq5C4ga0 e0WFe/tdV0TZpK/9Jx4UkzWZuQV/3cTjrLxTn1YidMARig80OU1yzbtB X-Gm-Gg: AR+sD12Nv4jacf2DLXrQ9xBbMnlq/JDT9AgRK4jY7FkioIH7Ttqw+lYuVuJPFfzj6TX 2kJzxgYFZStDF5+SeCPd+Q4SH/9MZD7BheCyOn2DsPEiTdOWbh4skTWsDgl9XaNAKJE3bZBxoM6 7RyaD7GKKZnzf5me+6OSLc6PVw97tpvcoutwAbl39SF3W22vlRhSZ0OjgKJAS4GTkN3Ci7TGpYK b0H94VTVN/AIHx4XtfFobMZzksWfOupwraqgx4Qy75bEgwKuQjpKAlePeixz/1XYy3iKlCmElHB hvfr+lsjfmB6mHci2Bygc607qHbGDNoD2Gqi2lB7UOewG83XLhP5/JrU7UIQUGEF+miBT5Gzzc/ 8BJXlZr/Fqp99X4jxNJ6PfMeZ97CXzKZZhDA4rpf7M6Jh9Zcq3aPzRXT8Bhu5OWQ9dJommvbIVY UpsLHQPXbpBCtQ8KWPuE1injQk2nN7BPoVkB+AiEnmnpBW1H2eIPKGHs74dAbsfE+wno0FR4LC X-Received: by 2002:a05:651c:515:b0:39c:628c:15ec with SMTP id 38308e7fff4ca-39fbb20370cmr5409241fa.23.1785920146437; Wed, 05 Aug 2026 01:55:46 -0700 (PDT) Received: from NB-6746.. ([188.243.183.76]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39fb9a152aasm7470471fa.21.2026.08.05.01.55.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Aug 2026 01:55:46 -0700 (PDT) From: Artem Shimko To: netdev@vger.kernel.org, Andrew Lunn , Heiner Kallweit , Russell King , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Maxime Chevallier Cc: Artem Shimko , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH net-next v6 2/3] dt-bindings: net: add DAPU Telecom DAP8211R(I) PHY binding Date: Wed, 5 Aug 2026 11:55:39 +0300 Message-ID: <20260805085540.452260-3-a.shimko.dev@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260805085540.452260-1-a.shimko.dev@gmail.com> References: <20260805085540.452260-1-a.shimko.dev@gmail.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" Add device tree binding documentation for the DAPU Telecom DAP8211R(I) Gigabit Ethernet PHY. The PHY supports TX and RX clock delays in 150 ps steps from 0 to 2250 ps, with a default of 1950 ps if not specified. Signed-off-by: Artem Shimko Reviewed-by: Krzysztof Kozlowski --- .../bindings/net/dptel,dap8211r.yaml | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/dptel,dap8211r.ya= ml diff --git a/Documentation/devicetree/bindings/net/dptel,dap8211r.yaml b/Do= cumentation/devicetree/bindings/net/dptel,dap8211r.yaml new file mode 100644 index 000000000000..4cd0f9730d95 --- /dev/null +++ b/Documentation/devicetree/bindings/net/dptel,dap8211r.yaml @@ -0,0 +1,62 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/net/dptel,dap8211r.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: DAPU Telecom DAP8211R(I) Gigabit Ethernet PHY + +maintainers: + - Artem Shimko + +description: | + The DAP8211R(I) is a Gigabit Ethernet PHY with RGMII interface, + supporting IEEE 802.3az Energy Efficient Ethernet, IEEE 1588 SyncE, + and an internal packet generator for diagnostics. + + Specifications: + - 10BASE-Te, 100BASE-TX, 1000BASE-T + - RGMII with configurable TX/RX clock delays (150 ps steps, 0-2250 ps) + - IEEE 802.3az-2010 Energy Efficient Ethernet + - IEEE 1588 SyncE support + - Internal packet generator and checker for link diagnostics + +allOf: + - $ref: ethernet-phy.yaml# + +properties: + compatible: + const: ethernet-phy-id0008.011b + + reg: + maxItems: 1 + + rx-internal-delay-ps: + description: + RGMII RX clock delay in picoseconds (0 to maximum). + multipleOf: 150 + maximum: 2250 + default: 1950 + + tx-internal-delay-ps: + description: + RGMII TX clock delay in picoseconds (0 to maximum). + multipleOf: 150 + maximum: 2250 + default: 1950 + +unevaluatedProperties: false + +examples: + - | + mdio { + #address-cells =3D <1>; + #size-cells =3D <0>; + + ethernet-phy@1 { + compatible =3D "ethernet-phy-id0008.011b"; + reg =3D <1>; + rx-internal-delay-ps =3D <1950>; + tx-internal-delay-ps =3D <1950>; + }; + }; --=20 2.43.0 From nobody Fri Oct 2 04:25:16 2026 Received: from mail-lj1-f175.google.com (mail-lj1-f175.google.com [209.85.208.175]) (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 A36CA3F0A92 for ; Wed, 5 Aug 2026 08:55:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785920153; cv=none; b=UaqMYorKoQvbr0fTHwLaoZoVuPfPXiZzhC6oCNCuRRKi7ydxJhTDVjOtvW+qe9i3NjX0cSlwLNDjFZlqDBq1Ua6Huhvdx7OsTQH2a90MAJkeNS2P0SrbjrM4LZmRpgrgbAOxQHBcpkS584RjK6jdXDwK/eg6tTwu6ltF+UJwJ6I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785920153; c=relaxed/simple; bh=tW0EEJSP2N/OF34pPwZQzNlQQa+xvGi3pOcQDAS153k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=iNXnZPjiJCn/exObxDya+Umybaf7XS6FHKPmkBSUp+VPzCNKT8t34nsRnhgA7jzgMoziMNMhDDGOIjrk29s1xU3I5bLn06wg3zPpYNph+mHPfN6vqIw5Reaf5tJdWDkNT/TdEPv779fUgbFhaVNufY7ILLSBbrruxajtDEsIf4Y= 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=IN/TvN+N; arc=none smtp.client-ip=209.85.208.175 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="IN/TvN+N" Received: by mail-lj1-f175.google.com with SMTP id 38308e7fff4ca-39c953950dfso6676771fa.1 for ; Wed, 05 Aug 2026 01:55:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1785920148; x=1786524948; 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:content-type; bh=cns2KhFhDqqBRLDrpH3IaGsRhRYYC7RxIFB7fl+1dVA=; b=IN/TvN+NXiXQzjsqsDjMhAmh7uG+RdKsxGB6JhWkYzuwvlIeZHTsM05K1X/RDNQe1T 7gOrYyIdVRvxRoaqaQLrvBrA/AXyfXjH/Az9UmpO/7lYMdQKUIxhUH46X/0BcZxd1XNy ypTtVjRSP28UDgNA/ySuEaBIcy0ooEGMJ+gIPsIGWxUlXjnCXRZRUB8xZ0HaOCXidunw b9BzDmlALjZVV6EV47oWRLWpZS16ZrMOQRUuusLAwZZRSTmAOdk7FBV1xJKQW/JcXRN5 XPdYsDx//cFYWVRjTXUUdWPiRo+P0XvQhNj4IFP7sqBSwzVS8jhnhMf4Qb+RrgGqiqKT W89g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785920148; x=1786524948; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=cns2KhFhDqqBRLDrpH3IaGsRhRYYC7RxIFB7fl+1dVA=; b=agrtJYa9JC9mKT566Npp6HB3USh0Ckv0d45f5GqG5qS03G3BGHqDSMz3bkgGNGjXw7 J7ycZDbmrOlZF2Lg8fKsyKadIuy7I2Vwsvldu2Kg9ZKYnAsixrBSZwbPZL/CYSLUHZQ5 6CB2NUr/ivXCKOexlD12Es7isPx9ASPcpEXWQTXtn98V4YFngWUB4V5BYATiRgC7YfWE a5hKOn5SPM5EQ0yDYVEOCjD06UX+CTM0IyruWsE3m+iaOYNX06rA0kHVlGp2gJcnq21y TXWp7NBRihzHwg4MucjNryMml3/W52G2SRVGT2pPSeOrMNXW2Gkk+coMU1VutNBJ4UzA kyBg== X-Forwarded-Encrypted: i=1; AHgh+RryMe2zTS77O8njmXW/C8p43wYrAN9ISU9VLs/rzrgYOzWImn0BxbpIrHI4+Vy/Gy/lrNj99L2UP5bAfNw=@vger.kernel.org X-Gm-Message-State: AOJu0YzkGDJPN3dH7j51ckiCwDszvpw9Fw8bmqRqcxDEPRYQwhIIZWSs wYVjQ2JSdwJBtt3CGu3fi3oKeizRcdABm2iB3Euk+z9iw3glGmpqQnBX X-Gm-Gg: AR+sD12wRfArCiSJ6OUFCxftznjDyzaisbXrFHyJsrYLytqutk7DedyTuZ2glbMstt+ rGNMaUuIiXMDZNoROujJRHGUgxYY4WjTyXd/aJba3Xqh0uh/rc6OBeWcg2o4H6I8Fi34dR8dXUH 8ZtwWvTQgEhjdHao/1djBk1pU8t8fcHdC9rb5zLBvc8vnJ3k3spI6O6Qgcmto7TtjTKLswU4/LM DswRrAD0y9d0l6WIRAPBqYCY7kKIEmi5b9rduUdFdW/MDQTqhiSIBjS1E6EcXufjtsQa2WU3IZz IlohaVq8LZ3sinupEJxLwMb0nrX7RiN2Zn8QXZGcftRzW7Lk9ORce+59QxayiAS79lIsNhngrIA X74il0Wualk9u1NG3Lm61I++Shq/9Vetuxli2J11XmKXrJqVVn3x9RnmlsfoZ8xJcqSdM15BBpn dDbP6PjLcahtTwdPsVIJ87FXB9FAOMxWygp+pA5fUD+Kx0AVOb8CuL9ISurco3DA== X-Received: by 2002:a2e:bc07:0:b0:39f:b9d8:b502 with SMTP id 38308e7fff4ca-39fbae27ef5mr6015241fa.7.1785920147852; Wed, 05 Aug 2026 01:55:47 -0700 (PDT) Received: from NB-6746.. ([188.243.183.76]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-39fb9a152aasm7470471fa.21.2026.08.05.01.55.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Aug 2026 01:55:47 -0700 (PDT) From: Artem Shimko To: netdev@vger.kernel.org, Andrew Lunn , Heiner Kallweit , Russell King , "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Maxime Chevallier Cc: Artem Shimko , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH net-next v6 3/3] net: phy: add DAPU Telecom DAP8211R(I) Gigabit Ethernet PHY driver Date: Wed, 5 Aug 2026 11:55:40 +0300 Message-ID: <20260805085540.452260-4-a.shimko.dev@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260805085540.452260-1-a.shimko.dev@gmail.com> References: <20260805085540.452260-1-a.shimko.dev@gmail.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" Add a new PHY driver for the DAPU Telecom DAP8211R(I) Gigabit Ethernet PHY, which is commonly used in enterprise and industrial networking applications. The driver implements extended register access via indirect addressing through corresponding registers, and provides comprehensive device tree support for RGMII delay configuration. The rx-internal-delay-ps and tx-internal-delay-ps properties allow precise tuning of clock delays in 150 ps steps from 0 to 2250 ps. Signed-off-by: Artem Shimko Reviewed-by: Andrew Lunn --- drivers/net/phy/Kconfig | 9 ++ drivers/net/phy/Makefile | 1 + drivers/net/phy/dap8211r.c | 220 +++++++++++++++++++++++++++++++++++++ 3 files changed, 230 insertions(+) create mode 100644 drivers/net/phy/dap8211r.c diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig index 099f25dceabb..395bcd35bffa 100644 --- a/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig @@ -232,6 +232,15 @@ config CORTINA_PHY help Currently supports the CS4340 phy. =20 +config DAP8211R_PHY + tristate "DAPU Telecom DAP8211R(I) Gigabit Ethernet PHY" + depends on OF + help + Support for the DAPU Telecom DAP8211R(I) Gigabit Ethernet PHY. + This PHY is designed for enterprise and industrial networking + applications, supporting 10/100/1000 Mbps operation. Supports + RGMII interface with configurable TX/RX clock delays. + config DAVICOM_PHY tristate "Davicom PHYs" help diff --git a/drivers/net/phy/Makefile b/drivers/net/phy/Makefile index de660ae94945..c72f7730e25d 100644 --- a/drivers/net/phy/Makefile +++ b/drivers/net/phy/Makefile @@ -52,6 +52,7 @@ obj-$(CONFIG_BCM_NET_PHYPTP) +=3D bcm-phy-ptp.o obj-$(CONFIG_BROADCOM_PHY) +=3D broadcom.o obj-$(CONFIG_CICADA_PHY) +=3D cicada.o obj-$(CONFIG_CORTINA_PHY) +=3D cortina.o +obj-$(CONFIG_DAP8211R_PHY) +=3D dap8211r.o obj-$(CONFIG_DAVICOM_PHY) +=3D davicom.o obj-$(CONFIG_DP83640_PHY) +=3D dp83640.o obj-$(CONFIG_DP83822_PHY) +=3D dp83822.o diff --git a/drivers/net/phy/dap8211r.c b/drivers/net/phy/dap8211r.c new file mode 100644 index 000000000000..0bf770f8ebbb --- /dev/null +++ b/drivers/net/phy/dap8211r.c @@ -0,0 +1,220 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Driver for the DAPU Telecom DAP8211R(I) Gigabit Ethernet PHY. + * + * Specifications: + * - IEEE 802.3 10BASE-Te, 100BASE-TX, 1000BASE-T + * - IEEE 802.3az-2010 Energy Efficient Ethernet + * - IEEE 1588 SyncE support + * - RGMII + * + * Author: Artem Shimko + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define DAP8211R_PHY_ID 0x0008011B +#define DAP8211R_PHY_ID_MASK 0xFFFFFFFF + +#define DAP8211R_EXT_ADD 0x1E +#define DAP8211R_EXT_DATA 0x1F + +#define DAP8211R_PHY_CON 0xA001 +#define DAP8211R_PHY_SW_RST BIT(15) + +#define DAP8211R_RGMII_CON 0xA003 +#define DAP8211R_RGMII_TX_DEL_MASK GENMASK(3, 0) +#define DAP8211R_RGMII_RX_DEL_MASK GENMASK(13, 10) + +#define DAP8211R_RGMII_CONFIG_MASK (DAP8211R_RGMII_RX_DEL_MASK | DAP8211R_= RGMII_TX_DEL_MASK) + +/* + * Hardware reset RX RGMII default delay from the datasheet: 0 * 150ps =3D= =3D 0.00ns + * Used when rx-internal-delay-ps is not specified in DT for RGMII mode and + * in RGMII_TXID to set rx delay. + */ +#define DAP8211R_INITIAL_RX_DEL_VAL 0 + +/* + * Hardware reset TX RGMII default delay from the datasheet: 1 * 150ps =3D= =3D 0.15ns + * Used when tx-internal-delay-ps is not specified in DT for RGMII mode and + * in RGMII_RXID to set tx delay. + */ +#define DAP8211R_INITIAL_TX_DEL_VAL 1 + +/* + * Default RGMII delay: 13 * 150 =3D=3D 1.95ns + * Used when rx-internal-delay-ps or tx-internal-delay-ps are not specifie= d in DT + * for RGMII ID modes to set tx or rx delay. + */ +#define DAP8211R_DEFAULT_DEL_SEL 0xD + +static const int dap8211r_internal_delay[] =3D {0, 150, 300, 450, 600, 750= , 900, + 1050, 1200, 1350, 1500, 1650, 1800, + 1950, 2100, 2250}; + +#define DAP8211R_DELAY_SIZE ARRAY_SIZE(dap8211r_internal_delay) + +/** + * dap8211r_read_ext() - Read extended register + * @phydev: PHY device structure + * @reg: Extended register address + * + * Reads a PHY extended register using the indirect access method. + * The caller must hold the MDIO bus lock. + * + * Return: Register value on success, or negative error code + */ +static int dap8211r_read_ext(struct phy_device *phydev, u16 reg) +{ + int ret; + + phy_lock_mdio_bus(phydev); + ret =3D __phy_write(phydev, DAP8211R_EXT_ADD, reg); + if (ret < 0) + goto out; + + ret =3D __phy_read(phydev, DAP8211R_EXT_DATA); +out: + phy_unlock_mdio_bus(phydev); + return ret; +} + +/** + * dap8211r_modify_ext() - Modify extended register bits + * @phydev: PHY device structure + * @reg: Extended register address + * @mask: Bit mask of bits to clear + * @set: Bit mask of bits to set + * + * Modifies a PHY extended register using the indirect access method. + * New value =3D (old value & ~mask) | set. + * The caller must hold the MDIO bus lock. + * + * Return: 0 on success, or negative error code + */ +static int dap8211r_modify_ext(struct phy_device *phydev, u16 reg, u16 mas= k, u16 set) +{ + int ret; + + phy_lock_mdio_bus(phydev); + ret =3D __phy_write(phydev, DAP8211R_EXT_ADD, reg); + if (ret < 0) + goto out; + + ret =3D __phy_modify(phydev, DAP8211R_EXT_DATA, mask, set); +out: + phy_unlock_mdio_bus(phydev); + return ret; +} + +/** + * dap8211r_config_init() - Initialize PHY + * @phydev: PHY device structure + * + * Configures the PHY during initialization: + * - RGMII delays based on interface mode + * - Software reset to apply settings (low active, self clear) + * + * Return: 0 on success, or negative error code + */ +static int dap8211r_config_init(struct phy_device *phydev) +{ + u16 set =3D 0; + int ret, val; + s32 rx_internal_delay =3D DAP8211R_INITIAL_RX_DEL_VAL; + s32 tx_internal_delay =3D DAP8211R_INITIAL_TX_DEL_VAL; + + if (!phy_interface_is_rgmii(phydev)) + return 0; + + if (phydev->interface !=3D PHY_INTERFACE_MODE_RGMII_TXID) + rx_internal_delay =3D phy_get_internal_delay(phydev, dap8211r_internal_d= elay, + DAP8211R_DELAY_SIZE, true); + + if (phydev->interface !=3D PHY_INTERFACE_MODE_RGMII_RXID) + tx_internal_delay =3D phy_get_internal_delay(phydev, dap8211r_internal_d= elay, + DAP8211R_DELAY_SIZE, false); + + switch (phydev->interface) { + case PHY_INTERFACE_MODE_RGMII: + if (rx_internal_delay < 0) + rx_internal_delay =3D DAP8211R_INITIAL_RX_DEL_VAL; + + if (tx_internal_delay < 0) + tx_internal_delay =3D DAP8211R_INITIAL_TX_DEL_VAL; + break; + case PHY_INTERFACE_MODE_RGMII_RXID: + if (rx_internal_delay < 0) + rx_internal_delay =3D DAP8211R_DEFAULT_DEL_SEL; + break; + case PHY_INTERFACE_MODE_RGMII_ID: + if (rx_internal_delay < 0) + rx_internal_delay =3D DAP8211R_DEFAULT_DEL_SEL; + fallthrough; + case PHY_INTERFACE_MODE_RGMII_TXID: + if (tx_internal_delay < 0) + tx_internal_delay =3D DAP8211R_DEFAULT_DEL_SEL; + break; + default: + phydev_err(phydev, "Unsupported interface: %d\n", + phydev->interface); + return -EINVAL; + } + + set |=3D FIELD_PREP(DAP8211R_RGMII_RX_DEL_MASK, rx_internal_delay); + set |=3D FIELD_PREP(DAP8211R_RGMII_TX_DEL_MASK, tx_internal_delay); + + ret =3D dap8211r_modify_ext(phydev, DAP8211R_PHY_CON, DAP8211R_PHY_SW_RST= , 0); + if (ret) + return ret; + + /* Wait for reset self-clear (from low active to high) */ + ret =3D read_poll_timeout(dap8211r_read_ext, val, + (val & DAP8211R_PHY_SW_RST), + 20, 200, false, phydev, DAP8211R_PHY_CON); + if (ret) + return ret; + if (val < 0) + return val; + + ret =3D dap8211r_modify_ext(phydev, DAP8211R_RGMII_CON, DAP8211R_RGMII_CO= NFIG_MASK, set); + if (ret) + return ret; + + return 0; +} + +static struct phy_driver dap8211r_driver[] =3D { + { + PHY_ID_MATCH_EXACT(DAP8211R_PHY_ID), + .name =3D "DAP8211R Gigabit Ethernet", + .soft_reset =3D genphy_soft_reset, + .config_init =3D dap8211r_config_init, + .read_status =3D genphy_read_status, + .set_loopback =3D genphy_loopback, + .config_aneg =3D genphy_config_aneg, + .suspend =3D genphy_suspend, + .resume =3D genphy_resume, + }, +}; +module_phy_driver(dap8211r_driver); + +MODULE_DESCRIPTION("DAP8211R Gigabit Ethernet PHY driver"); +MODULE_AUTHOR("Artem Shimko "); +MODULE_LICENSE("GPL"); + +static const struct mdio_device_id __maybe_unused dap8211r_tb[] =3D { + { DAP8211R_PHY_ID, DAP8211R_PHY_ID_MASK }, + { /* sentinel */ } +}; +MODULE_DEVICE_TABLE(mdio, dap8211r_tb); + --=20 2.43.0