From: Ian Dannapel <iansdannapel@gmail.com>
Add device tree bindings documentation for configuring Efinix FPGA
using serial SPI passive programming mode.
Signed-off-by: Ian Dannapel <iansdannapel@gmail.com>
---
.../bindings/fpga/efinix,trion-spi.yaml | 77 +++++++++++++++++++
1 file changed, 77 insertions(+)
create mode 100644 Documentation/devicetree/bindings/fpga/efinix,trion-spi.yaml
diff --git a/Documentation/devicetree/bindings/fpga/efinix,trion-spi.yaml b/Documentation/devicetree/bindings/fpga/efinix,trion-spi.yaml
new file mode 100644
index 000000000000..9ac37e5e5094
--- /dev/null
+++ b/Documentation/devicetree/bindings/fpga/efinix,trion-spi.yaml
@@ -0,0 +1,77 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/fpga/efinix,spi.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Efinix SPI FPGA Manager
+
+maintainers:
+ - Ian Dannapel <iansdannapel@gmail.com>
+
+description: |
+ Efinix FPGAs (Trion, Topaz, and Titanium families) support loading bitstreams
+ through "SPI Passive Mode".
+ Note: Additional pins hogs for bus width configuration must be set
+ elsewhere, if necessary. Only bus width 1x serial is supported.
+
+ References:
+ - https://www.efinixinc.com/docs/an006-configuring-trion-fpgas-v6.3.pdf
+ - https://www.efinixinc.com/docs/an033-configuring-titanium-fpgas-v2.8.pdf
+ - https://www.efinixinc.com/docs/an061-configuring-topaz-fpgas-v1.1.pdf
+
+allOf:
+ - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+properties:
+ compatible:
+ enum:
+ - efinix,trion-spi
+ - efinix,titanium-spi
+ - efinix,topaz-spi
+
+ spi-cpha: true
+
+ spi-cpol: true
+
+ spi-max-frequency:
+ maximum: 25000000
+
+ reg:
+ maxItems: 1
+
+ reset-gpios:
+ description:
+ reset and re-configuration trigger pin (low active)
+ maxItems: 1
+
+ cdone-gpios:
+ description:
+ optional configuration done status pin (high active)
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - reset-gpios
+
+unevaluatedProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/gpio/gpio.h>
+ spi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ cs-gpios = <&gpio5 13 GPIO_ACTIVE_LOW>;
+ fpga-mgr@0 {
+ compatible = "efinix,trion-spi";
+ reg = <0>;
+ spi-max-frequency = <25000000>;
+ spi-cpha;
+ spi-cpol;
+ reset-gpios = <&gpio4 17 GPIO_ACTIVE_LOW>;
+ cdone-gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
+ };
+ };
+...
--
2.43.0
On 19/11/2025 19:47, iansdannapel@gmail.com wrote: > From: Ian Dannapel <iansdannapel@gmail.com> > > Add device tree bindings documentation for configuring Efinix FPGA > using serial SPI passive programming mode. > > Signed-off-by: Ian Dannapel <iansdannapel@gmail.com> > --- > .../bindings/fpga/efinix,trion-spi.yaml | 77 +++++++++++++++++++ > 1 file changed, 77 insertions(+) > create mode 100644 Documentation/devicetree/bindings/fpga/efinix,trion-spi.yaml > > diff --git a/Documentation/devicetree/bindings/fpga/efinix,trion-spi.yaml b/Documentation/devicetree/bindings/fpga/efinix,trion-spi.yaml > new file mode 100644 > index 000000000000..9ac37e5e5094 > --- /dev/null > +++ b/Documentation/devicetree/bindings/fpga/efinix,trion-spi.yaml > @@ -0,0 +1,77 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/fpga/efinix,spi.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Efinix SPI FPGA Manager > + > +maintainers: > + - Ian Dannapel <iansdannapel@gmail.com> > + > +description: | > + Efinix FPGAs (Trion, Topaz, and Titanium families) support loading bitstreams > + through "SPI Passive Mode". > + Note: Additional pins hogs for bus width configuration must be set > + elsewhere, if necessary. Only bus width 1x serial is supported. > + > + References: > + - https://www.efinixinc.com/docs/an006-configuring-trion-fpgas-v6.3.pdf > + - https://www.efinixinc.com/docs/an033-configuring-titanium-fpgas-v2.8.pdf > + - https://www.efinixinc.com/docs/an061-configuring-topaz-fpgas-v1.1.pdf > + > +allOf: > + - $ref: /schemas/spi/spi-peripheral-props.yaml# > + > +properties: > + compatible: > + enum: > + - efinix,trion-spi > + - efinix,titanium-spi > + - efinix,topaz-spi Nothing improved. You received comments about this - twice or more even - so I feel like you just don't care about review. NAK Best regards, Krzysztof
Hello Krzysztof,
On Thu, Nov 20, 2025 at 3:13 PM Krzysztof Kozlowski <krzk@kernel.org> wrote:
> > +properties:
> > + compatible:
> > + enum:
> > + - efinix,trion-spi
> > + - efinix,titanium-spi
> > + - efinix,topaz-spi
>
>
> Nothing improved. You received comments about this - twice or more even
> - so I feel like you just don't care about review.
Sorry I am lost here, this is based on a similar driver, but it is
probably very outdated.
So the fallback pattern would be okay? Eg:
items:
- enum:
- efinix,trion-config
- efinix,titanium-config
- efinix,topaz-config
- const: efinix,fpga-config
Or would a single compatible be better since currently from the
drivers perspective there is
no difference in hardware?
> NAK
>
> Best regards,
> Krzysztof
Thanks for review
Best regards,
Ian
On 20/11/2025 16:55, Ian Dannapel wrote: > Hello Krzysztof, > > On Thu, Nov 20, 2025 at 3:13 PM Krzysztof Kozlowski <krzk@kernel.org> wrote: >>> +properties: >>> + compatible: >>> + enum: >>> + - efinix,trion-spi >>> + - efinix,titanium-spi >>> + - efinix,topaz-spi >> >> >> Nothing improved. You received comments about this - twice or more even >> - so I feel like you just don't care about review. > Sorry I am lost here, this is based on a similar driver, but it is > probably very outdated. > So the fallback pattern would be okay? Eg: > items: > - enum: > - efinix,trion-config > - efinix,titanium-config > - efinix,topaz-config > - const: efinix,fpga-config > Or would a single compatible be better since currently from the > drivers perspective there is > no difference in hardware? Almost, because I think you asked about this and I instead asked to use one specific device as the fallback. Choose the oldest device and use it the fallback for two others. There is plenty of examples - including example-schema - using it with oneOf syntax. Best regards, Krzysztof
On Wed, 19 Nov 2025 19:47:05 +0100, iansdannapel@gmail.com wrote: > From: Ian Dannapel <iansdannapel@gmail.com> > > Add device tree bindings documentation for configuring Efinix FPGA > using serial SPI passive programming mode. > > Signed-off-by: Ian Dannapel <iansdannapel@gmail.com> > --- > .../bindings/fpga/efinix,trion-spi.yaml | 77 +++++++++++++++++++ > 1 file changed, 77 insertions(+) > create mode 100644 Documentation/devicetree/bindings/fpga/efinix,trion-spi.yaml > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: dtschema/dtc warnings/errors: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/fpga/efinix,trion-spi.yaml: $id: Cannot determine base path from $id, relative path/filename doesn't match actual path or filename $id: http://devicetree.org/schemas/fpga/efinix,spi.yaml file: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/fpga/efinix,trion-spi.yaml doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20251119184708.566461-3-iansdannapel@gmail.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
© 2016 - 2025 Red Hat, Inc.