2018-06-30 03:53:24 +03:00
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Header file for FPGA Management Engine ( FME ) Partial Reconfiguration Driver
*
* Copyright ( C ) 2017 - 2018 Intel Corporation , Inc .
*
* Authors :
* Kang Luwei < luwei . kang @ intel . com >
* Xiao Guangrong < guangrong . xiao @ linux . intel . com >
* Wu Hao < hao . wu @ intel . com >
* Joseph Grecco < joe . grecco @ intel . com >
* Enno Luebbers < enno . luebbers @ intel . com >
* Tim Whisonant < tim . whisonant @ intel . com >
* Ananda Ravuri < ananda . ravuri @ intel . com >
* Henry Mitchel < henry . mitchel @ intel . com >
*/
# ifndef __DFL_FME_PR_H
# define __DFL_FME_PR_H
# include <linux/platform_device.h>
/**
* struct dfl_fme_region - FME fpga region data structure
*
* @ region : platform device of the FPGA region .
* @ node : used to link fme_region to a list .
* @ port_id : indicate which port this region connected to .
*/
struct dfl_fme_region {
struct platform_device * region ;
struct list_head node ;
int port_id ;
} ;
/**
* struct dfl_fme_region_pdata - platform data for FME region platform device .
*
* @ mgr : platform device of the FPGA manager .
* @ br : platform device of the FPGA bridge .
* @ region_id : region id ( same as port_id ) .
*/
struct dfl_fme_region_pdata {
struct platform_device * mgr ;
struct platform_device * br ;
int region_id ;
} ;
/**
* struct dfl_fme_bridge - FME fpga bridge data structure
*
* @ br : platform device of the FPGA bridge .
* @ node : used to link fme_bridge to a list .
*/
struct dfl_fme_bridge {
struct platform_device * br ;
struct list_head node ;
} ;
/**
2023-01-14 18:54:44 +03:00
* struct dfl_fme_br_pdata - platform data for FME bridge platform device .
2018-06-30 03:53:24 +03:00
*
* @ cdev : container device .
* @ port_id : port id .
*/
struct dfl_fme_br_pdata {
struct dfl_fpga_cdev * cdev ;
int port_id ;
} ;
/**
* struct dfl_fme_mgr_pdata - platform data for FME manager platform device .
*
* @ ioaddr : mapped io address for FME manager platform device .
*/
struct dfl_fme_mgr_pdata {
void __iomem * ioaddr ;
} ;
# define DFL_FPGA_FME_MGR "dfl-fme-mgr"
# define DFL_FPGA_FME_BRIDGE "dfl-fme-bridge"
# define DFL_FPGA_FME_REGION "dfl-fme-region"
# endif /* __DFL_FME_PR_H */