Message ID | 20231025154339.1270246-1-afd@ti.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:6359:6b8b:b0:164:83eb:24d7 with SMTP id ta11csp2750020rwb; Wed, 25 Oct 2023 08:44:09 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEz+JJYcmIfKb77DOlptbcUflusUpzEPebuTAu5tJlToyyu8pzHA9KQ1B9O0CbG/Ntmkl6z X-Received: by 2002:a05:6808:222a:b0:3a7:5d83:14d2 with SMTP id bd42-20020a056808222a00b003a75d8314d2mr17719270oib.17.1698248649039; Wed, 25 Oct 2023 08:44:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698248649; cv=none; d=google.com; s=arc-20160816; b=VEPcHkgqqKwAfpHfqehzzDnwk51oLKiIrGWG53Ng2LIOAwdxywmArCWIoc+VX+XhWs 6e59ekPqBfw4n2ZZTmDlqxa3J5MgJth0haULxL24CtULzxAn6O20Ha4cQphxM+N45CQz 0NGHDXLKgBypShlgefwshOSHfkTqllJryyPZJQBraPJYJ92DU3gubZDcHX9BiboFnk5k GcAlixFZUWzxHhNlYezLqH3I3bhwH0/au27sEmnWXuYy/gwS08OLbpDSiWdqys5eqcdK FbkP+H2oB8/7Mry5RvcA697G11+dAfSySpvSKAyNz2w4Ep1NNkGCNz4CFEDb3dp1EB9V 3aJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=b2vWuXgckxJUpT+tP14WafiD3Xak5aDPElXrXyECxbM=; fh=1Ovs9Cd/8y6BfBONVLNPMzJP6ZoO+YlmGkpIs2i6sH0=; b=fRHhDX1q3jtQM7ev06Q9aybqw3b82jedgH+bG2jUbv/BZbSxwOVc90EowOt6Cp73Xn J+uAmIYm6FYJqz1Ye8BAukb5GFA1QgCyKJjGesxExrzRLnwX/HNgMfVNrAC+5LsVmT30 j7NC0P/bzl9G2Pj37c0LrpiHK6OErSRRlzsP8RDoAlQqcNUCs+r0+pAT8z6YN1QQtSVM VLtLpaMK+2w9CUDkdTDKmRuNm6ux7km+eQJ+WSvIjqkIFanIYSCyWXG4/19IK1NY0Fcc n+sxwf6Hte4oEXCdtGA5GETZmJhPXxBMeI47G2JJuSDlfbEjG5FedxeKov9il+Qs0kdO pcMw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b="S/arV84f"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: from lipwig.vger.email (lipwig.vger.email. [23.128.96.33]) by mx.google.com with ESMTPS id f185-20020a251fc2000000b00da0419b31c3si4003582ybf.77.2023.10.25.08.44.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Oct 2023 08:44:09 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) client-ip=23.128.96.33; Authentication-Results: mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b="S/arV84f"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.33 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by lipwig.vger.email (Postfix) with ESMTP id 3FAC18149710; Wed, 25 Oct 2023 08:44:06 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at lipwig.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234524AbjJYPoB (ORCPT <rfc822;aposhian.dev@gmail.com> + 26 others); Wed, 25 Oct 2023 11:44:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52328 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232469AbjJYPoA (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Wed, 25 Oct 2023 11:44:00 -0400 Received: from fllv0016.ext.ti.com (fllv0016.ext.ti.com [198.47.19.142]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2722412F; Wed, 25 Oct 2023 08:43:57 -0700 (PDT) Received: from lelv0265.itg.ti.com ([10.180.67.224]) by fllv0016.ext.ti.com (8.15.2/8.15.2) with ESMTP id 39PFhf27097708; Wed, 25 Oct 2023 10:43:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1698248621; bh=b2vWuXgckxJUpT+tP14WafiD3Xak5aDPElXrXyECxbM=; h=From:To:CC:Subject:Date; b=S/arV84f3tRL76/ANqUb4PQyGmFqBFHxlk5jZ0ShBapqeLcmgfUpECTWIpgrpFMUO p2exa1Xxp1fxDv/G2Os1Ah30eDl3zIsRrnZu2UPZMtlps8QDRI3r5UgePBI9Tcn5HY oTsOZ0rbK9uyZHSJfo2Q+S46WsvcO1/rvUh9/5k8= Received: from DFLE106.ent.ti.com (dfle106.ent.ti.com [10.64.6.27]) by lelv0265.itg.ti.com (8.15.2/8.15.2) with ESMTPS id 39PFhfOF019144 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Wed, 25 Oct 2023 10:43:41 -0500 Received: from DFLE113.ent.ti.com (10.64.6.34) by DFLE106.ent.ti.com (10.64.6.27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23; Wed, 25 Oct 2023 10:43:41 -0500 Received: from lelv0326.itg.ti.com (10.180.67.84) by DFLE113.ent.ti.com (10.64.6.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.2507.23 via Frontend Transport; Wed, 25 Oct 2023 10:43:41 -0500 Received: from lelv0327.itg.ti.com (ileaxei01-snat.itg.ti.com [10.180.69.5]) by lelv0326.itg.ti.com (8.15.2/8.15.2) with ESMTP id 39PFhenW006861; Wed, 25 Oct 2023 10:43:40 -0500 From: Andrew Davis <afd@ti.com> To: Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Nishanth Menon <nm@ti.com>, Vignesh Raghavendra <vigneshr@ti.com>, Tero Kristo <kristo@kernel.org> CC: <devicetree@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>, Andrew Davis <afd@ti.com> Subject: [PATCH RFC] arm64: dts: ti: k3-j721e: Use nvmem to model the efuses Date: Wed, 25 Oct 2023 10:43:39 -0500 Message-ID: <20231025154339.1270246-1-afd@ti.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lipwig.vger.email Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (lipwig.vger.email [0.0.0.0]); Wed, 25 Oct 2023 08:44:06 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780742775138897435 X-GMAIL-MSGID: 1780742775138897435 |
Series |
[RFC] arm64: dts: ti: k3-j721e: Use nvmem to model the efuses
|
|
Commit Message
Andrew Davis
Oct. 25, 2023, 3:43 p.m. UTC
The nvmem subsystem is used to model efuse areas. Currently our efuse
areas are described using raw syscon nodes and offsets into that. The
use case for this efuse area is to store the SoC Ethernet MAC address.
This is already such a commonly supported use case that both the nvmem
and networking subsystem have built-in support for it. Use that here
to get the following:
1. More standard, complete, and accurate description of this hardware
efuse area.
2. Remove the need for this custom 'ti,syscon-efuse' property (which
I'm surprised was accepted into the binding in the first place..)
3. Allow the parent node to not have to be a syscon which fixes a DT
check warning.
RFC for now as we don't have a simple generic compatible for memory
mapped nvmem areas. For now we use the 'uniphier-efuse' compatible
as it is essentially just a generic mmio nvmem area, which means any
generic area is technically "compatible".
If this all is acceptable I'll split this patch into three and do
the same for all the other K3 devices still using this odd
'ti,syscon-efuse' pattern for v1.
Signed-off-by: Andrew Davis <afd@ti.com>
---
.../boot/dts/ti/k3-j721e-mcu-wakeup.dtsi | 24 ++++++++++++++++---
1 file changed, 21 insertions(+), 3 deletions(-)
Comments
+ Siddharth for CSPW driver, + Vibhore of CPUFreq On 25/10/23 21:13, Andrew Davis wrote: > The nvmem subsystem is used to model efuse areas. Currently our efuse > areas are described using raw syscon nodes and offsets into that. The > use case for this efuse area is to store the SoC Ethernet MAC address. > This is already such a commonly supported use case that both the nvmem > and networking subsystem have built-in support for it. Use that here > to get the following: > > 1. More standard, complete, and accurate description of this hardware > efuse area. > > 2. Remove the need for this custom 'ti,syscon-efuse' property (which > I'm surprised was accepted into the binding in the first place..) > > 3. Allow the parent node to not have to be a syscon which fixes a DT > check warning. > Sounds like a good plan to me. > RFC for now as we don't have a simple generic compatible for memory > mapped nvmem areas. For now we use the 'uniphier-efuse' compatible > as it is essentially just a generic mmio nvmem area, which means any > generic area is technically "compatible". > Looking at drivers/nvmem/ its seems like each SoC arch seems to have their own individual efuse driver? For K3 SoCs (at least AM62), there are other properties in addition to MAC address in the eFUSE which are useful for different drivers such as Speed grades. Can this be extended for the same? > If this all is acceptable I'll split this patch into three and do > the same for all the other K3 devices still using this odd > 'ti,syscon-efuse' pattern for v1. > > Signed-off-by: Andrew Davis <afd@ti.com> > --- > .../boot/dts/ti/k3-j721e-mcu-wakeup.dtsi | 24 ++++++++++++++++--- > 1 file changed, 21 insertions(+), 3 deletions(-) > > diff --git a/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi > index 05d6ef127ba78..8f488d43d49df 100644 > --- a/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi > +++ b/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi > @@ -34,13 +34,30 @@ k3_reset: reset-controller { > }; > }; > > - mcu_conf: syscon@40f00000 { > - compatible = "syscon", "simple-mfd"; > + mcu_conf: bus@40f00000 { > + compatible = "simple-bus"; > reg = <0x0 0x40f00000 0x0 0x20000>; > #address-cells = <1>; > #size-cells = <1>; > ranges = <0x0 0x0 0x40f00000 0x20000>; > > + efuse@200 { > + compatible = "socionext,uniphier-efuse"; > + #address-cells = <1>; > + #size-cells = <1>; > + reg = <0x200 0x40>; > + > + nvmem-layout { > + compatible = "fixed-layout"; > + #address-cells = <1>; > + #size-cells = <1>; > + > + mac_address: mac@0 { > + reg = <0x0 0x6>; > + }; > + }; > + }; > + > phy_gmii_sel: phy@4040 { > compatible = "ti,am654-phy-gmii-sel"; > reg = <0x4040 0x4>; > @@ -533,7 +550,8 @@ cpsw_port1: port@1 { > reg = <1>; > ti,mac-only; > label = "port1"; > - ti,syscon-efuse = <&mcu_conf 0x200>; > + nvmem-cells = <&mac_address>; > + nvmem-cell-names = "mac-address"; > phys = <&phy_gmii_sel 1>; > }; > };
On 10/29/23 11:25 PM, Vignesh Raghavendra wrote: > + Siddharth for CSPW driver, + Vibhore of CPUFreq > > On 25/10/23 21:13, Andrew Davis wrote: >> The nvmem subsystem is used to model efuse areas. Currently our efuse >> areas are described using raw syscon nodes and offsets into that. The >> use case for this efuse area is to store the SoC Ethernet MAC address. >> This is already such a commonly supported use case that both the nvmem >> and networking subsystem have built-in support for it. Use that here >> to get the following: >> >> 1. More standard, complete, and accurate description of this hardware >> efuse area. >> >> 2. Remove the need for this custom 'ti,syscon-efuse' property (which >> I'm surprised was accepted into the binding in the first place..) >> >> 3. Allow the parent node to not have to be a syscon which fixes a DT >> check warning. >> > > Sounds like a good plan to me. > >> RFC for now as we don't have a simple generic compatible for memory >> mapped nvmem areas. For now we use the 'uniphier-efuse' compatible >> as it is essentially just a generic mmio nvmem area, which means any >> generic area is technically "compatible". >> > > Looking at drivers/nvmem/ its seems like each SoC arch seems to have > their own individual efuse driver? > Yes, but I'm not sure I see the need for a whole new driver/compatible for every simple MMIO-based efuse ranges. Would be nice to have a generic one. > For K3 SoCs (at least AM62), there are other properties in addition to > MAC address in the eFUSE which are useful for different drivers such as > Speed grades. Can this be extended for the same? > Yes, with the "nvmem-layout" being worked on right now by the nvmem folks I see a clear path to extend this over the rest of our efuse area and replace the remaining "syscon" hacks we have been using. Andrew >> If this all is acceptable I'll split this patch into three and do >> the same for all the other K3 devices still using this odd >> 'ti,syscon-efuse' pattern for v1. >> >> Signed-off-by: Andrew Davis <afd@ti.com> >> --- >> .../boot/dts/ti/k3-j721e-mcu-wakeup.dtsi | 24 ++++++++++++++++--- >> 1 file changed, 21 insertions(+), 3 deletions(-) >> >> diff --git a/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi >> index 05d6ef127ba78..8f488d43d49df 100644 >> --- a/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi >> +++ b/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi >> @@ -34,13 +34,30 @@ k3_reset: reset-controller { >> }; >> }; >> >> - mcu_conf: syscon@40f00000 { >> - compatible = "syscon", "simple-mfd"; >> + mcu_conf: bus@40f00000 { >> + compatible = "simple-bus"; >> reg = <0x0 0x40f00000 0x0 0x20000>; >> #address-cells = <1>; >> #size-cells = <1>; >> ranges = <0x0 0x0 0x40f00000 0x20000>; >> >> + efuse@200 { >> + compatible = "socionext,uniphier-efuse"; >> + #address-cells = <1>; >> + #size-cells = <1>; >> + reg = <0x200 0x40>; >> + >> + nvmem-layout { >> + compatible = "fixed-layout"; >> + #address-cells = <1>; >> + #size-cells = <1>; >> + >> + mac_address: mac@0 { >> + reg = <0x0 0x6>; >> + }; >> + }; >> + }; >> + >> phy_gmii_sel: phy@4040 { >> compatible = "ti,am654-phy-gmii-sel"; >> reg = <0x4040 0x4>; >> @@ -533,7 +550,8 @@ cpsw_port1: port@1 { >> reg = <1>; >> ti,mac-only; >> label = "port1"; >> - ti,syscon-efuse = <&mcu_conf 0x200>; >> + nvmem-cells = <&mac_address>; >> + nvmem-cell-names = "mac-address"; >> phys = <&phy_gmii_sel 1>; >> }; >> }; >
diff --git a/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi index 05d6ef127ba78..8f488d43d49df 100644 --- a/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi +++ b/arch/arm64/boot/dts/ti/k3-j721e-mcu-wakeup.dtsi @@ -34,13 +34,30 @@ k3_reset: reset-controller { }; }; - mcu_conf: syscon@40f00000 { - compatible = "syscon", "simple-mfd"; + mcu_conf: bus@40f00000 { + compatible = "simple-bus"; reg = <0x0 0x40f00000 0x0 0x20000>; #address-cells = <1>; #size-cells = <1>; ranges = <0x0 0x0 0x40f00000 0x20000>; + efuse@200 { + compatible = "socionext,uniphier-efuse"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0x200 0x40>; + + nvmem-layout { + compatible = "fixed-layout"; + #address-cells = <1>; + #size-cells = <1>; + + mac_address: mac@0 { + reg = <0x0 0x6>; + }; + }; + }; + phy_gmii_sel: phy@4040 { compatible = "ti,am654-phy-gmii-sel"; reg = <0x4040 0x4>; @@ -533,7 +550,8 @@ cpsw_port1: port@1 { reg = <1>; ti,mac-only; label = "port1"; - ti,syscon-efuse = <&mcu_conf 0x200>; + nvmem-cells = <&mac_address>; + nvmem-cell-names = "mac-address"; phys = <&phy_gmii_sel 1>; }; };