blob: a077e2284e65eb7642a41270a8237466f2d9133e [file] [log] [blame]
Pavel Machekc7213802014-09-08 14:08:45 +02001/*
2 * Copyright (C) 2012 Altera Corporation <www.altera.com>
3 * All rights reserved.
4 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 */
7
8#ifndef _FPGA_MANAGER_H_
9#define _FPGA_MANAGER_H_
10
11#include <altera.h>
12
13struct socfpga_fpga_manager {
14 /* FPGA Manager Module */
15 u32 stat; /* 0x00 */
16 u32 ctrl;
17 u32 dclkcnt;
18 u32 dclkstat;
19 u32 gpo; /* 0x10 */
20 u32 gpi;
21 u32 misci; /* 0x18 */
22 u32 _pad_0x1c_0x82c[517];
23
24 /* Configuration Monitor (MON) Registers */
25 u32 gpio_inten; /* 0x830 */
26 u32 gpio_intmask;
27 u32 gpio_inttype_level;
28 u32 gpio_int_polarity;
29 u32 gpio_intstatus; /* 0x840 */
30 u32 gpio_raw_intstatus;
31 u32 _pad_0x848;
32 u32 gpio_porta_eoi;
33 u32 gpio_ext_porta; /* 0x850 */
34 u32 _pad_0x854_0x85c[3];
35 u32 gpio_1s_sync; /* 0x860 */
36 u32 _pad_0x864_0x868[2];
37 u32 gpio_ver_id_code;
38 u32 gpio_config_reg2; /* 0x870 */
39 u32 gpio_config_reg1;
40};
41
42#define FPGAMGRREGS_STAT_MODE_MASK 0x7
43#define FPGAMGRREGS_STAT_MSEL_MASK 0xf8
44#define FPGAMGRREGS_STAT_MSEL_LSB 3
45
46#define FPGAMGRREGS_CTRL_CFGWDTH_MASK 0x200
47#define FPGAMGRREGS_CTRL_AXICFGEN_MASK 0x100
48#define FPGAMGRREGS_CTRL_NCONFIGPULL_MASK 0x4
49#define FPGAMGRREGS_CTRL_NCE_MASK 0x2
50#define FPGAMGRREGS_CTRL_EN_MASK 0x1
51#define FPGAMGRREGS_CTRL_CDRATIO_LSB 6
52
53#define FPGAMGRREGS_MON_GPIO_EXT_PORTA_CRC_MASK 0x8
54#define FPGAMGRREGS_MON_GPIO_EXT_PORTA_ID_MASK 0x4
55#define FPGAMGRREGS_MON_GPIO_EXT_PORTA_CD_MASK 0x2
56#define FPGAMGRREGS_MON_GPIO_EXT_PORTA_NS_MASK 0x1
57
58/* FPGA Mode */
59#define FPGAMGRREGS_MODE_FPGAOFF 0x0
60#define FPGAMGRREGS_MODE_RESETPHASE 0x1
61#define FPGAMGRREGS_MODE_CFGPHASE 0x2
62#define FPGAMGRREGS_MODE_INITPHASE 0x3
63#define FPGAMGRREGS_MODE_USERMODE 0x4
64#define FPGAMGRREGS_MODE_UNKNOWN 0x5
65
66/* FPGA CD Ratio Value */
67#define CDRATIO_x1 0x0
68#define CDRATIO_x2 0x1
69#define CDRATIO_x4 0x2
70#define CDRATIO_x8 0x3
71
72/* SoCFPGA support functions */
73int fpgamgr_test_fpga_ready(void);
74int fpgamgr_poll_fpga_ready(void);
75int fpgamgr_get_mode(void);
76
77#endif /* _FPGA_MANAGER_H_ */