129de7624SKang Luwei /* SPDX-License-Identifier: GPL-2.0 */ 229de7624SKang Luwei /* 329de7624SKang Luwei * Header file for FPGA Management Engine (FME) Partial Reconfiguration Driver 429de7624SKang Luwei * 529de7624SKang Luwei * Copyright (C) 2017-2018 Intel Corporation, Inc. 629de7624SKang Luwei * 729de7624SKang Luwei * Authors: 829de7624SKang Luwei * Kang Luwei <luwei.kang@intel.com> 929de7624SKang Luwei * Xiao Guangrong <guangrong.xiao@linux.intel.com> 1029de7624SKang Luwei * Wu Hao <hao.wu@intel.com> 1129de7624SKang Luwei * Joseph Grecco <joe.grecco@intel.com> 1229de7624SKang Luwei * Enno Luebbers <enno.luebbers@intel.com> 1329de7624SKang Luwei * Tim Whisonant <tim.whisonant@intel.com> 1429de7624SKang Luwei * Ananda Ravuri <ananda.ravuri@intel.com> 1529de7624SKang Luwei * Henry Mitchel <henry.mitchel@intel.com> 1629de7624SKang Luwei */ 1729de7624SKang Luwei 1829de7624SKang Luwei #ifndef __DFL_FME_PR_H 1929de7624SKang Luwei #define __DFL_FME_PR_H 2029de7624SKang Luwei 2129de7624SKang Luwei #include <linux/platform_device.h> 2229de7624SKang Luwei 2329de7624SKang Luwei /** 2429de7624SKang Luwei * struct dfl_fme_region - FME fpga region data structure 2529de7624SKang Luwei * 2629de7624SKang Luwei * @region: platform device of the FPGA region. 2729de7624SKang Luwei * @node: used to link fme_region to a list. 2829de7624SKang Luwei * @port_id: indicate which port this region connected to. 2929de7624SKang Luwei */ 3029de7624SKang Luwei struct dfl_fme_region { 3129de7624SKang Luwei struct platform_device *region; 3229de7624SKang Luwei struct list_head node; 3329de7624SKang Luwei int port_id; 3429de7624SKang Luwei }; 3529de7624SKang Luwei 3629de7624SKang Luwei /** 3729de7624SKang Luwei * struct dfl_fme_region_pdata - platform data for FME region platform device. 3829de7624SKang Luwei * 3929de7624SKang Luwei * @mgr: platform device of the FPGA manager. 4029de7624SKang Luwei * @br: platform device of the FPGA bridge. 4129de7624SKang Luwei * @region_id: region id (same as port_id). 4229de7624SKang Luwei */ 4329de7624SKang Luwei struct dfl_fme_region_pdata { 4429de7624SKang Luwei struct platform_device *mgr; 4529de7624SKang Luwei struct platform_device *br; 4629de7624SKang Luwei int region_id; 4729de7624SKang Luwei }; 4829de7624SKang Luwei 4929de7624SKang Luwei /** 5029de7624SKang Luwei * struct dfl_fme_bridge - FME fpga bridge data structure 5129de7624SKang Luwei * 5229de7624SKang Luwei * @br: platform device of the FPGA bridge. 5329de7624SKang Luwei * @node: used to link fme_bridge to a list. 5429de7624SKang Luwei */ 5529de7624SKang Luwei struct dfl_fme_bridge { 5629de7624SKang Luwei struct platform_device *br; 5729de7624SKang Luwei struct list_head node; 5829de7624SKang Luwei }; 5929de7624SKang Luwei 6029de7624SKang Luwei /** 61*a73c125bSXu Yilun * struct dfl_fme_br_pdata - platform data for FME bridge platform device. 6229de7624SKang Luwei * 6329de7624SKang Luwei * @cdev: container device. 6429de7624SKang Luwei * @port_id: port id. 6529de7624SKang Luwei */ 6629de7624SKang Luwei struct dfl_fme_br_pdata { 6729de7624SKang Luwei struct dfl_fpga_cdev *cdev; 6829de7624SKang Luwei int port_id; 6929de7624SKang Luwei }; 7029de7624SKang Luwei 7129de7624SKang Luwei /** 7229de7624SKang Luwei * struct dfl_fme_mgr_pdata - platform data for FME manager platform device. 7329de7624SKang Luwei * 7429de7624SKang Luwei * @ioaddr: mapped io address for FME manager platform device. 7529de7624SKang Luwei */ 7629de7624SKang Luwei struct dfl_fme_mgr_pdata { 7729de7624SKang Luwei void __iomem *ioaddr; 7829de7624SKang Luwei }; 7929de7624SKang Luwei 8029de7624SKang Luwei #define DFL_FPGA_FME_MGR "dfl-fme-mgr" 8129de7624SKang Luwei #define DFL_FPGA_FME_BRIDGE "dfl-fme-bridge" 8229de7624SKang Luwei #define DFL_FPGA_FME_REGION "dfl-fme-region" 8329de7624SKang Luwei 8429de7624SKang Luwei #endif /* __DFL_FME_PR_H */ 85