Home | History | Annotate | Download | only in mach
      1 /* SPDX-License-Identifier: GPL-2.0 */
      2 /*
      3  * Copyright (C) 2017 Intel Corporation <www.intel.com>
      4  * All rights reserved.
      5  */
      6 
      7 #ifndef _FPGA_MANAGER_ARRIA10_H_
      8 #define _FPGA_MANAGER_ARRIA10_H_
      9 
     10 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_CRC_ERROR_SET_MSK		BIT(0)
     11 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_EARLY_USERMODE_SET_MSK	BIT(1)
     12 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_USERMODE_SET_MSK 		BIT(2)
     13 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_INITDONE_OE_SET_MSK 	BIT(3)
     14 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_NSTATUS_PIN_SET_MSK		BIT(4)
     15 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_NSTATUS_OE_SET_MSK		BIT(5)
     16 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_CONDONE_PIN_SET_MSK		BIT(6)
     17 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_CONDONE_OE_SET_MSK		BIT(7)
     18 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_CVP_CONF_DONE_SET_MSK	BIT(8)
     19 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_PR_READY_SET_MSK		BIT(9)
     20 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_PR_DONE_SET_MSK		BIT(10)
     21 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_PR_ERROR_SET_MSK		BIT(11)
     22 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_NCONFIG_PIN_SET_MSK		BIT(12)
     23 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_NCEO_OE_SET_MSK		BIT(13)
     24 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_MSEL0_SET_MSK    		BIT(16)
     25 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_MSEL1_SET_MSK    		BIT(17)
     26 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_MSEL2_SET_MSK    		BIT(18)
     27 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_MSEL_SET_MSD (\
     28 	ALT_FPGAMGR_IMGCFG_STAT_F2S_MSEL0_SET_MSK |\
     29 	ALT_FPGAMGR_IMGCFG_STAT_F2S_MSEL1_SET_MSK |\
     30 	ALT_FPGAMGR_IMGCFG_STAT_F2S_MSEL2_SET_MSK)
     31 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_IMGCFG_FIFOEMPTY_SET_MSK	BIT(24)
     32 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_IMGCFG_FIFOFULL_SET_MSK	BIT(25)
     33 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_JTAGM_SET_MSK		BIT(28)
     34 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_EMR_SET_MSK			BIT(29)
     35 #define ALT_FPGAMGR_IMGCFG_STAT_F2S_MSEL0_LSB			16
     36 
     37 #define ALT_FPGAMGR_IMGCFG_CTL_00_S2F_NENABLE_NCONFIG_SET_MSK	BIT(0)
     38 #define ALT_FPGAMGR_IMGCFG_CTL_00_S2F_NENABLE_NSTATUS_SET_MSK	BIT(1)
     39 #define ALT_FPGAMGR_IMGCFG_CTL_00_S2F_NENABLE_CONDONE_SET_MSK	BIT(2)
     40 #define ALT_FPGAMGR_IMGCFG_CTL_00_S2F_NCONFIG_SET_MSK		BIT(8)
     41 #define ALT_FPGAMGR_IMGCFG_CTL_00_S2F_NSTATUS_OE_SET_MSK	BIT(16)
     42 #define ALT_FPGAMGR_IMGCFG_CTL_00_S2F_CONDONE_OE_SET_MSK	BIT(24)
     43 
     44 #define ALT_FPGAMGR_IMGCFG_CTL_01_S2F_NENABLE_CONFIG_SET_MSK	BIT(0)
     45 #define ALT_FPGAMGR_IMGCFG_CTL_01_S2F_PR_REQUEST_SET_MSK	BIT(16)
     46 #define ALT_FPGAMGR_IMGCFG_CTL_01_S2F_NCE_SET_MSK		BIT(24)
     47 
     48 #define ALT_FPGAMGR_IMGCFG_CTL_02_EN_CFG_CTRL_SET_MSK    	BIT(0)
     49 #define ALT_FPGAMGR_IMGCFG_CTL_02_EN_CFG_DATA_SET_MSK    	BIT(8)
     50 #define ALT_FPGAMGR_IMGCFG_CTL_02_CDRATIO_SET_MSK    		0x00030000
     51 #define ALT_FPGAMGR_IMGCFG_CTL_02_CFGWIDTH_SET_MSK		BIT(24)
     52 #define ALT_FPGAMGR_IMGCFG_CTL_02_CDRATIO_LSB			16
     53 
     54 #ifndef __ASSEMBLY__
     55 
     56 struct socfpga_fpga_manager {
     57 	u32  _pad_0x0_0x7[2];
     58 	u32  dclkcnt;
     59 	u32  dclkstat;
     60 	u32  gpo;
     61 	u32  gpi;
     62 	u32  misci;
     63 	u32  _pad_0x1c_0x2f[5];
     64 	u32  emr_data0;
     65 	u32  emr_data1;
     66 	u32  emr_data2;
     67 	u32  emr_data3;
     68 	u32  emr_data4;
     69 	u32  emr_data5;
     70 	u32  emr_valid;
     71 	u32  emr_en;
     72 	u32  jtag_config;
     73 	u32  jtag_status;
     74 	u32  jtag_kick;
     75 	u32  _pad_0x5c_0x5f;
     76 	u32  jtag_data_w;
     77 	u32  jtag_data_r;
     78 	u32  _pad_0x68_0x6f[2];
     79 	u32  imgcfg_ctrl_00;
     80 	u32  imgcfg_ctrl_01;
     81 	u32  imgcfg_ctrl_02;
     82 	u32  _pad_0x7c_0x7f;
     83 	u32  imgcfg_stat;
     84 	u32  intr_masked_status;
     85 	u32  intr_mask;
     86 	u32  intr_polarity;
     87 	u32  dma_config;
     88 	u32  imgcfg_fifo_status;
     89 };
     90 
     91 /* Functions */
     92 int fpgamgr_program_init(u32 * rbf_data, size_t rbf_size);
     93 int fpgamgr_program_finish(void);
     94 int is_fpgamgr_user_mode(void);
     95 int fpgamgr_wait_early_user_mode(void);
     96 
     97 #endif /* __ASSEMBLY__ */
     98 
     99 #endif /* _FPGA_MANAGER_ARRIA10_H_ */
    100