|  | /* | 
|  | * Copyright (c) 2021 Antmicro <www.antmicro.com> | 
|  | * | 
|  | * SPDX-License-Identifier: Apache-2.0 | 
|  | */ | 
|  |  | 
|  | #ifndef ZEPHYR_DRIVERS_FPGA_EOS_S3_H_ | 
|  | #define ZEPHYR_DRIVERS_FPGA_EOS_S3_H_ | 
|  |  | 
|  | #include <eoss3_dev.h> | 
|  |  | 
|  | struct PIF_struct { | 
|  | /* Fabric Configuration Control Register, offset: 0x000 */ | 
|  | __IO uint32_t CFG_CTL; | 
|  | /* Maximum Bit Length Count, offset: 0x004 */ | 
|  | __IO uint32_t MAX_BL_CNT; | 
|  | /* Maximum Word Length Count, offset: 0x008 */ | 
|  | __IO uint32_t MAX_WL_CNT; | 
|  | uint32_t reserved[1020]; | 
|  | /* Configuration Data, offset: 0xFFC */ | 
|  | __IO uint32_t CFG_DATA; | 
|  | }; | 
|  |  | 
|  | #define PIF ((struct PIF_struct *)PIF_CTRL_BASE) | 
|  |  | 
|  | #define FB_CFG_ENABLE					((uint32_t)(0x00000200)) | 
|  | #define FB_CFG_DISABLE					((uint32_t)(0x00000000)) | 
|  |  | 
|  | #define CFG_CTL_APB_CFG_WR				((uint32_t)(0x00008000)) | 
|  | #define CFG_CTL_APB_CFG_RD				((uint32_t)(0x00004000)) | 
|  | #define CFG_CTL_APB_WL_DIN				((uint32_t)(0x00003C00)) | 
|  | #define CFG_CTL_APB_PARTIAL_LOAD			((uint32_t)(0x00000200)) | 
|  | #define CFG_CTL_APB_BL_SEL				((uint32_t)(0x00000100)) | 
|  | #define CFG_CTL_APB_BLM_SEL				((uint32_t)(0x00000080)) | 
|  | #define CFG_CTL_APB_BR_SEL				((uint32_t)(0x00000040)) | 
|  | #define CFG_CTL_APB_BRM_SEL				((uint32_t)(0x00000020)) | 
|  | #define CFG_CTL_APB_TL_SEL				((uint32_t)(0x00000010)) | 
|  | #define CFG_CTL_APB_TLM_SEL				((uint32_t)(0x00000008)) | 
|  | #define CFG_CTL_APB_TR_SEL				((uint32_t)(0x00000004)) | 
|  | #define CFG_CTL_APB_TRM_SEL				((uint32_t)(0x00000002)) | 
|  | #define CFG_CTL_APB_SEL_CFG				((uint32_t)(0x00000001)) | 
|  |  | 
|  | #define FB_ISOLATION_ENABLE				((uint32_t)(0x00000001)) | 
|  | #define FB_ISOLATION_DISABLE				((uint32_t)(0x00000000)) | 
|  |  | 
|  | #define PMU_FFE_FB_PF_SW_PD_FB_PD			((uint32_t)(0x00000002)) | 
|  | #define PMU_FB_PWR_MODE_CFG_FB_SD			((uint32_t)(0x00000002)) | 
|  | #define PMU_FB_PWR_MODE_CFG_FB_DP			((uint32_t)(0x00000001)) | 
|  |  | 
|  | #define FPGA_INFO                                                                                  \ | 
|  | "eos_s3 eFPGA features:\n"                                                                 \ | 
|  | "891 Logic Cells\n"                                                                        \ | 
|  | "8 FIFO Controllers\n"                                                                     \ | 
|  | "32 Configurable Interfaces\n"                                                             \ | 
|  | "2x32x32(or 4x16x16) Multiplier\n"                                                         \ | 
|  | "64Kbit SRAM\n" | 
|  |  | 
|  | #define PAD_ENABLE                                                                                 \ | 
|  | (PAD_E_4MA | PAD_P_PULLDOWN | PAD_OEN_NORMAL | PAD_SMT_DISABLE | PAD_REN_DISABLE |         \ | 
|  | PAD_SR_SLOW | PAD_CTRL_SEL_AO_REG) | 
|  |  | 
|  | #define PAD_DISABLE                                                                                \ | 
|  | (PAD_SMT_DISABLE | PAD_REN_DISABLE | PAD_SR_SLOW | PAD_E_4MA | PAD_P_PULLDOWN |            \ | 
|  | PAD_OEN_NORMAL | PAD_CTRL_SEL_AO_REG) | 
|  |  | 
|  | #define CFG_CTL_LOAD_ENABLE                                                                        \ | 
|  | (CFG_CTL_APB_CFG_WR | CFG_CTL_APB_WL_DIN | CFG_CTL_APB_BL_SEL | CFG_CTL_APB_BLM_SEL |      \ | 
|  | CFG_CTL_APB_BR_SEL | CFG_CTL_APB_BRM_SEL | CFG_CTL_APB_TL_SEL | CFG_CTL_APB_TLM_SEL |     \ | 
|  | CFG_CTL_APB_TR_SEL | CFG_CTL_APB_TRM_SEL | CFG_CTL_APB_SEL_CFG) | 
|  |  | 
|  | #define CFG_CTL_LOAD_DISABLE 0 | 
|  |  | 
|  | #endif /* ZEPHYR_DRIVERS_FPGA_EOS_S3_H_ */ |