xref: /rk3399_rockchip-uboot/include/altera.h (revision d44ef7ffbfef26f71d5811006f00fc82e941fe98)
1 /*
2  * (C) Copyright 2002
3  * Rich Ireland, Enterasys Networks, rireland@enterasys.com.
4  *
5  * SPDX-License-Identifier:	GPL-2.0+
6  */
7 
8 #include <fpga.h>
9 
10 #ifndef _ALTERA_H_
11 #define _ALTERA_H_
12 
13 enum altera_iface {
14 	/* insert all new types after this */
15 	min_altera_iface_type,
16 	/* serial data and external clock */
17 	passive_serial,
18 	/* parallel data */
19 	passive_parallel_synchronous,
20 	/* parallel data */
21 	passive_parallel_asynchronous,
22 	/* serial data w/ internal clock (not used) */
23 	passive_serial_asynchronous,
24 	/* jtag/tap serial (not used ) */
25 	altera_jtag_mode,
26 	/* fast passive parallel (FPP) */
27 	fast_passive_parallel,
28 	/* fast passive parallel with security (FPPS) */
29 	fast_passive_parallel_security,
30 	/* insert all new types before this */
31 	max_altera_iface_type,
32 };
33 
34 enum altera_family {
35 	/* insert all new types after this */
36 	min_altera_type,
37 	/* ACEX1K Family */
38 	Altera_ACEX1K,
39 	/* CYCLONII Family */
40 	Altera_CYC2,
41 	/* StratixII Family */
42 	Altera_StratixII,
43 
44 	/* Add new models here */
45 
46 	/* insert all new types before this */
47 	max_altera_type,
48 };
49 
50 typedef struct {
51 	/* part type */
52 	enum altera_family	family;
53 	/* interface type */
54 	enum altera_iface	iface;
55 	/* bytes of data part can accept */
56 	size_t			size;
57 	/* interface function table */
58 	void			*iface_fns;
59 	/* base interface address */
60 	void			*base;
61 	/* implementation specific cookie */
62 	int			cookie;
63 } Altera_desc;
64 
65 /* Generic Altera Functions
66  *********************************************************************/
67 extern int altera_load(Altera_desc *desc, const void *image, size_t size);
68 extern int altera_dump(Altera_desc *desc, const void *buf, size_t bsize);
69 extern int altera_info(Altera_desc *desc);
70 
71 /* Board specific implementation specific function types
72  *********************************************************************/
73 typedef int (*Altera_pre_fn)( int cookie );
74 typedef int (*Altera_config_fn)( int assert_config, int flush, int cookie );
75 typedef int (*Altera_status_fn)( int cookie );
76 typedef int (*Altera_done_fn)( int cookie );
77 typedef int (*Altera_clk_fn)( int assert_clk, int flush, int cookie );
78 typedef int (*Altera_data_fn)( int assert_data, int flush, int cookie );
79 typedef int(*Altera_write_fn)(const void *buf, size_t len, int flush, int cookie);
80 typedef int (*Altera_abort_fn)( int cookie );
81 typedef int (*Altera_post_fn)( int cookie );
82 
83 typedef struct {
84 	Altera_pre_fn pre;
85 	Altera_config_fn config;
86 	Altera_status_fn status;
87 	Altera_done_fn done;
88 	Altera_clk_fn clk;
89 	Altera_data_fn data;
90 	Altera_abort_fn abort;
91 	Altera_post_fn post;
92 } altera_board_specific_func;
93 
94 #endif /* _ALTERA_H_ */
95