From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E53ADECAAD2 for ; Fri, 26 Aug 2022 08:49:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=cfYJ7K3zXVClHR1wFNlgCZ6hUm/B0YhZs4blw8cqgZU=; b=ZKz/NqIIyNPpvQ 1DsAMthxzYlwhTJdM+YBHbVsZv/AJ7ehi3rzvJKlckb3XSdWm59zKbKFq71YW7a7woqwidrqYMG9L gP7oRebMFZX/S6SkNT6TwQHpQ6Vlc8s/Zc/3YBTSUx0zxVfbW2mlOtK6N/LqF/NZE7lOqvNbfiCR1 8UwSWzwAjkljj/meRLkYyzX9h8L5W0kjHvO/7DJnfYR6x3/3T1WM7AdkcoCiLCmzubo7g5JKkVWVU o03s8wuh3FUDNaHvyPckSC/ln6Y3yXbjtNnXOZBOBLX4FPJEvxrEYxAuKH8fO6scSN2iI8ymyyWHF ZgLw4gyEck0okJEw9NvQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oRV06-00HLgq-Ns; Fri, 26 Aug 2022 08:47:40 +0000 Received: from mail-lj1-x22c.google.com ([2a00:1450:4864:20::22c]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oRV01-00HLd8-AW for linux-arm-kernel@lists.infradead.org; Fri, 26 Aug 2022 08:47:35 +0000 Received: by mail-lj1-x22c.google.com with SMTP id x10so939679ljq.4 for ; Fri, 26 Aug 2022 01:47:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc; bh=uzcRohvbBhqjcSWyHd3c3YKQQRgXjC0tFfXFqKAXllc=; b=RMz3QFn8cpiiytx48RSy5mO2azikJR9JYcLa4TPyM5kX29wZDTq6BxkrJReT3bDpD/ wgXpqdzWAgxCTzg8kg4soBaJjbnk3EQiS5xi2o7kA8nQNR2WVKWQ9vTwAy8APcruc8BB C55hpNb2nXWJ5VcvXNKehm3rN14Xsu4pTTHsXjlSQIgUDc+2sCtZlHpGs74Hv1W11sU8 fWdt2NOWWdDFD/RKblPcrALZChg1tPYbc6ei7lJPNpTWes1LYmuRgzCTTRBOag72OUz8 Qc8SiBtVYzzyvLXuMyflBgtrmsK0CBMNzuggh3BaGgyxco+81S6m3J50F14xg395TrZJ UCsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc; bh=uzcRohvbBhqjcSWyHd3c3YKQQRgXjC0tFfXFqKAXllc=; b=B4WJATsE4EsqSicqk7kG1OSr1WrZ0bSLc8TzBmgkAZLFtxL9FGpYxMO+GLRyBZvYrf zHQoPzIiZPZ0f9dOiEWU43JcCvJF0dcMRTWVEccn1cKyhu5xym/BtPOBBlZXxoF/MCmL K086Dtl1O9KbF+n67fnx5/z2voxyszZvX2cLvgOCHJhYr2YQHf3liFIUr6m8WxIInDqz 7fOcKWGwUr9ngym0rCFiSM7J1MVivC19UPzFi3ysq5b58bXR8gUyXQYTL6dsmjnVlNJ8 Gsi+a9NITzCC5H4NKsvGJWr67Y9qCApqPgDEyaqmP4LghUAmxkifRyTvCGhSLsZ/J6EC DH4w== X-Gm-Message-State: ACgBeo1UF1StgstIYZrEbRH9RnEc0maSYny1KnEUSBxRTaO9MPgcPQNN G/zi5IdSSULyDxzoQjq69dI= X-Google-Smtp-Source: AA6agR5zu1vqqcn8tswJzFY0GOx6nLp55E1cNfwGk48LG4zenXPxJDucyj1pGnaor/pEVH/6M2jLlg== X-Received: by 2002:a05:651c:1720:b0:261:bfb0:f832 with SMTP id be32-20020a05651c172000b00261bfb0f832mr1933020ljb.346.1661503650333; Fri, 26 Aug 2022 01:47:30 -0700 (PDT) Received: from mobilestation ([95.79.140.178]) by smtp.gmail.com with ESMTPSA id t8-20020a056512208800b0048b13d0b896sm306711lfr.141.2022.08.26.01.47.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Aug 2022 01:47:29 -0700 (PDT) Date: Fri, 26 Aug 2022 11:47:27 +0300 From: Serge Semin To: Krzysztof Kozlowski Cc: Serge Semin , Michal Simek , Borislav Petkov , Mauro Carvalho Chehab , Tony Luck , Rob Herring , Manish Narani , Alexey Malahov , Michail Ivanov , Pavel Parkhomenko , Punnaiah Choudary Kalluri , Dinh Nguyen , James Morse , Robert Richter , Krzysztof Kozlowski , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-edac@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 01/13] dt-bindings: memory: snps: Extend schema with IRQs/resets/clocks props Message-ID: <20220826084726.7ra7342pa33bci5h@mobilestation> References: <20220822191957.28546-1-Sergey.Semin@baikalelectronics.ru> <20220822191957.28546-2-Sergey.Semin@baikalelectronics.ru> <6a803554-bc1a-9f53-b7e2-7571fffea7e0@linaro.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <6a803554-bc1a-9f53-b7e2-7571fffea7e0@linaro.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220826_014733_430091_256B4B90 X-CRM114-Status: GOOD ( 38.04 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Tue, Aug 23, 2022 at 11:11:08AM +0300, Krzysztof Kozlowski wrote: > On 22/08/2022 22:19, Serge Semin wrote: > > First of all the DW uMCTL2 DDRC IP-core supports the individual IRQ lines > > for each standard event: ECC Corrected Error, ECC Uncorrected Error, ECC > > Address Protection, Scrubber-Done signal, DFI Parity/CRC Error. It's > > possible that the platform engineers merge them up in the IRQ controller > > level. So let's add both configuration support to the DT-schema. > > > > Secondly each IP-core interface is supplied with a clock source like APB > > reference clock, AXI-ports clock, main DDRC core reference clock and > > Scrubber low-power clock. In addition to that each clock domain can have a > > dedicated reset signal. Let's add the properties for at least the denoted > > clock sources and the corresponding reset controls. > > > > Signed-off-by: Serge Semin > > --- > > .../snps,dw-umctl2-ddrc.yaml | 65 +++++++++++++++++-- > > 1 file changed, 60 insertions(+), 5 deletions(-) > > > > diff --git a/Documentation/devicetree/bindings/memory-controllers/snps,dw-umctl2-ddrc.yaml b/Documentation/devicetree/bindings/memory-controllers/snps,dw-umctl2-ddrc.yaml > > index 787d91d64eee..8db92210cfe1 100644 > > --- a/Documentation/devicetree/bindings/memory-controllers/snps,dw-umctl2-ddrc.yaml > > +++ b/Documentation/devicetree/bindings/memory-controllers/snps,dw-umctl2-ddrc.yaml > > @@ -13,13 +13,13 @@ maintainers: > > > > description: | > > Synopsys DesignWare Enhanced uMCTL2 DDR Memory Controller is cappable of > > Typo in original text: capable > > > - working with DDR devices up to (LP)DDR4 protocol. It can be equipped > > + working with DDR devices upporting to (LP)DDR4 protocol. It can be equipped > > Typo - supporting? > > > with SEC/DEC ECC feature if DRAM data bus width is either 16-bits or > > 32-bits or 64-bits wide. > > > > - The ZynqMP DDR controller is based on the DW uMCTL2 v2.40a controller. > > - It has an optional SEC/DEC ECC support in 64-bit and 32-bit bus width > > - configurations. > > + For instance the ZynqMP DDR controller is based on the DW uMCTL2 v2.40a > > + controller. It has an optional SEC/DEC ECC support in 64-bit and 32-bit > > + bus width configurations. > > These changes do not look related to your patch, so split them. Right. Sorry for the confusing change. Indeed this update belongs to a different patch. I'll move it to the patchset #0 to the patch with the Zynq DT-bindings detachment. > > > > > properties: > > compatible: > > @@ -28,11 +28,55 @@ properties: > > - xlnx,zynqmp-ddrc-2.40a > > > > interrupts: > > - maxItems: 1 > > + description: > > + DW uMCTL2 DDRC IP-core provides individual IRQ signal for each event":" > > + ECC Corrected Error, ECC Uncorrected Error, ECC Address Protection, > > + Scrubber-Done signal, DFI Parity/CRC Error. Some platforms may have the > > + signals merged before they reach the IRQ controller or have some of them > > + absent in case if the corresponding feature is unavailable/disabled. > > + minItems: 1 > > + maxItems: 5 > > List has to be strictly ordered, so instead list and describe the > items... unless you are sure that any of these interrupt lines can be > merged into any other one? That's what I noted in the property description. Anyway please see the interrupt-names property for the possible interrupts setup. To sum up some of the IRQs might be absent or some of them merged into a single signal. > > > + > > + interrupt-names: > > + minItems: 1 > > + maxItems: 5 > > + oneOf: > > + - description: Common ECC CE/UE/Scrubber/DFI Errors IRQ > > + items: > > + - const: ecc > > + - description: Individual ECC CE/UE/Scrubber/DFI Errors IRQs > > + items: > > + enum: [ ecc_ce, ecc_ue, ecc_ap, ecc_sbr, dfi_e ] > > > > reg: > > maxItems: 1 > > > > + clocks: > > + description: > > + A standard set of the clock sources contains CSRs bus clock, AXI-ports > > + reference clock, DDRC core clock, Scrubber standalone clock > > + (synchronous to the DDRC clock). > > + minItems: 1 > > + maxItems: 4 > > I expect list to be strictly defined, not flexible. Some of the clock sources might be absent or tied up to another one (for instance pclk, aclk and sbr can be clocked from a single core clock source). It depends on the IP-core synthesize parameters. > > > + > > + clock-names: > > + minItems: 1 > > + maxItems: 4 > > + items: > > + enum: [ pclk, aclk, core, sbr ] > > + > > + resets: > > + description: > > + Each clock domain can have separate reset signal. > > + minItems: 1 > > + maxItems: 4 > > + > > + reset-names: > > + minItems: 1 > > + maxItems: 4 > > + items: > > + enum: [ prst, arst, core, sbr ] > > The same. The same as for the clock. > > > + > > required: > > - compatible > > - reg > > @@ -48,4 +92,15 @@ examples: > > interrupt-parent = <&gic>; > > interrupts = <0 112 4>; > > }; > > + - | > > + memory-controller@fd070000 { > > + compatible = "snps,ddrc-3.80a"; > > + reg = <0x3d400000 0x400000>; > > + > > + interrupts = <0 147 4>, <0 148 4>, <0 149 4>, <0 150 4>; > > Use proper defines. What do you mean? Which defines do you think would be proper? If you meant the IRQ DT-bindings macros, then what difference does it make for a generic device in the DT-binding example? Note since the device is defined as generic it can be placed on different platforms with different interrupt controller requirements. So what do you mean by "proper" in this case? -Serge > > > + interrupt-names = "ecc_ce", "ecc_ue", "ecc_sbr", "dfi_e"; > > + > > + clocks = <&rcu 0>, <&rcu 5>, <&rcu 6>, <&rcu 7>; > > + clock-names = "pclk", "aclk", "core", "sbr"; > > + }; > > ... > > > Best regards, > Krzysztof _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel