xref: /freebsd/sys/contrib/device-tree/Bindings/fpga/xlnx,fpga-selectmap.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
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