Message ID | 20240131230542.3993409-3-charles.perry@savoirfairelinux.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel+bounces-47337-ouuuleilei=gmail.com@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:693c:2685:b0:106:209c:c626 with SMTP id mn5csp95323dyc; Wed, 31 Jan 2024 15:43:02 -0800 (PST) X-Google-Smtp-Source: AGHT+IEuNH5XrHReQ8pdECQo88mla7yVi+6SdSBzBeqlFcxKzV/9Rekm81U/2d/2tG708qfenh// X-Received: by 2002:a05:6870:9106:b0:206:745c:fca7 with SMTP id o6-20020a056870910600b00206745cfca7mr812831oae.56.1706744582284; Wed, 31 Jan 2024 15:43:02 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706744582; cv=pass; d=google.com; s=arc-20160816; b=L8EwO4f9vO+TnjXLDSx4kL7O5HHYSdTxp23JB1RWFJdmI2XNggIUq04cf+touXySeg p0i3l4gphBTnrk8WOYT62Gt8clPITpe66yzbkoEcXFCDiuM13In/M6JOkr0PZS9+vm+S 0dHB4PICE2n8hPMf81asIRkNnV+/kidQZbIyY+PlCHVF70LWVR4zeibcXsAztylpHI/g +MruZlS87uJjc14gA2uKBahurL0x4w2jihQarijCtVBLOblUolJnY1vBrfp8d4XQ0wUj 3W/0B97lt4LAlQrDB0fEEqXBMf9N8IwgdSSE2QDgkUpOLOYX9O2GNcDociVDnordhVog Mvxg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature:dkim-filter; bh=dgN2vn3/cP5r2aYUFdkQveLiQbFbD9JN5zRJxM00TKs=; fh=JEfCkzY9s7gzTSHLVsq91vgGuSsloM3tcaOQOMARQz8=; b=tk5CfH3lvVz4Je3osgxeL3ndtJC+2Z4sVh/0hQRPLM2ou/yloGQ6572X6GkKD8v90J /ihT17EyEFevWRfeysF7ylchCMRyi2Ymvvz37GXo1TGCS3+yIXOYP4f91v6L+NjYesTF nyvfE1MLa7Yv/kLcAOa7udWGA1olGpVsWSF+2BBcKKjg78P3JBGXjpaIj48qFV4rbuIL r24VYyAL8eD2ApaENFuQc7jM/Smyu1Mt9d1h/cwSrvEiNshQGiIxKcEarThYMM4kz8Wy pV+/KytwC8OCmb78hm2DnAtIKsBbpH3KNx/l4ramfMxF/ZXk24DnatSC/pAPzDm0VW+t x6KA==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@savoirfairelinux.com header.s=DFC430D2-D198-11EC-948E-34200CB392D2 header.b=u3GWrzQD; arc=pass (i=1 spf=pass spfdomain=savoirfairelinux.com dkim=pass dkdomain=savoirfairelinux.com); spf=pass (google.com: domain of linux-kernel+bounces-47337-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-47337-ouuuleilei=gmail.com@vger.kernel.org" X-Forwarded-Encrypted: i=1; AJvYcCWa/QwNaFklFS0lnpWUbBrhJ28C4lUCwAZYQTcD5NTQU9BwJJL80AGKZdubYgGqQTw7S9QTXdyIAK6vTiwZ7WJEL0lGCg== Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id u69-20020a638548000000b005cdf7b74d05si10494695pgd.291.2024.01.31.15.43.02 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 31 Jan 2024 15:43:02 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-47337-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=pass header.i=@savoirfairelinux.com header.s=DFC430D2-D198-11EC-948E-34200CB392D2 header.b=u3GWrzQD; arc=pass (i=1 spf=pass spfdomain=savoirfairelinux.com dkim=pass dkdomain=savoirfairelinux.com); spf=pass (google.com: domain of linux-kernel+bounces-47337-ouuuleilei=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-47337-ouuuleilei=gmail.com@vger.kernel.org" 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 483D12A1D6E for <ouuuleilei@gmail.com>; Wed, 31 Jan 2024 23:25:36 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E82734644C; Wed, 31 Jan 2024 23:06:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=savoirfairelinux.com header.i=@savoirfairelinux.com header.b="u3GWrzQD" Received: from mail.savoirfairelinux.com (mail.savoirfairelinux.com [208.88.110.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C8AAF3AC01; Wed, 31 Jan 2024 23:06:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=208.88.110.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706742382; cv=none; b=pg8gfKauiuu88QbSVZMkOhDfoVlWZPoxj1JWaF4sL6PBJK1AkCYo49+ZwWTqB+4sESmABJS0L95XXVSqvcbcnSkd7I61QFQiSzD1REDfULphdvRGxYi/3iR/fST4VUV1MsGYnOimNg4y6uv8yGiRGKgz0krnBq6CGjA/P75rwT0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706742382; c=relaxed/simple; bh=4wZ7PI2bLEkF9E1BRl0PwdJvRJTX1sJZchySflNwG0w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=shEcJnemNQ36YdbPw0p2HBfyHWq+nrS0rK78apN1uvGhLjsoIB0v6x7H3r+a9pf0zQOz3ox+A1hwds0Zml85BS+2EA9FCMtQJ2v3bSmkIyf2Kyuw90AH5kFOTpGAtAgVaBKqZuNO4DEQLqUZlXopEtuAyX81KXYlliC6TvddGJM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=savoirfairelinux.com; spf=pass smtp.mailfrom=savoirfairelinux.com; dkim=pass (2048-bit key) header.d=savoirfairelinux.com header.i=@savoirfairelinux.com header.b=u3GWrzQD; arc=none smtp.client-ip=208.88.110.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=savoirfairelinux.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=savoirfairelinux.com Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id D2E169C2C74; Wed, 31 Jan 2024 18:06:18 -0500 (EST) Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavis, port 10032) with ESMTP id HiUU4rlm9KN4; Wed, 31 Jan 2024 18:06:18 -0500 (EST) Received: from localhost (localhost [127.0.0.1]) by mail.savoirfairelinux.com (Postfix) with ESMTP id 4B0889C3278; Wed, 31 Jan 2024 18:06:18 -0500 (EST) DKIM-Filter: OpenDKIM Filter v2.10.3 mail.savoirfairelinux.com 4B0889C3278 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=savoirfairelinux.com; s=DFC430D2-D198-11EC-948E-34200CB392D2; t=1706742378; bh=dgN2vn3/cP5r2aYUFdkQveLiQbFbD9JN5zRJxM00TKs=; h=From:To:Date:Message-ID:MIME-Version; b=u3GWrzQDnmdT2KV6rUqiFsaPX66hcejajkBF6HDigl6ZnSAVtsP4dXsEJ7kxNETmU y9UhogRLqDqhVEjpOI/CSRY2lupmDI0RpKSIpxN+FGUKRn6dWD6p8FtAlMerzKSa46 +HvFAX+g6cmzlWkJTVfIUIXUUFSyJFQr8rd1NM0MGlwoEQZq5YQW2ECCtA2cz11FHk hvaUZxteTNlk4OrFF+OaNFb0krb1DekUcQc6JRer7Db6DmSL+GRxwNmgYD7kgCyNxm 1G1mad5PA2Z+blM9r67av0KMy4cQLulfk4f+GV0Dq1mFXWpEshIkJPopDZs1oFcMyp /nHguV2eMiZ6A== X-Virus-Scanned: amavis at mail.savoirfairelinux.com Received: from mail.savoirfairelinux.com ([127.0.0.1]) by localhost (mail.savoirfairelinux.com [127.0.0.1]) (amavis, port 10026) with ESMTP id XLiIouecNLN8; Wed, 31 Jan 2024 18:06:18 -0500 (EST) Received: from pcperry.mtl.sfl (unknown [192.168.51.254]) by mail.savoirfairelinux.com (Postfix) with ESMTPSA id 29ED79C2C74; Wed, 31 Jan 2024 18:06:18 -0500 (EST) From: Charles Perry <charles.perry@savoirfairelinux.com> To: mdf@kernel.org Cc: avandiver@markem-imaje.com, bcody@markem-imaje.com, Charles Perry <charles.perry@savoirfairelinux.com>, Wu Hao <hao.wu@intel.com>, Xu Yilun <yilun.xu@intel.com>, Tom Rix <trix@redhat.com>, Rob Herring <robh+dt@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, Conor Dooley <conor+dt@kernel.org>, Michal Simek <michal.simek@amd.com>, linux-fpga@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH 2/3] dt-bindings: fpga: xlnx,fpga-slave-selectmap: add DT schema Date: Wed, 31 Jan 2024 18:05:32 -0500 Message-ID: <20240131230542.3993409-3-charles.perry@savoirfairelinux.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240131230542.3993409-1-charles.perry@savoirfairelinux.com> References: <20240129225602.3832449-1-charles.perry@savoirfairelinux.com> <20240131230542.3993409-1-charles.perry@savoirfairelinux.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1789467323822868450 X-GMAIL-MSGID: 1789651407011105897 |
Series |
fpga: xilinx-selectmap: add new driver
|
|
Commit Message
Charles Perry
Jan. 31, 2024, 11:05 p.m. UTC
Document the slave SelectMAP interface of Xilinx 7 series FPGA.
Signed-off-by: Charles Perry <charles.perry@savoirfairelinux.com>
---
.../bindings/fpga/xlnx,fpga-selectmap.yaml | 83 +++++++++++++++++++
1 file changed, 83 insertions(+)
create mode 100644 Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml
Comments
On 01/02/2024 00:05, Charles Perry wrote: > Document the slave SelectMAP interface of Xilinx 7 series FPGA. > > Signed-off-by: Charles Perry <charles.perry@savoirfairelinux.com> > --- > .../bindings/fpga/xlnx,fpga-selectmap.yaml | 83 +++++++++++++++++++ > 1 file changed, 83 insertions(+) > create mode 100644 Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml > > diff --git a/Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml b/Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml > new file mode 100644 > index 0000000000000..c9a446b43cdd9 > --- /dev/null > +++ b/Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml > @@ -0,0 +1,83 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/fpga/xlnx,fpga-selectmap.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Xilinx SelectMAP FPGA interface > + > +maintainers: > + - Charles Perry <charles.perry@savoirfairelinux.com> > + > +description: | > + Xilinx 7 Series FPGAs support a method of loading the bitstream over a > + parallel port named the SelectMAP interface in the documentation. Only > + the x8 mode is supported where data is loaded at one byte per rising edge of > + the clock, with the MSB of each byte presented to the D0 pin. > + > + Datasheets: > + https://www.xilinx.com/support/documentation/user_guides/ug470_7Series_Config.pdf > + > +allOf: > + - $ref: /schemas/memory-controllers/mc-peripheral-props.yaml# > + > +properties: > + compatible: > + enum: > + - xlnx,fpga-selectmap Your description mentions "7 Series" which is not present in compatible and title. What is exactly the product here? Interface usually is not the final binding, so is this specific to some particular FPGA or SoC? Best regards, Krzysztof
----- On Feb 1, 2024, at 3:07 AM, Krzysztof Kozlowski krzysztof.kozlowski@linaro.org wrote: > On 01/02/2024 00:05, Charles Perry wrote: >> Document the slave SelectMAP interface of Xilinx 7 series FPGA. >> >> Signed-off-by: Charles Perry <charles.perry@savoirfairelinux.com> >> --- >> .../bindings/fpga/xlnx,fpga-selectmap.yaml | 83 +++++++++++++++++++ >> 1 file changed, 83 insertions(+) >> create mode 100644 >> Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml >> >> diff --git a/Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml >> b/Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml >> new file mode 100644 >> index 0000000000000..c9a446b43cdd9 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml >> @@ -0,0 +1,83 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/fpga/xlnx,fpga-selectmap.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Xilinx SelectMAP FPGA interface >> + >> +maintainers: >> + - Charles Perry <charles.perry@savoirfairelinux.com> >> + >> +description: | >> + Xilinx 7 Series FPGAs support a method of loading the bitstream over a >> + parallel port named the SelectMAP interface in the documentation. Only >> + the x8 mode is supported where data is loaded at one byte per rising edge of >> + the clock, with the MSB of each byte presented to the D0 pin. >> + >> + Datasheets: >> + >> https://www.xilinx.com/support/documentation/user_guides/ug470_7Series_Config.pdf >> + >> +allOf: >> + - $ref: /schemas/memory-controllers/mc-peripheral-props.yaml# >> + >> +properties: >> + compatible: >> + enum: >> + - xlnx,fpga-selectmap > > Your description mentions "7 Series" which is not present in compatible > and title. What is exactly the product here? Interface usually is not > the final binding, so is this specific to some particular FPGA or SoC? > > > Best regards, > Krzysztof This is specific to the FPGA, the 7 series encompass the following part family: * Spartan-7 (XC7S6, XC7S15, ... XC7S100) * Artix-7 (XC7A12T, XC7A15T, ... XC7A200T) * Kintex-7 (XC7K70T, XC7K160T, ... XC7K480T) * Virtex-7 (XC7V585T, XC7V2000T, XC7VX330T, XC7VX415T, ... XC7VX1140T, XC7VH580T, XC7VH870T) The configuration guide of Xilinx [1] tells us that all those devices share a common programming scheme. I do agree that having a mention of "7 series" in the compatible name would be beneficial as Xilinx has more FPGA than just the 7 series. The name was inspired from "xlnx,fpga-slave-serial" which is the compatible for the serial interface. What about "xlnx,fpga-xc7-selectmap" ? I'm also seeing that I missed some mention of the "slave" word in the commit message, will fix. Regards, Charles [1] https://www.xilinx.com/support/documentation/user_guides/ug470_7Series_Config.pdf
On 01/02/2024 19:24, Charles Perry wrote: > > > ----- On Feb 1, 2024, at 3:07 AM, Krzysztof Kozlowski krzysztof.kozlowski@linaro.org wrote: > >> On 01/02/2024 00:05, Charles Perry wrote: >>> Document the slave SelectMAP interface of Xilinx 7 series FPGA. >>> >>> Signed-off-by: Charles Perry <charles.perry@savoirfairelinux.com> >>> --- >>> .../bindings/fpga/xlnx,fpga-selectmap.yaml | 83 +++++++++++++++++++ >>> 1 file changed, 83 insertions(+) >>> create mode 100644 >>> Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml >>> >>> diff --git a/Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml >>> b/Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml >>> new file mode 100644 >>> index 0000000000000..c9a446b43cdd9 >>> --- /dev/null >>> +++ b/Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml >>> @@ -0,0 +1,83 @@ >>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >>> +%YAML 1.2 >>> +--- >>> +$id: http://devicetree.org/schemas/fpga/xlnx,fpga-selectmap.yaml# >>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>> + >>> +title: Xilinx SelectMAP FPGA interface >>> + >>> +maintainers: >>> + - Charles Perry <charles.perry@savoirfairelinux.com> >>> + >>> +description: | >>> + Xilinx 7 Series FPGAs support a method of loading the bitstream over a >>> + parallel port named the SelectMAP interface in the documentation. Only >>> + the x8 mode is supported where data is loaded at one byte per rising edge of >>> + the clock, with the MSB of each byte presented to the D0 pin. >>> + >>> + Datasheets: >>> + >>> https://www.xilinx.com/support/documentation/user_guides/ug470_7Series_Config.pdf >>> + >>> +allOf: >>> + - $ref: /schemas/memory-controllers/mc-peripheral-props.yaml# >>> + >>> +properties: >>> + compatible: >>> + enum: >>> + - xlnx,fpga-selectmap >> >> Your description mentions "7 Series" which is not present in compatible >> and title. What is exactly the product here? Interface usually is not >> the final binding, so is this specific to some particular FPGA or SoC? >> >> >> Best regards, >> Krzysztof > > This is specific to the FPGA, the 7 series encompass the following part > family: > * Spartan-7 (XC7S6, XC7S15, ... XC7S100) > * Artix-7 (XC7A12T, XC7A15T, ... XC7A200T) > * Kintex-7 (XC7K70T, XC7K160T, ... XC7K480T) > * Virtex-7 (XC7V585T, XC7V2000T, > XC7VX330T, XC7VX415T, ... XC7VX1140T, > XC7VH580T, XC7VH870T) > > > The configuration guide of Xilinx [1] tells us that all those devices > share a common programming scheme. > > I do agree that having a mention of "7 series" in the compatible name > would be beneficial as Xilinx has more FPGA than just the 7 series. > The name was inspired from "xlnx,fpga-slave-serial" which is the compatible > for the serial interface. > > What about "xlnx,fpga-xc7-selectmap" ? > I am not sure what xc7 is and how Xilinx numbers it products, but compatibles are supposed to be device specific, not family. Common programming model could be denoted with generic fallback, but then the fallback could be device-specific as well, which usually we recommend. Best regards, Krzysztof
----- On Feb 2, 2024, at 5:49 AM, Krzysztof Kozlowski krzysztof.kozlowski@linaro.org wrote: > On 01/02/2024 19:24, Charles Perry wrote: >> >> >> ----- On Feb 1, 2024, at 3:07 AM, Krzysztof Kozlowski >> krzysztof.kozlowski@linaro.org wrote: >> >>> On 01/02/2024 00:05, Charles Perry wrote: >>>> Document the slave SelectMAP interface of Xilinx 7 series FPGA. >>>> >>>> Signed-off-by: Charles Perry <charles.perry@savoirfairelinux.com> >>>> --- >>>> .../bindings/fpga/xlnx,fpga-selectmap.yaml | 83 +++++++++++++++++++ >>>> 1 file changed, 83 insertions(+) >>>> create mode 100644 >>>> Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml >>>> >>>> diff --git a/Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml >>>> b/Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml >>>> new file mode 100644 >>>> index 0000000000000..c9a446b43cdd9 >>>> --- /dev/null >>>> +++ b/Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml >>>> @@ -0,0 +1,83 @@ >>>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >>>> +%YAML 1.2 >>>> +--- >>>> +$id: http://devicetree.org/schemas/fpga/xlnx,fpga-selectmap.yaml# >>>> +$schema: http://devicetree.org/meta-schemas/core.yaml# >>>> + >>>> +title: Xilinx SelectMAP FPGA interface >>>> + >>>> +maintainers: >>>> + - Charles Perry <charles.perry@savoirfairelinux.com> >>>> + >>>> +description: | >>>> + Xilinx 7 Series FPGAs support a method of loading the bitstream over a >>>> + parallel port named the SelectMAP interface in the documentation. Only >>>> + the x8 mode is supported where data is loaded at one byte per rising edge of >>>> + the clock, with the MSB of each byte presented to the D0 pin. >>>> + >>>> + Datasheets: >>>> + >>>> https://www.xilinx.com/support/documentation/user_guides/ug470_7Series_Config.pdf >>>> + >>>> +allOf: >>>> + - $ref: /schemas/memory-controllers/mc-peripheral-props.yaml# >>>> + >>>> +properties: >>>> + compatible: >>>> + enum: >>>> + - xlnx,fpga-selectmap >>> >>> Your description mentions "7 Series" which is not present in compatible >>> and title. What is exactly the product here? Interface usually is not >>> the final binding, so is this specific to some particular FPGA or SoC? >>> >>> >>> Best regards, >>> Krzysztof >> >> This is specific to the FPGA, the 7 series encompass the following part >> family: >> * Spartan-7 (XC7S6, XC7S15, ... XC7S100) >> * Artix-7 (XC7A12T, XC7A15T, ... XC7A200T) >> * Kintex-7 (XC7K70T, XC7K160T, ... XC7K480T) >> * Virtex-7 (XC7V585T, XC7V2000T, >> XC7VX330T, XC7VX415T, ... XC7VX1140T, >> XC7VH580T, XC7VH870T) >> >> >> The configuration guide of Xilinx [1] tells us that all those devices >> share a common programming scheme. >> >> I do agree that having a mention of "7 series" in the compatible name >> would be beneficial as Xilinx has more FPGA than just the 7 series. >> The name was inspired from "xlnx,fpga-slave-serial" which is the compatible >> for the serial interface. >> >> What about "xlnx,fpga-xc7-selectmap" ? >> > > I am not sure what xc7 is and how Xilinx numbers it products, but > compatibles are supposed to be device specific, not family. Common > programming model could be denoted with generic fallback, but then the > fallback could be device-specific as well, which usually we recommend. > > Best regards, > Krzysztof XC7 is the common prefix for all 4 families of the 7 series. Then we have XC7S, XC7A, XC7K and XC7V as the prefixes of those 4 family. Following that is a number denoting the number of logic element, e.g. XC7S6, XC7S15, XC7S100, ... I don't think that should be part of the compatible. Finally there will be another set of letters and numbers for the temperature grade and physical package, but those are usually not part of a compatible string. I'll change it to four compatibles: "xlnx,fpga-xc7[sakv]-selectmap" so that the driver can do device specific things if anomalies are found in one of them. Thanks again for the review! Regards, Charles
diff --git a/Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml b/Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml new file mode 100644 index 0000000000000..c9a446b43cdd9 --- /dev/null +++ b/Documentation/devicetree/bindings/fpga/xlnx,fpga-selectmap.yaml @@ -0,0 +1,83 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/fpga/xlnx,fpga-selectmap.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Xilinx SelectMAP FPGA interface + +maintainers: + - Charles Perry <charles.perry@savoirfairelinux.com> + +description: | + Xilinx 7 Series FPGAs support a method of loading the bitstream over a + parallel port named the SelectMAP interface in the documentation. Only + the x8 mode is supported where data is loaded at one byte per rising edge of + the clock, with the MSB of each byte presented to the D0 pin. + + Datasheets: + https://www.xilinx.com/support/documentation/user_guides/ug470_7Series_Config.pdf + +allOf: + - $ref: /schemas/memory-controllers/mc-peripheral-props.yaml# + +properties: + compatible: + enum: + - xlnx,fpga-selectmap + + reg: + description: + At least 1 byte of memory mapped IO + maxItems: 1 + + prog-gpios: + description: + config pin (referred to as PROGRAM_B in the manual) + maxItems: 1 + + done-gpios: + description: + config status pin (referred to as DONE in the manual) + maxItems: 1 + + init-gpios: + description: + initialization status and configuration error pin + (referred to as INIT_B in the manual) + maxItems: 1 + + csi-gpios: + description: + chip select pin (referred to as CSI_B in the manual) + Optional gpio for if the bus controller does not provide a chip select. + maxItems: 1 + + rdwr-gpios: + description: + read/write select pin (referred to as RDWR_B in the manual) + Optional gpio for if the bus controller does not provide this pin. + maxItems: 1 + +required: + - compatible + - reg + - prog-gpios + - done-gpios + - init-gpios + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + fpga-mgr@8000000 { + compatible = "xlnx,fpga-selectmap"; + reg = <0x8000000 0x4>; + prog-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>; + init-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; + done-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>; + csi-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>; + rdwr-gpios = <&gpio3 10 GPIO_ACTIVE_LOW>; + }; +...