From patchwork Thu Feb 1 15:17:27 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1893988 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=AFvaswjG; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45e3:2400::1; helo=sv.mirrors.kernel.org; envelope-from=devicetree+bounces-37624-incoming-dt=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org [IPv6:2604:1380:45e3:2400::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4TQjGs1jDrz1yQ0 for ; Fri, 2 Feb 2024 02:18:45 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id C372C2920A6 for ; Thu, 1 Feb 2024 15:18:42 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 05CBB626AE; Thu, 1 Feb 2024 15:18:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="AFvaswjG" X-Original-To: devicetree@vger.kernel.org Received: from mail-lj1-f180.google.com (mail-lj1-f180.google.com [209.85.208.180]) (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 119AC1E894; Thu, 1 Feb 2024 15:18:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706800697; cv=none; b=L/TC+v+jJEMGSmv2cOG8XICPtLMKeVlgI1V/JW/6Vnw+eaPQA5ZKPgcX+1r0GqWZ2vs9pwRjAV2JEw2+H3iKpaA+I/bJpgkjhVzzCFAiM+Jwk1XyNfejS3B0RZ3Fe/XEHvV6oSKtY5+k+r2drzBn9QqgUkHASaPutRzm5pUDT7M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706800697; c=relaxed/simple; bh=bggx5HzauvZU9OkSp9vlWgoNvtT+JuJSFKaHN79sbXE=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=mHrV7vdhsL0aciDZnP65fs19Tevbr+KPTJtUrkvz0cREAtGpF9/687sBwY97VOCkKb5C7/rGqJEnhohQ/jYRmvIvjb7XwGYZKUkU4Q3TSz9WqxYpsj+ctyARdi13zRT2WbaJWK+y+t4L04kTrxbVhyNKIKASuDGgVjQEVfQXDVw= 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=AFvaswjG; arc=none smtp.client-ip=209.85.208.180 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 Received: by mail-lj1-f180.google.com with SMTP id 38308e7fff4ca-2cf4d2175b2so11956991fa.0; Thu, 01 Feb 2024 07:18:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706800694; x=1707405494; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=q1Ibo8v/sTW9ZV+SHnIB5lIu7S/Dsq2pFigCp4Xf4aU=; b=AFvaswjGdeTwS871I8B1Gi/qcyhFVGwsx7wHdVASDR+x86KQRylIM3v9jGqU0FoSYc ElvT1vVMUGPI7jLqk3JOIPPuNLJ81ng/drunIZcQc05ow6Ojk2BKczWsFCfuusGsBEMk 0rkN+YId/JuFIVT/vQCuBJzwvAL4pQFbYQl1mMtCQvouPuj8TXsFTJwBnDPoLA09wcr1 EeSn9i/l4fnV+RGC4IJBMmnQO/cnyvnymipIznGH6wagcc7+0wsQO6wqqul/i88zfZuA /VuSLzhWaai7wv1zFw1+qcfmN2RSqdOtwp6ys2UtpzsLM+n9zPg4pYEdsDmVOvzuyTA/ w0Ow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706800694; x=1707405494; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=q1Ibo8v/sTW9ZV+SHnIB5lIu7S/Dsq2pFigCp4Xf4aU=; b=rurByiMgb5kANPLicYUqrH+xyvb5OIdjawVwUQnjjC1IMFi5I8xLusNYm4dEmaASS9 Bc5MAEvU7EdSbkvtiHKzU2+qc1Z6Qdzyrti1RiwqbXMDtboA9ZASDM8e3NEcMI+fOweY QvIAdrwQxk+aWKrY/HAofV2Doi7zpr3SlTPUfe321G0I6a7eaB5Fef3rGQs733XgwaB6 zFjkOuzIK5aeCLw8WiIJcpU1UdhARr3gkjVmUJOFXwbjYaZjOS8OzB3x2uwD9ElFnzV2 VycGB0/9QHYzyWkZVd/e3XFTbBeUVqsnw5RTeWGbCSDfMi13rmAFTLZ4WMDIHw1TFuKO mZXw== X-Gm-Message-State: AOJu0Yw5xvjcgyOk9poWxB0RHwOVLlxM8QZgvyPW7QdgP1HNVZ9oamPF lzogLBinFrdaTUSy1wY0T2j9WeUWUfd8isH4W9mk1mqu0qyutmv8 X-Google-Smtp-Source: AGHT+IEnUDKRJCvh0O404vK+KTJexrkdslnQr7U492JDijOxUYHSjjMjS8Ry3M2j68SgRL3JSaK2Og== X-Received: by 2002:a2e:a405:0:b0:2d0:7c49:78bb with SMTP id p5-20020a2ea405000000b002d07c4978bbmr948215ljn.16.1706800693861; Thu, 01 Feb 2024 07:18:13 -0800 (PST) X-Forwarded-Encrypted: i=0; AJvYcCU+2E4bRvJIUKOwlaksewdMBpOsgPZ1q4uQ/XMsq01qOZRFF2OuNvcZ+V+MUicvCkAo5yo07Pw0ku2MGKOzg6+v6oIAmd2O20SO7SI7ntabXn+lEwpDvyOOSTS8xZhYCa2B9VcprnhmhISZTlqff7aesPxYzqIlgdTIucfWW66lx8+I9bxuiJq5QrCI3yvNs6ZriwPdy+HL+HBdCbOrcQkf1mC9GlW6TPC8r/ct6F3LBc0R9e2NCQ0NE1wpfqE0kuXWtHQzuWMFP39tEh+vpTViQz6Kq0KTmwg38HiFO6gV5WJAcYQnodSNFRPl8meFJm02runRmF/CVCdM4p8gRXgNAs8b1OGdsxtEM8SAVNw8fFnD7uILP+RVekG/vyrZa4aIW3Ipzoi/6VHOXMoVmh6Yf/YRP6liz6A6/ST3pUtyUCBQ+4lLP9DkZx2syQt0d6yWb+YVvYCRv957iibpeJ8p3eXl6M6UoYHo5hRvbbgnLT+Bki5ExlTkU6o7TMDdsYVOVdB2axzG3jNx2bVtcIneOXQekyKcFwlHND6ZHB4erM8wPT5YKst/T08+QMCnyBPDSmdzYeErGF9Q4NbB6IY7jRR3yVa+SsW8kFtVZHb+2HZzsICPKGJa Received: from localhost.localdomain (93-34-89-13.ip49.fastwebnet.it. [93.34.89.13]) by smtp.googlemail.com with ESMTPSA id z9-20020a2e3509000000b002cdf37ee19dsm2437978ljz.7.2024.02.01.07.18.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 Feb 2024 07:18:13 -0800 (PST) From: Christian Marangi To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Andrew Lunn , Heiner Kallweit , Russell King , Frank Rowand , Christian Marangi , Robert Marko , netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org Subject: [net-next PATCH v5 1/9] dt-bindings: net: document ethernet PHY package nodes Date: Thu, 1 Feb 2024 16:17:27 +0100 Message-ID: <20240201151747.7524-2-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240201151747.7524-1-ansuelsmth@gmail.com> References: <20240201151747.7524-1-ansuelsmth@gmail.com> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Document ethernet PHY package nodes used to describe PHY shipped in bundle of 2-5 PHY. The special node describe a container of PHY that share common properties. This is a generic schema and PHY package should create specialized version with the required additional shared properties. Example are PHY packages that have some regs only in one PHY of the package and will affect every other PHY in the package, for example related to PHY interface mode calibration or global PHY mode selection. The PHY package node MUST declare the base address used by the PHY driver for global configuration by calculating the offsets of the global PHY based on the base address of the PHY package. Each reg of the PHYs defined in the PHY Package node is an offset of the PHY Package reg. Signed-off-by: Christian Marangi --- .../bindings/net/ethernet-phy-package.yaml | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/ethernet-phy-package.yaml diff --git a/Documentation/devicetree/bindings/net/ethernet-phy-package.yaml b/Documentation/devicetree/bindings/net/ethernet-phy-package.yaml new file mode 100644 index 000000000000..d7cdbb1a4b3e --- /dev/null +++ b/Documentation/devicetree/bindings/net/ethernet-phy-package.yaml @@ -0,0 +1,55 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/net/ethernet-phy-package.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Ethernet PHY Package Common Properties + +maintainers: + - Christian Marangi + +description: + PHY packages are multi-port Ethernet PHY of the same family + and each Ethernet PHY is affected by the global configuration + of the PHY package. + + Each reg of the PHYs defined in the PHY Package node is + an offset of the PHY Package reg. + + Each Ethernet PHYs defined in the PHY package node is + reachable in the MDIO bus at the address of the PHY + Package offset of the Ethernet PHY reg. + +properties: + $nodename: + pattern: "^ethernet-phy-package(@[a-f0-9]+)?$" + + reg: + minimum: 0 + maximum: 31 + description: + The base ID number for the PHY package. + Commonly the ID of the first PHY in the PHY package. + + Some PHY in the PHY package might be not defined but + still occupy ID on the device (just not attached to + anything) hence the PHY package reg might correspond + to a not attached PHY (offset 0). + + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + +patternProperties: + ^ethernet-phy(@[a-f0-9]+)?$: + $ref: ethernet-phy.yaml# + +required: + - reg + - '#address-cells' + - '#size-cells' + +additionalProperties: true From patchwork Thu Feb 1 15:17:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1893989 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=lesuJMSu; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=147.75.48.161; helo=sy.mirrors.kernel.org; envelope-from=devicetree+bounces-37625-incoming-dt=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org [147.75.48.161]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4TQjHL0sQTz1yQ0 for ; Fri, 2 Feb 2024 02:19:10 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 6F5D9B230C2 for ; Thu, 1 Feb 2024 15:19:09 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 06674626DF; Thu, 1 Feb 2024 15:18:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lesuJMSu" X-Original-To: devicetree@vger.kernel.org Received: from mail-lj1-f173.google.com (mail-lj1-f173.google.com [209.85.208.173]) (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 D851F626A3; Thu, 1 Feb 2024 15:18:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706800699; cv=none; b=eZ1z8If1zUJQA5ccE5Ei9zqEHJopahOdqTjesVh2uO+S9BaIdco0AHeC5AgCqUI27QnvD/4LC1zb/AqorojNdHiokepzYBUU7OQSBZKOVASoIhoQBRh7L8JShxYZ+s39mBj3g8D7eRPJ5LNJpf1EK6UAyQ6qRoNT6+0EGWX9XiA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706800699; c=relaxed/simple; bh=Bl00NQENXqEm4pXlmgt1Yiiwk8vIc6KVi7lXc/n1j6c=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=drKaKbS92BdabZUll5g/1WKzG1a7eCQ68ZDhAQv4uILgk3l8eukJ+Y/kGHlzOSiKCZru+2dwom98mMd7SfoT08bh42pUuEekEdzkz2VFw1adYGONFmGdhu1x6unAKKIgKZm9kvfeh1QEjdxJvLhtZokN+7hKpngGU6EngExCOFg= 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=lesuJMSu; arc=none smtp.client-ip=209.85.208.173 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 Received: by mail-lj1-f173.google.com with SMTP id 38308e7fff4ca-2cf206e4d56so13536041fa.3; Thu, 01 Feb 2024 07:18:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706800696; x=1707405496; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=lodvHw/FwxJ4HaaqD63vKwSgnThs64bJ3+PDTf7WPII=; b=lesuJMSuxm3a/aHhZ8GnwNbjPLeJh1SU6h887L3Z5uF/8bG+iMx5utWhMYwSFrBI5E E5KI15gNXWMDz0TAFm1QTKaA+DMZxi9tzp+qMNiWKF6xmtFSIBh0snioZJS502vCJYDa lu2ySZ4BECO5oZXediESr3mIfORUrH8BUvogR1ccBWy0NScW18qXLvOWcJLxfWH2q+u1 CgyZDWQYpkx1iIRG32PhqaFiAWzs7XmfaC2iMlaaUu2Iki0oxtyIVWJNsg5wZwhNXL4Q 6bAQJuCG8x2iEo6XfXm7GdnCWXMLgIIwyqtij2VGoDXTdiKUJTCylATLSjgoqDfP82fD HZOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706800696; x=1707405496; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=lodvHw/FwxJ4HaaqD63vKwSgnThs64bJ3+PDTf7WPII=; b=DAZWvUB7KztlreSvCID40amHaBDCtfoY4R+UtLgEsvRnMilOFKPlz3QBiZLJqlwjNx hfUTSmEqEUBQPcafZouUg5JAxfzsWADQ5es+JmSGhg1bKrDqbvcT8K2xcvWTX8sndvul 23wcQfkkj8Bt16k4hkXKljFp5oLwVbS3cu3MzjLczs6yuedxDb2mf3PCdDwLGDAS7mnQ 82BDaT+K7wp4vXQPbS+ogSrGLyAgUrJGHb0A9F+H2DSOFaNfYeHVmX04WgQU6LLauaES oR3ACs9bfD6xZkZ81md/YiGiRtXHZDRESrkW255fFspfrcYVVUTWkrztxnYvhVlvzHzd csxw== X-Gm-Message-State: AOJu0YyR+GUzYxiMqyBDRWlveLIl/XfMp+0whunBZXEb0BNzM0SayeIn C/ryQftlTvHWYilBmrA6RWtT+MOpgS8z0HTxiM45vjmamJ7QLVJt X-Google-Smtp-Source: AGHT+IGJWnzH/ut4VtYSd/gVIprYVbIRd/tYyZa7pPdPcxhl5kRAFX3qELo0+LC1UazYJF9G7NOYHg== X-Received: by 2002:a2e:a40f:0:b0:2cf:1033:c745 with SMTP id p15-20020a2ea40f000000b002cf1033c745mr1471029ljn.51.1706800695761; Thu, 01 Feb 2024 07:18:15 -0800 (PST) X-Forwarded-Encrypted: i=0; AJvYcCWFBK2nkDT2oq9LHPJu15t1S+WfoYHhZouoO0/Y9nxWoOmG60znQ5EbW2W31KZ31lBRFPlyLshe/WDbPj/fI6uuyBs5zAh6up1iOdRF7VBBvxLPO7vmvLexk4GpfpwV55ZBMDmneLat5vrR/DrOKa3Z1bujhQk57ellOGQpFbXcGykIuj6P0rB4RaaIhQmYxkfqYllKKvXg5tVjLDg2jL8+pC7uVLF3GPyifbM+tvgXflYeQpC3bjzcitYzla/tpRrsmmmKWlOhz7ZqQZWj3nWp+f5IIcfHaMdhlp5E539SA6IIALijJxSOvlneBYsjjSaFTl/pNR8TKJUD3kf1RcNFtg5NcAlATFUHSpmw8fOSwa/U/lajjfoyxb6fDQbhwv/UCkamgnKBIyTGmk/AGo2mitYQu3yRcdrpW6HL/m0StUi85pRx9A/GTB4+pHSXA3esMFkKU2Tc+SJOEt7zFAbIYYZ9nQECiEfXZEX6puuUsHPpcBO/WwjgaYV8pbz3mxjHgx8LzxREVKfqKMYs8OcOvcNhXCHMvQDh3Jo9i5fmS9jwKPoY/aPbN2h2RZkqJeWj2p+OCoCNRBBvBRXVNrIakdVEdH8iW/gMda25pxbBm/Su9IZ1pbCu Received: from localhost.localdomain (93-34-89-13.ip49.fastwebnet.it. [93.34.89.13]) by smtp.googlemail.com with ESMTPSA id z9-20020a2e3509000000b002cdf37ee19dsm2437978ljz.7.2024.02.01.07.18.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 Feb 2024 07:18:15 -0800 (PST) From: Christian Marangi To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Andrew Lunn , Heiner Kallweit , Russell King , Frank Rowand , Christian Marangi , Robert Marko , netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org Subject: [net-next PATCH v5 2/9] net: phy: add support for scanning PHY in PHY packages nodes Date: Thu, 1 Feb 2024 16:17:28 +0100 Message-ID: <20240201151747.7524-3-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240201151747.7524-1-ansuelsmth@gmail.com> References: <20240201151747.7524-1-ansuelsmth@gmail.com> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Add support for scanning PHY in PHY packages nodes. PHY packages nodes are just container for actual PHY on the MDIO bus. Their PHY address is defined as offset of the PHY package base address defined in DT. of_mdio_parse_addr_offset helper is introduced to validate the final address is correct. mdio_bus.c and of_mdio.c is updated to now support and parse also PHY package subnote by checking if the node name match "ethernet-phy-package". Signed-off-by: Christian Marangi --- drivers/net/mdio/of_mdio.c | 75 +++++++++++++++++++++++++++----------- drivers/net/phy/mdio_bus.c | 44 +++++++++++++++++----- include/linux/of_mdio.h | 26 +++++++++++++ 3 files changed, 115 insertions(+), 30 deletions(-) diff --git a/drivers/net/mdio/of_mdio.c b/drivers/net/mdio/of_mdio.c index 64ebcb6d235c..58b54c644f11 100644 --- a/drivers/net/mdio/of_mdio.c +++ b/drivers/net/mdio/of_mdio.c @@ -139,6 +139,54 @@ bool of_mdiobus_child_is_phy(struct device_node *child) } EXPORT_SYMBOL(of_mdiobus_child_is_phy); +static int __of_mdiobus_parse_phys(struct mii_bus *mdio, struct device_node *np, + int base_addr, bool *scanphys) +{ + struct device_node *child; + int addr, rc = 0; + + /* Loop over the child nodes and register a phy_device for each phy */ + for_each_available_child_of_node(np, child) { + if (of_node_name_eq(child, "ethernet-phy-package")) { + rc = of_property_read_u32(child, "reg", &addr); + if (rc) + goto exit; + + rc = __of_mdiobus_parse_phys(mdio, child, addr, scanphys); + if (rc && rc != -ENODEV) + goto exit; + + continue; + } + + if (base_addr) + addr = of_mdio_parse_addr_offset(&mdio->dev, child, base_addr); + else + addr = of_mdio_parse_addr(&mdio->dev, child); + if (addr < 0) { + *scanphys = true; + continue; + } + + if (of_mdiobus_child_is_phy(child)) + rc = of_mdiobus_register_phy(mdio, child, addr); + else + rc = of_mdiobus_register_device(mdio, child, addr); + + if (rc == -ENODEV) + dev_err(&mdio->dev, + "MDIO device at address %d is missing.\n", + addr); + else if (rc) + goto exit; + } + + return 0; +exit: + of_node_put(child); + return rc; +} + /** * __of_mdiobus_register - Register mii_bus and create PHYs from the device tree * @mdio: pointer to mii_bus structure @@ -180,25 +228,9 @@ int __of_mdiobus_register(struct mii_bus *mdio, struct device_node *np, return rc; /* Loop over the child nodes and register a phy_device for each phy */ - for_each_available_child_of_node(np, child) { - addr = of_mdio_parse_addr(&mdio->dev, child); - if (addr < 0) { - scanphys = true; - continue; - } - - if (of_mdiobus_child_is_phy(child)) - rc = of_mdiobus_register_phy(mdio, child, addr); - else - rc = of_mdiobus_register_device(mdio, child, addr); - - if (rc == -ENODEV) - dev_err(&mdio->dev, - "MDIO device at address %d is missing.\n", - addr); - else if (rc) - goto unregister; - } + rc = __of_mdiobus_parse_phys(mdio, np, 0, &scanphys); + if (rc) + goto unregister; if (!scanphys) return 0; @@ -227,15 +259,16 @@ int __of_mdiobus_register(struct mii_bus *mdio, struct device_node *np, if (!rc) break; if (rc != -ENODEV) - goto unregister; + goto put_unregister; } } } return 0; -unregister: +put_unregister: of_node_put(child); +unregister: mdiobus_unregister(mdio); return rc; } diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c index afbad1ad8683..7737d0101d7b 100644 --- a/drivers/net/phy/mdio_bus.c +++ b/drivers/net/phy/mdio_bus.c @@ -459,20 +459,33 @@ EXPORT_SYMBOL(of_mdio_find_bus); * found, set the of_node pointer for the mdio device. This allows * auto-probed phy devices to be supplied with information passed in * via DT. + * If a PHY package is found, PHY is searched also there. */ -static void of_mdiobus_link_mdiodev(struct mii_bus *bus, - struct mdio_device *mdiodev) +static int of_mdiobus_find_phy(struct device *dev, struct mdio_device *mdiodev, + struct device_node *np, int base_addr) { - struct device *dev = &mdiodev->dev; struct device_node *child; - if (dev->of_node || !bus->dev.of_node) - return; + for_each_available_child_of_node(np, child) { + int addr, ret; - for_each_available_child_of_node(bus->dev.of_node, child) { - int addr; + if (of_node_name_eq(child, "ethernet-phy-package")) { + ret = of_property_read_u32(child, "reg", &addr); + if (ret) + return ret; - addr = of_mdio_parse_addr(dev, child); + if (!of_mdiobus_find_phy(dev, mdiodev, child, addr)) { + of_node_put(child); + return 0; + } + + continue; + } + + if (base_addr) + addr = of_mdio_parse_addr_offset(dev, child, base_addr); + else + addr = of_mdio_parse_addr(dev, child); if (addr < 0) continue; @@ -481,9 +494,22 @@ static void of_mdiobus_link_mdiodev(struct mii_bus *bus, /* The refcount on "child" is passed to the mdio * device. Do _not_ use of_node_put(child) here. */ - return; + return 0; } } + + return -ENODEV; +} + +static void of_mdiobus_link_mdiodev(struct mii_bus *bus, + struct mdio_device *mdiodev) +{ + struct device *dev = &mdiodev->dev; + + if (dev->of_node || !bus->dev.of_node) + return; + + of_mdiobus_find_phy(dev, mdiodev, bus->dev.of_node, 0); } #else /* !IS_ENABLED(CONFIG_OF_MDIO) */ static inline void of_mdiobus_link_mdiodev(struct mii_bus *mdio, diff --git a/include/linux/of_mdio.h b/include/linux/of_mdio.h index 8a52ef2e6fa6..8566df2afbe6 100644 --- a/include/linux/of_mdio.h +++ b/include/linux/of_mdio.h @@ -72,6 +72,27 @@ static inline int of_mdio_parse_addr(struct device *dev, return addr; } +static inline int of_mdio_parse_addr_offset(struct device *dev, + const struct device_node *np, + u16 offset) +{ + int addr; + + addr = of_mdio_parse_addr(dev, np); + if (addr < 0) + return addr; + + /* Validate final address with offset */ + addr += offset; + if (addr >= PHY_MAX_ADDR) { + dev_err(dev, "%s PHY address offset %i is too large\n", + np->full_name, addr); + return -EINVAL; + } + + return addr; +} + #else /* CONFIG_OF_MDIO */ static inline bool of_mdiobus_child_is_phy(struct device_node *child) { @@ -130,6 +151,11 @@ static inline int of_mdio_parse_addr(struct device *dev, { return -ENOSYS; } +static inline int of_mdio_parse_addr_offset(struct device *dev, + const struct device_node *np) +{ + return -ENOSYS; +} static inline int of_phy_register_fixed_link(struct device_node *np) { return -ENOSYS; From patchwork Thu Feb 1 15:17:31 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1893990 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=IIxi7+9P; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:40f1:3f00::1; helo=sy.mirrors.kernel.org; envelope-from=devicetree+bounces-37628-incoming-dt=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org [IPv6:2604:1380:40f1:3f00::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4TQjJq6jg4z23gD for ; Fri, 2 Feb 2024 02:20:27 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 8D33CB25DDE for ; Thu, 1 Feb 2024 15:20:27 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 22A0A15DBC0; Thu, 1 Feb 2024 15:18:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="IIxi7+9P" X-Original-To: devicetree@vger.kernel.org Received: from mail-lj1-f177.google.com (mail-lj1-f177.google.com [209.85.208.177]) (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 08E1615959C; Thu, 1 Feb 2024 15:18:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706800705; cv=none; b=uR1Ka0BKbffrEasLFd0bTAEtW60MX4hJaGjTEv/x+RAJ0KI6VNK3VqSZferO41fXedGOV2zSRqz0iWO+r+6P7jZqPT74kpuHD7aIo+lIsTJhUKpu1q7b1G4etS3VgueEKp2kNbDU4gnHWRlfUV7XWjNdkSi1zZXPOQ8HKpKLGNc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706800705; c=relaxed/simple; bh=63BrzW6aMc+JGC7gqe8EkH0cOOlKVNIeDAlN6uqZkNg=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=i62y2NTFvArO8wgCoJIn6Pvw7ub8PUkrxQlrhBCuHCUCPzVUCWEDN1l9N/4Ir02KY+7tLlAn7o/qxYb9p9niIiRj67OPYDunw+Q2QeapUglsDdH4yf1KmovfD9t05gnmlV2bt5nzco6OdEGgGdGq+gpbv93n1CcdVCG2pbYKahw= 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=IIxi7+9P; arc=none smtp.client-ip=209.85.208.177 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 Received: by mail-lj1-f177.google.com with SMTP id 38308e7fff4ca-2cf4fafa386so14697121fa.1; Thu, 01 Feb 2024 07:18:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706800702; x=1707405502; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=6DWji551HMy8KzAwDabgWpNbrF4QkJwcm+aGRh86PPg=; b=IIxi7+9PToIzjCtLM9giMpMMcXjB1jXZqI9E8UEMWZBSYTwUr0yp5IoepP0RMxI43x wdyt+bUpWUAeH4pDnaUAMaCacfVCT76Gtr8ZZIcv1xDVj1mgLqgVxnpu73lRgER0/+yd y5TmR7fURgAIJB17T+sAHFSMk6dyIFyussARvxtcldx2TumrKCuY9oUGWv8dGDdE/zqv RapjDY4oo8FMnp7CToqynQzfpBfybjDXIhPIpXXLrBr9c0y/8RXJJclIvu298wC+17Z5 /UvJu+Wd7ZXQTB8XgiPItsR7XZAAz0goPNLPHiS5ON9bjsN8wVugjdFwGTh74wQwIrP7 /jNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706800702; x=1707405502; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6DWji551HMy8KzAwDabgWpNbrF4QkJwcm+aGRh86PPg=; b=sCmeKFES/xw4EvppvLhNmiBeKde7OMWesUg0T4vtMWKz7y2zKAn09UlIti9wRgENh0 ygB2gDOyi3RqVVDIhIQW4sDNLerzoL24bMpB+UcfiK0kAjpSqsk8VggxwtoAi/rptFdX xdMZt/sHV673144ddISuNktOcD1OyqXQ966przl8YLun4LHOeVK6m18SuS2EfW2bcMK0 H9Cykbm1yb+ze/Z73tMPbMRpJ9Cdu9Ux1x7OyddzXfShal8iTeNV1wq0P2uGJMosvYls /Vif2bfc0cWCmPQoZ051umoaVzkBvYIbCVf4PVYL1uNrvG3UhienB3xcsvCv3xj6YASp RysQ== X-Gm-Message-State: AOJu0Yzkvh5jlJcUx4ZGt7xbrSkGMPGwK4aIauYSsX5HxaaW/MtUbosx xOOFx+/uebCWKXJhyEdMcRH1RZDq+bLawVbWRaXXg4F/A5iqay29 X-Google-Smtp-Source: AGHT+IHWTof4W1YBDl1hP/0kcUJJgEOOsfHXmmQTz3TAD2K/Zx96Z9cN6PAgPmvPZvMczZRp2p5zhQ== X-Received: by 2002:a2e:7c06:0:b0:2d0:51f3:12f8 with SMTP id x6-20020a2e7c06000000b002d051f312f8mr3437380ljc.46.1706800701734; Thu, 01 Feb 2024 07:18:21 -0800 (PST) X-Forwarded-Encrypted: i=0; AJvYcCXIcDkke2DduKl4OkgHUOAEE4bpRLQ0wVathyw0r78CplOy9JyCKon14ZSgkfxtazOoK51qOtu3jnjY3wQxORKhdPdqqnfonwYY5dQz89+OhkUTK4dhmKzu89XCJnvAxczWtnKvZVnKXU0s8fHzmlJAuYTjxXXNU48URAnbrpGyOJlPj6vbSLiHB+GnHuL7vVheUcLfFi9sZ7vBLlqbuiBXKY3x23gC/rvyVgd5b+2SdZrXnSZeptpg1deIkLd5DNtsES/LuMsXG+ean7Wdy36TLF0C4BqP+wgqymEXvnghctq4f15/l4acP7j+aNGmbrx2bI5ofmxeuuLdlHllr2hED24uqgRqc3pFYtIkhCesk8u/xIPXy7Hfxh74EEDYOFLQeP1gTl0NGImPnbLoaAF49EtHS7OEu+LUYt4yheLvSRAlwRKAX55YpdrYjp9VxKVnQerEorcdIJXyHW1/dFhwyLIqF9m7/U4afhzsxbvEegaA6xcomAoAat27+HL6GchwXCrMHI3togeibH1urzCiJF5r6fUjhmpp18Oe2gb5DBKy+TTcy+Hpy8FZlBY+flMV755Ei0yjJUGM1mrEoLM1lzvBnffr/nnnnS507DULs9qFWkacnADs Received: from localhost.localdomain (93-34-89-13.ip49.fastwebnet.it. [93.34.89.13]) by smtp.googlemail.com with ESMTPSA id z9-20020a2e3509000000b002cdf37ee19dsm2437978ljz.7.2024.02.01.07.18.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 Feb 2024 07:18:21 -0800 (PST) From: Christian Marangi To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Andrew Lunn , Heiner Kallweit , Russell King , Frank Rowand , Christian Marangi , Robert Marko , netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org Subject: [net-next PATCH v5 5/9] dt-bindings: net: add QCA807x PHY defines Date: Thu, 1 Feb 2024 16:17:31 +0100 Message-ID: <20240201151747.7524-6-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240201151747.7524-1-ansuelsmth@gmail.com> References: <20240201151747.7524-1-ansuelsmth@gmail.com> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: Robert Marko Add DT bindings defined for Qualcomm QCA807x PHY series related to calibration and DAC settings. Signed-off-by: Robert Marko Signed-off-by: Christian Marangi --- include/dt-bindings/net/qcom-qca807x.h | 30 ++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 include/dt-bindings/net/qcom-qca807x.h diff --git a/include/dt-bindings/net/qcom-qca807x.h b/include/dt-bindings/net/qcom-qca807x.h new file mode 100644 index 000000000000..e7d4d09b7dd4 --- /dev/null +++ b/include/dt-bindings/net/qcom-qca807x.h @@ -0,0 +1,30 @@ +/* SPDX-License-Identifier: GPL-2.0-only OR MIT */ +/* + * Device Tree constants for the Qualcomm QCA807X PHYs + */ + +#ifndef _DT_BINDINGS_QCOM_QCA807X_H +#define _DT_BINDINGS_QCOM_QCA807X_H + +/* Full amplitude, full bias current */ +#define QCA807X_CONTROL_DAC_FULL_VOLT_BIAS 0 +/* Amplitude follow DSP (amplitude is adjusted based on cable length), half bias current */ +#define QCA807X_CONTROL_DAC_DSP_VOLT_HALF_BIAS 1 +/* Full amplitude, bias current follow DSP (bias current is adjusted based on cable length) */ +#define QCA807X_CONTROL_DAC_FULL_VOLT_DSP_BIAS 2 +/* Both amplitude and bias current follow DSP */ +#define QCA807X_CONTROL_DAC_DSP_VOLT_BIAS 3 +/* Full amplitude, half bias current */ +#define QCA807X_CONTROL_DAC_FULL_VOLT_HALF_BIAS 4 +/* Amplitude follow DSP setting; 1/4 bias current when cable<10m, + * otherwise half bias current + */ +#define QCA807X_CONTROL_DAC_DSP_VOLT_QUARTER_BIAS 5 +/* Full amplitude; same bias current setting with “010” and “011”, + * but half more bias is reduced when cable <10m + */ +#define QCA807X_CONTROL_DAC_FULL_VOLT_HALF_BIAS_SHORT 6 +/* Amplitude follow DSP; same bias current setting with “110”, default value */ +#define QCA807X_CONTROL_DAC_DSP_VOLT_HALF_BIAS_SHORT 7 + +#endif From patchwork Thu Feb 1 15:17:32 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christian Marangi X-Patchwork-Id: 1893991 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20230601 header.b=l1n3TxF3; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=139.178.88.99; helo=sv.mirrors.kernel.org; envelope-from=devicetree+bounces-37629-incoming-dt=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org [139.178.88.99]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4TQjKR0nn8z23gD for ; Fri, 2 Feb 2024 02:20:59 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id D8402289CD4 for ; Thu, 1 Feb 2024 15:20:57 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 6520115F327; Thu, 1 Feb 2024 15:18:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="l1n3TxF3" X-Original-To: devicetree@vger.kernel.org Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com [209.85.208.181]) (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 4CFE615DBDD; Thu, 1 Feb 2024 15:18:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706800709; cv=none; b=boRSDvd1OCU4EnOTzYAibrOSSWrW528Ld9BKB1DlJosGoyKeP66kGhfnFEbLIjCawU+r4phP9otGZKDWxTZIQF9lzLnHu8a8koe774LkXJ778gjyJCIN2mAo6UXDyfjdZbCtyirm9v3ygWx8pa1QztDN+q6NbJZJia3vuUP4WGc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706800709; c=relaxed/simple; bh=ryQW+grlt4EQVnHr4h5ru2inb8EsxZt0Umc7HsHCdjI=; h=From:To:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pV1+IMtQ1yAaE9KtXGYlX6Z2gvarH8ZPOZNtYWvMj9AWd0SepeEGNIMOTbCFzhVor7b7uYQNjAZNBAgId1clwFd94j7EiyVL4L2CH2UAHil335gcQu2PQLaPeGU6t70ylqsmQeMiF3fklq9RaXCRcAUV27Z9PZNudPAc3ViDLMQ= 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=l1n3TxF3; arc=none smtp.client-ip=209.85.208.181 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 Received: by mail-lj1-f181.google.com with SMTP id 38308e7fff4ca-2cf338e1438so10553061fa.0; Thu, 01 Feb 2024 07:18:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1706800704; x=1707405504; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:from:to:cc:subject:date:message-id :reply-to; bh=9z7Sog4aXnCpZ8GbfHY+8/HFbwv7GHMBypWwI4uSCTc=; b=l1n3TxF32X1x52NOaG2hr1uUOtzTTvtnohn6p3U0FXgpoKXYOMowlFJvjWbnF3ZLZM yKY9JeuJTC0mDkKWG5vt2rOFboEEtwoqWpNBlvfOuK1DcR8/BSztW2DQOR4byBOljzKy l/TZVDFelL8K/A0cTr42R4M2sJ97qt3joDfQOql7jcj6gRUAzK4MR14wcS0Sku2IvJLD JOf01Uv06yKXucfA6gtjQxcVJf/r0E72y2XNZ7LHgE68qxlGaN/gyc+d45IxgThQrAEY 2F52gDOTgpQ26GHHIFutB38Tk9ZsQKubGGricrd/JRwjigOccbT8u3AB2YBBq5jbuhBB WHZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706800704; x=1707405504; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9z7Sog4aXnCpZ8GbfHY+8/HFbwv7GHMBypWwI4uSCTc=; b=Xjp7Hvmjns+Z5fUc+qkB/JyZg7l4tQgfl5iWe2v2J7sF8AwTALcCWIKVZmjkoZ0l3y CVeLXN2GVOwnMKQ6yBdJDmGoqlB1Umok3vCw8RGHy22VyW0Y69eFbblPaFrwE25ecRMS SFPnM9s+ZbvTnwh1GQGelyUYhXd3Hu13ik6NIYi2QI5W4UCeOM0TzZ8/rjYOTt5nAxJn 9oBomEkwCLbwg+nbCjqgp4Xiji3txl1Mhop1Yecterbky6fbpGG+wWHKp19y3ozPROD/ noikY4uz2gfHdbDEwb76b61XVv3u9clDzcW2tIH9A3mXhIDTb8am+BYd1YfKsQQjceBf TxIQ== X-Gm-Message-State: AOJu0Yy5DhC4rFLZK6zuFmex8Sk1Z8ZjFkDrFlcE75LPNJlbyXPSSdBp vnibvg/hXHmaRNF1pI8ZQK9v+zSIlobC5FP6dRpTHQPiuRhaOoTI X-Google-Smtp-Source: AGHT+IF7KWtjP+sk2yU0LCsksDtK8zUGOU0ootfQ8bPlW33/Gfy6JNQRTJ1PFm4wpqD8rH3+q7JCuA== X-Received: by 2002:a2e:b546:0:b0:2cd:9e2f:c631 with SMTP id a6-20020a2eb546000000b002cd9e2fc631mr1525634ljn.10.1706800703617; Thu, 01 Feb 2024 07:18:23 -0800 (PST) X-Forwarded-Encrypted: i=0; AJvYcCX1B7ObFodeCniL3CVLn/wKXpHrNKdTa5GghEQekzO26B4PqHOSC4WkeK13gsDS9u1siqR+8vPN0a3XqQqw9dFxVBwOjXfF3W40Z5uWekERTTJHtCDgzpKK6h5bumxYghknRDGJ78pSbQ/xOYiOogdOl0xJZAzn+Mob7QSZ8Oc4ZuPfH+KpLdavt3In396o+6rEglP0hhjYAOvZe/jkA9EQ7f4EChsGWqDIXmP1jssUa3gg3tOQrtP9kg1ECfVwDPEXNlynD0bel3J9Fv/vnQkOCYTMyHZ6LJ3181dcCB8AgIV400MnRX+QT4fNF+eCOA2YrzNqbYNcgJlnLyxb/vaUAQUJooKBzjMVKmhnTATsR44yTq0+r6bFvkkHpgAw2xQ+T/iQsIOc8Mcf6ZpItX/DJl3q3FiCVIZzq0svH3B2ntNNRHdYtx788Cilr9IG9gXPr6fQmHDjZQ16eBQ+PP5hIy9/h0wXGjmEvrAhGWrcUWLZnmiMzE2QPZsJXsBhc74KNn6Jm8dyiCx5lVovIdMWj2MzwKT2Hdv+mwFkq6WL9xJ2N/9Qm5jeGaXrVrpGcSrfbq6o5DASpjdQMJiKsSSNoIrDEFxWJJ3/y9vQtoqd1LBxGTkBBqth Received: from localhost.localdomain (93-34-89-13.ip49.fastwebnet.it. [93.34.89.13]) by smtp.googlemail.com with ESMTPSA id z9-20020a2e3509000000b002cdf37ee19dsm2437978ljz.7.2024.02.01.07.18.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 Feb 2024 07:18:23 -0800 (PST) From: Christian Marangi To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Bjorn Andersson , Konrad Dybcio , Andrew Lunn , Heiner Kallweit , Russell King , Frank Rowand , Christian Marangi , Robert Marko , netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org Subject: [net-next PATCH v5 6/9] dt-bindings: net: Document Qcom QCA807x PHY package Date: Thu, 1 Feb 2024 16:17:32 +0100 Message-ID: <20240201151747.7524-7-ansuelsmth@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240201151747.7524-1-ansuelsmth@gmail.com> References: <20240201151747.7524-1-ansuelsmth@gmail.com> Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Document Qcom QCA807x PHY package. Qualcomm QCA807X Ethernet PHY is PHY package of 2 or 5 IEEE 802.3 clause 22 compliant 10BASE-Te, 100BASE-TX and 1000BASE-T PHY-s. Document the required property to make the PHY package correctly configure and work. Signed-off-by: Christian Marangi --- .../devicetree/bindings/net/qcom,qca807x.yaml | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/qcom,qca807x.yaml diff --git a/Documentation/devicetree/bindings/net/qcom,qca807x.yaml b/Documentation/devicetree/bindings/net/qcom,qca807x.yaml new file mode 100644 index 000000000000..1c3692897b02 --- /dev/null +++ b/Documentation/devicetree/bindings/net/qcom,qca807x.yaml @@ -0,0 +1,142 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/net/qcom,qca807x.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm QCA807X Ethernet PHY + +maintainers: + - Christian Marangi + - Robert Marko + +description: | + Qualcomm QCA807X Ethernet PHY is PHY package of 2 or 5 + IEEE 802.3 clause 22 compliant 10BASE-Te, 100BASE-TX and + 1000BASE-T PHY-s. + + They feature 2 SerDes, one for PSGMII or QSGMII connection with + MAC, while second one is SGMII for connection to MAC or fiber. + + Both models have a combo port that supports 1000BASE-X and + 100BASE-FX fiber. + + Each PHY inside of QCA807x series has 4 digitally controlled + output only pins that natively drive LED-s for up to 2 attached + LEDs. Some vendor also use these 4 output for GPIO usage without + attaching LEDs. + + Note that output pins can be set to drive LEDs OR GPIO, mixed + definition are not accepted. + + PHY package can be configured in 3 mode following this table: + + First Serdes mode Second Serdes mode + Option 1 PSGMII for copper Disabled + ports 0-4 + Option 2 PSGMII for copper 1000BASE-X / 100BASE-FX + ports 0-4 + Option 3 QSGMII for copper SGMII for + ports 0-3 copper port 4 + +$ref: ethernet-phy-package.yaml# + +properties: + compatible: + const: qcom,qca807x-package + + qcom,package-mode: + enum: + - qsgmii + - psgmii + + qcom,tx-driver-strength: + description: set the TX Amplifier value in mv. + If not defined, 600mw is set by default. + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [140, 160, 180, 200, 220, + 240, 260, 280, 300, 320, + 400, 500, 600] + +patternProperties: + ^ethernet-phy(@[a-f0-9]+)?$: + $ref: ethernet-phy.yaml# + + properties: + gpio-controller: + description: set the output lines as GPIO instead of LEDs + type: boolean + + '#gpio-cells': + description: number of GPIO cells for the PHY + const: 2 + + dependencies: + gpio-controller: ['#gpio-cells'] + + if: + required: + - gpio-controller + then: + properties: + leds: false + + unevaluatedProperties: false + +required: + - compatible + +unevaluatedProperties: false + +examples: + - | + #include + + mdio { + #address-cells = <1>; + #size-cells = <0>; + + ethernet-phy-package@0 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "qcom,qca807x-package"; + reg = <0>; + + qcom,package-mode = "qsgmii"; + + ethernet-phy@0 { + reg = <0>; + + leds { + #address-cells = <1>; + #size-cells = <0>; + + led@0 { + reg = <0>; + color = ; + function = LED_FUNCTION_LAN; + default-state = "keep"; + }; + }; + }; + + ethernet-phy@1 { + reg = <1>; + }; + + ethernet-phy@2 { + reg = <2>; + + gpio-controller; + #gpio-cells = <2>; + }; + + ethernet-phy@3 { + reg = <3>; + }; + + ethernet-phy@4 { + reg = <4>; + }; + }; + };