1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/fpga/lattice,sysconfig.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Lattice Slave SPI sysCONFIG FPGA manager 8 9maintainers: 10 - Ivan Bornyakov <i.bornyakov@metrotek.ru> 11 12description: | 13 Lattice sysCONFIG port, which is used for FPGA configuration, among others, 14 have Slave Serial Peripheral Interface. Only full reconfiguration is 15 supported. 16 17 Programming of ECP5 is done by writing uncompressed bitstream image in .bit 18 format into FPGA's SRAM configuration memory. 19 20properties: 21 compatible: 22 enum: 23 - lattice,sysconfig-ecp5 24 25 reg: 26 maxItems: 1 27 28 program-gpios: 29 description: 30 A GPIO line connected to PROGRAMN (active low) pin of the device. 31 Initiates configuration sequence. 32 maxItems: 1 33 34 init-gpios: 35 description: 36 A GPIO line connected to INITN (active low) pin of the device. 37 Indicates that the FPGA is ready to be configured. 38 maxItems: 1 39 40 done-gpios: 41 description: 42 A GPIO line connected to DONE (active high) pin of the device. 43 Indicates that the configuration sequence is complete. 44 maxItems: 1 45 46required: 47 - compatible 48 - reg 49 50allOf: 51 - $ref: /schemas/spi/spi-peripheral-props.yaml 52 53 - if: 54 properties: 55 compatible: 56 contains: 57 const: lattice,sysconfig-ecp5 58 then: 59 properties: 60 spi-max-frequency: 61 maximum: 60000000 62 63unevaluatedProperties: false 64 65examples: 66 - | 67 #include <dt-bindings/gpio/gpio.h> 68 69 spi { 70 #address-cells = <1>; 71 #size-cells = <0>; 72 73 fpga-mgr@0 { 74 compatible = "lattice,sysconfig-ecp5"; 75 reg = <0>; 76 spi-max-frequency = <20000000>; 77 program-gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; 78 init-gpios = <&gpio3 3 GPIO_ACTIVE_LOW>; 79 done-gpios = <&gpio3 2 GPIO_ACTIVE_HIGH>; 80 }; 81 }; 82