phy: atheros: Clarify the intention of ar8021_config
[oweals/u-boot.git] / include / xilinx.h
index b72aece7c900fd6e5724eb81d678b57298a261a5..ab4537becfad10fb5ecaf038619a0c17525f9d58 100644 (file)
@@ -1,8 +1,7 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
 /*
  * (C) Copyright 2002
  * Rich Ireland, Enterasys Networks, rireland@enterasys.com.
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <fpga.h>
@@ -21,6 +20,8 @@ typedef enum {                        /* typedef xilinx_iface */
        master_selectmap,       /* master SelectMap (virtex2)           */
        slave_selectmap,        /* slave SelectMap (virtex2)            */
        devcfg,                 /* devcfg interface (zynq) */
+       csu_dma,                /* csu_dma interface (zynqmp) */
+       cfi,                    /* CFI interface(versal) */
        max_xilinx_iface_type   /* insert all new types before this */
 } xilinx_iface;                        /* end, typedef xilinx_iface */
 
@@ -31,6 +32,8 @@ typedef enum {                        /* typedef xilinx_family */
        xilinx_virtex2,         /* Virtex2 Family */
        xilinx_spartan3,        /* Spartan-III Family */
        xilinx_zynq,            /* Zynq Family */
+       xilinx_zynqmp,          /* ZynqMP Family */
+       xilinx_versal,          /* Versal Family */
        max_xilinx_type         /* insert all new types before this */
 } xilinx_family;               /* end, typedef xilinx_family */
 
@@ -40,14 +43,29 @@ typedef struct {            /* typedef xilinx_desc */
        size_t size;            /* bytes of data part can accept */
        void *iface_fns;        /* interface function table */
        int cookie;             /* implementation specific cookie */
+       struct xilinx_fpga_op *operations; /* operations */
        char *name;             /* device name in bitstream */
 } xilinx_desc;                 /* end, typedef xilinx_desc */
 
+struct xilinx_fpga_op {
+       int (*load)(xilinx_desc *, const void *, size_t, bitstream_type);
+       int (*loadfs)(xilinx_desc *, const void *, size_t, fpga_fs_info *);
+       int (*loads)(xilinx_desc *desc, const void *buf, size_t bsize,
+                    struct fpga_secure_info *fpga_sec_info);
+       int (*dump)(xilinx_desc *, const void *, size_t);
+       int (*info)(xilinx_desc *);
+};
+
 /* Generic Xilinx Functions
  *********************************************************************/
-int xilinx_load(xilinx_desc *desc, const void *image, size_t size);
+int xilinx_load(xilinx_desc *desc, const void *image, size_t size,
+               bitstream_type bstype);
 int xilinx_dump(xilinx_desc *desc, const void *buf, size_t bsize);
 int xilinx_info(xilinx_desc *desc);
+int xilinx_loadfs(xilinx_desc *desc, const void *buf, size_t bsize,
+                 fpga_fs_info *fpga_fsinfo);
+int xilinx_loads(xilinx_desc *desc, const void *buf, size_t bsize,
+                struct fpga_secure_info *fpga_sec_info);
 
 /* Board specific implementation specific function types
  *********************************************************************/