1*7d0873ebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*7d0873ebSEmmanuel Vadot%YAML 1.2 3*7d0873ebSEmmanuel Vadot--- 4*7d0873ebSEmmanuel Vadot$id: http://devicetree.org/schemas/fpga/xlnx,fpga-selectmap.yaml# 5*7d0873ebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*7d0873ebSEmmanuel Vadot 7*7d0873ebSEmmanuel Vadottitle: Xilinx SelectMAP FPGA interface 8*7d0873ebSEmmanuel Vadot 9*7d0873ebSEmmanuel Vadotmaintainers: 10*7d0873ebSEmmanuel Vadot - Charles Perry <charles.perry@savoirfairelinux.com> 11*7d0873ebSEmmanuel Vadot 12*7d0873ebSEmmanuel Vadotdescription: | 13*7d0873ebSEmmanuel Vadot Xilinx 7 Series FPGAs support a method of loading the bitstream over a 14*7d0873ebSEmmanuel Vadot parallel port named the SelectMAP interface in the documentation. Only 15*7d0873ebSEmmanuel Vadot the x8 mode is supported where data is loaded at one byte per rising edge of 16*7d0873ebSEmmanuel Vadot the clock, with the MSB of each byte presented to the D0 pin. 17*7d0873ebSEmmanuel Vadot 18*7d0873ebSEmmanuel Vadot Datasheets: 19*7d0873ebSEmmanuel Vadot https://www.xilinx.com/support/documentation/user_guides/ug470_7Series_Config.pdf 20*7d0873ebSEmmanuel Vadot 21*7d0873ebSEmmanuel VadotallOf: 22*7d0873ebSEmmanuel Vadot - $ref: /schemas/memory-controllers/mc-peripheral-props.yaml# 23*7d0873ebSEmmanuel Vadot 24*7d0873ebSEmmanuel Vadotproperties: 25*7d0873ebSEmmanuel Vadot compatible: 26*7d0873ebSEmmanuel Vadot enum: 27*7d0873ebSEmmanuel Vadot - xlnx,fpga-xc7s-selectmap 28*7d0873ebSEmmanuel Vadot - xlnx,fpga-xc7a-selectmap 29*7d0873ebSEmmanuel Vadot - xlnx,fpga-xc7k-selectmap 30*7d0873ebSEmmanuel Vadot - xlnx,fpga-xc7v-selectmap 31*7d0873ebSEmmanuel Vadot 32*7d0873ebSEmmanuel Vadot reg: 33*7d0873ebSEmmanuel Vadot description: 34*7d0873ebSEmmanuel Vadot At least 1 byte of memory mapped IO 35*7d0873ebSEmmanuel Vadot maxItems: 1 36*7d0873ebSEmmanuel Vadot 37*7d0873ebSEmmanuel Vadot prog-gpios: 38*7d0873ebSEmmanuel Vadot description: 39*7d0873ebSEmmanuel Vadot config pin (referred to as PROGRAM_B in the manual) 40*7d0873ebSEmmanuel Vadot maxItems: 1 41*7d0873ebSEmmanuel Vadot 42*7d0873ebSEmmanuel Vadot done-gpios: 43*7d0873ebSEmmanuel Vadot description: 44*7d0873ebSEmmanuel Vadot config status pin (referred to as DONE in the manual) 45*7d0873ebSEmmanuel Vadot maxItems: 1 46*7d0873ebSEmmanuel Vadot 47*7d0873ebSEmmanuel Vadot init-gpios: 48*7d0873ebSEmmanuel Vadot description: 49*7d0873ebSEmmanuel Vadot initialization status and configuration error pin 50*7d0873ebSEmmanuel Vadot (referred to as INIT_B in the manual) 51*7d0873ebSEmmanuel Vadot maxItems: 1 52*7d0873ebSEmmanuel Vadot 53*7d0873ebSEmmanuel Vadot csi-gpios: 54*7d0873ebSEmmanuel Vadot description: 55*7d0873ebSEmmanuel Vadot chip select pin (referred to as CSI_B in the manual) 56*7d0873ebSEmmanuel Vadot Optional gpio for if the bus controller does not provide a chip select. 57*7d0873ebSEmmanuel Vadot maxItems: 1 58*7d0873ebSEmmanuel Vadot 59*7d0873ebSEmmanuel Vadot rdwr-gpios: 60*7d0873ebSEmmanuel Vadot description: 61*7d0873ebSEmmanuel Vadot read/write select pin (referred to as RDWR_B in the manual) 62*7d0873ebSEmmanuel Vadot Optional gpio for if the bus controller does not provide this pin. 63*7d0873ebSEmmanuel Vadot maxItems: 1 64*7d0873ebSEmmanuel Vadot 65*7d0873ebSEmmanuel Vadotrequired: 66*7d0873ebSEmmanuel Vadot - compatible 67*7d0873ebSEmmanuel Vadot - reg 68*7d0873ebSEmmanuel Vadot - prog-gpios 69*7d0873ebSEmmanuel Vadot - done-gpios 70*7d0873ebSEmmanuel Vadot - init-gpios 71*7d0873ebSEmmanuel Vadot 72*7d0873ebSEmmanuel VadotunevaluatedProperties: false 73*7d0873ebSEmmanuel Vadot 74*7d0873ebSEmmanuel Vadotexamples: 75*7d0873ebSEmmanuel Vadot - | 76*7d0873ebSEmmanuel Vadot #include <dt-bindings/gpio/gpio.h> 77*7d0873ebSEmmanuel Vadot fpga-mgr@8000000 { 78*7d0873ebSEmmanuel Vadot compatible = "xlnx,fpga-xc7s-selectmap"; 79*7d0873ebSEmmanuel Vadot reg = <0x8000000 0x4>; 80*7d0873ebSEmmanuel Vadot prog-gpios = <&gpio5 5 GPIO_ACTIVE_LOW>; 81*7d0873ebSEmmanuel Vadot init-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>; 82*7d0873ebSEmmanuel Vadot done-gpios = <&gpio2 30 GPIO_ACTIVE_HIGH>; 83*7d0873ebSEmmanuel Vadot csi-gpios = <&gpio3 19 GPIO_ACTIVE_LOW>; 84*7d0873ebSEmmanuel Vadot rdwr-gpios = <&gpio3 10 GPIO_ACTIVE_LOW>; 85*7d0873ebSEmmanuel Vadot }; 86*7d0873ebSEmmanuel Vadot... 87