1 | ///////////////////////////////////////////////////////////////-*-C-*- |
---|
2 | // |
---|
3 | // Copyright (c) 2007 Xilinx, Inc. All rights reserved. |
---|
4 | // |
---|
5 | // Xilinx, Inc. XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION |
---|
6 | // "AS IS" AS A COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR |
---|
7 | // INFORMATION AS ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, |
---|
8 | // APPLICATION OR STANDARD, XILINX IS MAKING NO REPRESENTATION THAT |
---|
9 | // THIS IMPLEMENTATION IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND |
---|
10 | // YOU ARE RESPONSIBLE FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR |
---|
11 | // YOUR IMPLEMENTATION. XILINX EXPRESSLY DISCLAIMS ANY WARRANTY |
---|
12 | // WHATSOEVER WITH RESPECT TO THE ADEQUACY OF THE IMPLEMENTATION, |
---|
13 | // INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OR REPRESENTATIONS THAT |
---|
14 | // THIS IMPLEMENTATION IS FREE FROM CLAIMS OF INFRINGEMENT, IMPLIED |
---|
15 | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
---|
16 | // |
---|
17 | ////////////////////////////////////////////////////////////////////// |
---|
18 | |
---|
19 | #include "user_io_board_controller_plbw.h" |
---|
20 | #include "xparameters.h" |
---|
21 | #include "xcope.h" |
---|
22 | |
---|
23 | inline xc_status_t xc_user_io_board_controller_plbw_create(xc_iface_t **iface, void *config_table) |
---|
24 | { |
---|
25 | // set up iface |
---|
26 | *iface = (xc_iface_t *) config_table; |
---|
27 | |
---|
28 | #ifdef XC_DEBUG |
---|
29 | USER_IO_BOARD_CONTROLLER_PLBW_Config *_config_table = config_table; |
---|
30 | |
---|
31 | if (_config_table->xc_create == NULL) { |
---|
32 | print("config_table.xc_create == NULL\r\n"); |
---|
33 | exit(1); |
---|
34 | } |
---|
35 | #endif |
---|
36 | |
---|
37 | // does nothing |
---|
38 | return XC_SUCCESS; |
---|
39 | } |
---|
40 | |
---|
41 | inline xc_status_t xc_user_io_board_controller_plbw_release(xc_iface_t **iface) |
---|
42 | { |
---|
43 | // does nothing |
---|
44 | return XC_SUCCESS; |
---|
45 | } |
---|
46 | |
---|
47 | inline xc_status_t xc_user_io_board_controller_plbw_open(xc_iface_t *iface) |
---|
48 | { |
---|
49 | // does nothing |
---|
50 | return XC_SUCCESS; |
---|
51 | } |
---|
52 | |
---|
53 | inline xc_status_t xc_user_io_board_controller_plbw_close(xc_iface_t *iface) |
---|
54 | { |
---|
55 | // does nothing |
---|
56 | return XC_SUCCESS; |
---|
57 | } |
---|
58 | |
---|
59 | inline xc_status_t xc_user_io_board_controller_plbw_read(xc_iface_t *iface, xc_r_addr_t addr, uint32_t *value) |
---|
60 | { |
---|
61 | *value = *((uint32_t *) addr); |
---|
62 | return XC_SUCCESS; |
---|
63 | } |
---|
64 | |
---|
65 | inline xc_status_t xc_user_io_board_controller_plbw_write(xc_iface_t *iface, xc_w_addr_t addr, const uint32_t value) |
---|
66 | { |
---|
67 | *((uint32_t *) addr) = value; |
---|
68 | return XC_SUCCESS; |
---|
69 | } |
---|
70 | |
---|
71 | xc_status_t xc_user_io_board_controller_plbw_getshmem(xc_iface_t *iface, const char *name, void **shmem) |
---|
72 | { |
---|
73 | USER_IO_BOARD_CONTROLLER_PLBW_Config *_config_table = (USER_IO_BOARD_CONTROLLER_PLBW_Config *) iface; |
---|
74 | |
---|
75 | if (strcmp("Buttons_Big", name) == 0) { |
---|
76 | *shmem = (void *) & _config_table->Buttons_Big; |
---|
77 | } |
---|
78 | else if (strcmp("Buttons_Small", name) == 0) { |
---|
79 | *shmem = (void *) & _config_table->Buttons_Small; |
---|
80 | } |
---|
81 | else if (strcmp("DIP_Switch", name) == 0) { |
---|
82 | *shmem = (void *) & _config_table->DIP_Switch; |
---|
83 | } |
---|
84 | else if (strcmp("Trackball", name) == 0) { |
---|
85 | *shmem = (void *) & _config_table->Trackball; |
---|
86 | } |
---|
87 | else if (strcmp("Buzzer_DutyCycle", name) == 0) { |
---|
88 | *shmem = (void *) & _config_table->Buzzer_DutyCycle; |
---|
89 | } |
---|
90 | else if (strcmp("Buzzer_Enable", name) == 0) { |
---|
91 | *shmem = (void *) & _config_table->Buzzer_Enable; |
---|
92 | } |
---|
93 | else if (strcmp("Buzzer_Period", name) == 0) { |
---|
94 | *shmem = (void *) & _config_table->Buzzer_Period; |
---|
95 | } |
---|
96 | else if (strcmp("LCD_BackgroundColor", name) == 0) { |
---|
97 | *shmem = (void *) & _config_table->LCD_BackgroundColor; |
---|
98 | } |
---|
99 | else if (strcmp("LCD_CharacterOffset", name) == 0) { |
---|
100 | *shmem = (void *) & _config_table->LCD_CharacterOffset; |
---|
101 | } |
---|
102 | else if (strcmp("LCD_CharactersSelect", name) == 0) { |
---|
103 | *shmem = (void *) & _config_table->LCD_CharactersSelect; |
---|
104 | } |
---|
105 | else if (strcmp("LCD_ColSet", name) == 0) { |
---|
106 | *shmem = (void *) & _config_table->LCD_ColSet; |
---|
107 | } |
---|
108 | else if (strcmp("LCD_ConfigLocation", name) == 0) { |
---|
109 | *shmem = (void *) & _config_table->LCD_ConfigLocation; |
---|
110 | } |
---|
111 | else if (strcmp("LCD_DividerSelect", name) == 0) { |
---|
112 | *shmem = (void *) & _config_table->LCD_DividerSelect; |
---|
113 | } |
---|
114 | else if (strcmp("LCD_FirstEnd", name) == 0) { |
---|
115 | *shmem = (void *) & _config_table->LCD_FirstEnd; |
---|
116 | } |
---|
117 | else if (strcmp("LCD_FirstStart", name) == 0) { |
---|
118 | *shmem = (void *) & _config_table->LCD_FirstStart; |
---|
119 | } |
---|
120 | else if (strcmp("LCD_LineOffset", name) == 0) { |
---|
121 | *shmem = (void *) & _config_table->LCD_LineOffset; |
---|
122 | } |
---|
123 | else if (strcmp("LCD_RamWrite", name) == 0) { |
---|
124 | *shmem = (void *) & _config_table->LCD_RamWrite; |
---|
125 | } |
---|
126 | else if (strcmp("LCD_Reset", name) == 0) { |
---|
127 | *shmem = (void *) & _config_table->LCD_Reset; |
---|
128 | } |
---|
129 | else if (strcmp("LCD_ResetLCD", name) == 0) { |
---|
130 | *shmem = (void *) & _config_table->LCD_ResetLCD; |
---|
131 | } |
---|
132 | else if (strcmp("LCD_RowSet", name) == 0) { |
---|
133 | *shmem = (void *) & _config_table->LCD_RowSet; |
---|
134 | } |
---|
135 | else if (strcmp("LCD_SecondEnd", name) == 0) { |
---|
136 | *shmem = (void *) & _config_table->LCD_SecondEnd; |
---|
137 | } |
---|
138 | else if (strcmp("LCD_SecondStart", name) == 0) { |
---|
139 | *shmem = (void *) & _config_table->LCD_SecondStart; |
---|
140 | } |
---|
141 | else if (strcmp("LCD_Send", name) == 0) { |
---|
142 | *shmem = (void *) & _config_table->LCD_Send; |
---|
143 | } |
---|
144 | else if (strcmp("LCD_TotalCmdTransfer", name) == 0) { |
---|
145 | *shmem = (void *) & _config_table->LCD_TotalCmdTransfer; |
---|
146 | } |
---|
147 | else if (strcmp("LEDs", name) == 0) { |
---|
148 | *shmem = (void *) & _config_table->LEDs; |
---|
149 | } |
---|
150 | else if (strcmp("LCD_CharacterMap", name) == 0) { |
---|
151 | *shmem = (void *) & _config_table->LCD_CharacterMap; |
---|
152 | } |
---|
153 | else if (strcmp("LCD_Characters", name) == 0) { |
---|
154 | *shmem = (void *) & _config_table->LCD_Characters; |
---|
155 | } |
---|
156 | else if (strcmp("LCD_Commands", name) == 0) { |
---|
157 | *shmem = (void *) & _config_table->LCD_Commands; |
---|
158 | } else { shmem = NULL; return XC_FAILURE; } |
---|
159 | |
---|
160 | return XC_SUCCESS; |
---|
161 | } |
---|