1 /***************************************************************************
2 * Copyright (C) 2009 - 2010 by Simon Qian <SimonQian@SimonQian.com> *
4 * This program is free software; you can redistribute it and/or modify *
5 * it under the terms of the GNU General Public License as published by *
6 * the Free Software Foundation; either version 2 of the License, or *
7 * (at your option) any later version. *
9 * This program is distributed in the hope that it will be useful, *
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
12 * GNU General Public License for more details. *
14 * You should have received a copy of the GNU General Public License *
15 * along with this program; if not, write to the *
16 * Free Software Foundation, Inc., *
17 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
18 ***************************************************************************/
20 #ifndef __USBTOXXX_H_INCLUDED__
21 #define __USBTOXXX_H_INCLUDED__
23 RESULT
usbtoxxx_init(void);
24 RESULT
usbtoxxx_fini(void);
25 RESULT
usbtoxxx_execute_command(void);
27 #define USB_TO_XXX_ABILITIES_LEN 12
28 extern uint8_t usbtoxxx_abilities
[USB_TO_XXX_ABILITIES_LEN
];
29 bool usbtoxxx_interface_supported(uint8_t cmd
);
32 RESULT
usbtoinfo_get_abilities(uint8_t abilities
[USB_TO_XXX_ABILITIES_LEN
]);
35 RESULT
usbtodelay_delay(uint16_t dly
);
36 RESULT
usbtodelay_delayms(uint16_t ms
);
37 RESULT
usbtodelay_delayus(uint16_t us
);
40 RESULT
usbtousart_init(uint8_t interface_index
);
41 RESULT
usbtousart_fini(uint8_t interface_index
);
42 RESULT
usbtousart_config(uint8_t interface_index
, uint32_t baudrate
,
43 uint8_t datalength
, uint8_t mode
);
44 RESULT
usbtousart_send(uint8_t interface_index
, uint8_t *buf
, uint16_t len
);
45 RESULT
usbtousart_receive(uint8_t interface_index
, uint8_t *buf
, uint16_t len
);
46 RESULT
usbtousart_status(uint8_t interface_index
,
47 struct usart_status_t
*status
);
50 RESULT
usbtospi_init(uint8_t interface_index
);
51 RESULT
usbtospi_fini(uint8_t interface_index
);
52 RESULT
usbtospi_config(uint8_t interface_index
, uint32_t kHz
, uint8_t mode
);
53 RESULT
usbtospi_io(uint8_t interface_index
, uint8_t *out
, uint8_t *in
,
57 RESULT
usbtogpio_init(uint8_t interface_index
);
58 RESULT
usbtogpio_fini(uint8_t interface_index
);
59 RESULT
usbtogpio_config(uint8_t interface_index
, uint32_t mask
,
60 uint32_t dir_mask
, uint32_t pull_en_mask
,
61 uint32_t input_pull_mask
);
62 RESULT
usbtogpio_in(uint8_t interface_index
, uint32_t mask
, uint32_t *value
);
63 RESULT
usbtogpio_out(uint8_t interface_index
, uint32_t mask
, uint32_t value
);
66 RESULT
usbtoissp_init(uint8_t interface_index
);
67 RESULT
usbtoissp_fini(uint8_t interface_index
);
68 RESULT
usbtoissp_enter_program_mode(uint8_t interface_index
, uint8_t mode
);
69 RESULT
usbtoissp_leave_program_mode(uint8_t interface_index
, uint8_t mode
);
70 RESULT
usbtoissp_wait_and_poll(uint8_t interface_index
);
71 RESULT
usbtoissp_vector(uint8_t interface_index
, uint8_t operate
, uint8_t addr
,
72 uint8_t data
, uint8_t *buf
);
75 RESULT
usbtolpcicp_init(uint8_t interface_index
);
76 RESULT
usbtolpcicp_fini(uint8_t interface_index
);
77 RESULT
usbtolpcicp_config(uint8_t interface_index
);
78 RESULT
usbtolpcicp_enter_program_mode(uint8_t interface_index
);
79 RESULT
usbtolpcicp_in(uint8_t interface_index
, uint8_t *buff
, uint16_t len
);
80 RESULT
usbtolpcicp_out(uint8_t interface_index
, uint8_t *buff
, uint16_t len
);
81 RESULT
usbtolpcicp_poll_ready(uint8_t interface_index
, uint8_t data
,
82 uint8_t *ret
, uint8_t setmask
, uint8_t clearmask
, uint16_t pollcnt
);
85 RESULT
usbtojtagll_init(uint8_t interface_index
);
86 RESULT
usbtojtagll_fini(uint8_t interface_index
);
87 RESULT
usbtojtagll_config(uint8_t interface_index
, uint32_t kHz
);
88 RESULT
usbtojtagll_tms(uint8_t interface_index
, uint8_t *tms
, uint8_t bytelen
);
89 RESULT
usbtojtagll_tms_clocks(uint8_t interface_index
, uint32_t bytelen
,
91 RESULT
usbtojtagll_scan(uint8_t interface_index
, uint8_t *data
,
92 uint16_t bitlen
, uint8_t tms_before_valid
,
93 uint8_t tms_before
, uint8_t tms_after0
,
97 RESULT
usbtojtaghl_init(uint8_t interface_index
);
98 RESULT
usbtojtaghl_fini(uint8_t interface_index
);
99 RESULT
usbtojtaghl_config(uint8_t interface_index
, uint32_t kHz
, uint8_t ub
,
100 uint8_t ua
, uint16_t bb
, uint16_t ba
);
101 RESULT
usbtojtaghl_ir(uint8_t interface_index
, uint8_t *ir
, uint16_t bitlen
,
102 uint8_t idle
, uint8_t want_ret
);
103 RESULT
usbtojtaghl_dr(uint8_t interface_index
, uint8_t *dr
, uint16_t bitlen
,
104 uint8_t idle
, uint8_t want_ret
);
105 RESULT
usbtojtaghl_tms(uint8_t interface_index
, uint8_t *tms
, uint16_t bitlen
);
106 RESULT
usbtojtaghl_runtest(uint8_t interface_index
, uint32_t cycles
);
107 RESULT
usbtojtaghl_register_callback(uint8_t index
, jtag_callback_t send_callback
,
108 jtag_callback_t receive_callback
);
110 /* USB_TO_JTAG_RAW */
111 RESULT
usbtojtagraw_init(uint8_t interface_index
);
112 RESULT
usbtojtagraw_fini(uint8_t interface_index
);
113 RESULT
usbtojtagraw_config(uint8_t interface_index
, uint32_t kHz
);
114 RESULT
usbtojtagraw_execute(uint8_t interface_index
, uint8_t *tdi
,
115 uint8_t *tms
, uint8_t *tdo
, uint32_t bitlen
);
118 RESULT
usbtoc2_init(uint8_t interface_index
);
119 RESULT
usbtoc2_fini(uint8_t interface_index
);
120 RESULT
usbtoc2_writeaddr(uint8_t interface_index
, uint8_t addr
);
121 RESULT
usbtoc2_readaddr(uint8_t interface_index
, uint8_t *data
);
122 RESULT
usbtoc2_writedata(uint8_t interface_index
, uint8_t *buf
, uint8_t len
);
123 RESULT
usbtoc2_readdata(uint8_t interface_index
, uint8_t *buf
, uint8_t len
);
126 RESULT
usbtoi2c_init(uint8_t interface_index
);
127 RESULT
usbtoi2c_fini(uint8_t interface_index
);
128 RESULT
usbtoi2c_config(uint8_t interface_index
, uint16_t kHz
,
129 uint16_t byte_interval
, uint16_t max_dly
);
130 RESULT
usbtoi2c_read(uint8_t interface_index
, uint16_t chip_addr
,
131 uint8_t *data
, uint16_t data_len
, uint8_t stop
,
133 RESULT
usbtoi2c_write(uint8_t interface_index
, uint16_t chip_addr
,
134 uint8_t *data
, uint16_t data_len
, uint8_t stop
);
136 /* USB_TO_MSP430_JTAG */
137 RESULT
usbtomsp430jtag_init(uint8_t interface_index
);
138 RESULT
usbtomsp430jtag_fini(uint8_t interface_index
);
139 RESULT
usbtomsp430jtag_config(uint8_t interface_index
, uint8_t has_test
);
140 RESULT
usbtomsp430jtag_ir(uint8_t interface_index
, uint8_t *ir
,
142 RESULT
usbtomsp430jtag_dr(uint8_t interface_index
, uint32_t *dr
,
143 uint8_t bitlen
, uint8_t want_ret
);
144 RESULT
usbtomsp430jtag_tclk(uint8_t interface_index
, uint8_t value
);
145 RESULT
usbtomsp430jtag_tclk_strobe(uint8_t interface_index
, uint16_t cnt
);
146 RESULT
usbtomsp430jtag_reset(uint8_t interface_index
);
147 RESULT
usbtomsp430jtag_poll(uint8_t interface_index
, uint32_t dr
,
148 uint32_t mask
, uint32_t value
, uint8_t len
,
149 uint16_t poll_cnt
, uint8_t toggle_tclk
);
151 /* USB_TO_MSP430_SBW */
152 RESULT
usbtomsp430sbw_init(uint8_t interface_index
);
153 RESULT
usbtomsp430sbw_fini(uint8_t interface_index
);
154 RESULT
usbtomsp430sbw_config(uint8_t interface_index
, uint8_t has_test
);
155 RESULT
usbtomsp430sbw_ir(uint8_t interface_index
, uint8_t *ir
,
157 RESULT
usbtomsp430sbw_dr(uint8_t interface_index
, uint32_t *dr
,
158 uint8_t bitlen
, uint8_t want_ret
);
159 RESULT
usbtomsp430sbw_tclk(uint8_t interface_index
, uint8_t value
);
160 RESULT
usbtomsp430sbw_tclk_strobe(uint8_t interface_index
, uint16_t cnt
);
161 RESULT
usbtomsp430sbw_reset(uint8_t interface_index
);
162 RESULT
usbtomsp430sbw_poll(uint8_t interface_index
, uint32_t dr
, uint32_t mask
,
163 uint32_t value
, uint8_t len
, uint16_t poll_cnt
,
164 uint8_t toggle_tclk
);
167 RESULT
usbtopwr_init(uint8_t interface_index
);
168 RESULT
usbtopwr_fini(uint8_t interface_index
);
169 RESULT
usbtopwr_config(uint8_t interface_index
);
170 RESULT
usbtopwr_output(uint8_t interface_index
, uint16_t mV
);
173 RESULT
usbtopoll_start(uint16_t retry_cnt
, uint16_t interval_us
);
174 RESULT
usbtopoll_end(void);
175 RESULT
usbtopoll_checkok(uint8_t equ
, uint16_t offset
, uint8_t size
,
176 uint32_t mask
, uint32_t value
);
177 RESULT
usbtopoll_checkfail(uint8_t equ
, uint16_t offset
, uint8_t size
,
178 uint32_t mask
, uint32_t value
);
179 RESULT
usbtopoll_verifybuff(uint16_t offset
, uint16_t size
, uint8_t *buff
);
182 RESULT
usbtoswd_init(uint8_t interface_index
);
183 RESULT
usbtoswd_fini(uint8_t interface_index
);
184 RESULT
usbtoswd_config(uint8_t interface_index
, uint8_t trn
, uint16_t retry
,
186 RESULT
usbtoswd_seqout(uint8_t interface_index
, uint8_t *data
, uint16_t bitlen
);
187 RESULT
usbtoswd_seqin(uint8_t interface_index
, uint8_t *data
, uint16_t bitlen
);
188 RESULT
usbtoswd_transact(uint8_t interface_index
, uint8_t request
,
189 uint32_t *data
, uint8_t *ack
);
192 RESULT
usbtoswim_init(uint8_t interface_index
);
193 RESULT
usbtoswim_fini(uint8_t interface_index
);
194 RESULT
usbtoswim_config(uint8_t interface_index
, uint8_t mHz
, uint8_t cnt0
,
196 RESULT
usbtoswim_srst(uint8_t interface_index
);
197 RESULT
usbtoswim_wotf(uint8_t interface_index
, uint8_t *data
,
198 uint16_t bytelen
, uint32_t addr
);
199 RESULT
usbtoswim_rotf(uint8_t interface_index
, uint8_t *data
,
200 uint16_t bytelen
, uint32_t addr
);
201 RESULT
usbtoswim_sync(uint8_t interface_index
, uint8_t mHz
);
202 RESULT
usbtoswim_enable(uint8_t interface_index
);
205 RESULT
usbtobdm_init(uint8_t interface_index
);
206 RESULT
usbtobdm_fini(uint8_t interface_index
);
207 RESULT
usbtobdm_sync(uint8_t interface_index
, uint16_t *khz
);
208 RESULT
usbtobdm_transact(uint8_t interface_index
, uint8_t *out
,
209 uint8_t outlen
, uint8_t *in
, uint8_t inlen
, uint8_t delay
, uint8_t ack
);
212 RESULT
usbtodusi_init(uint8_t interface_index
);
213 RESULT
usbtodusi_fini(uint8_t interface_index
);
214 RESULT
usbtodusi_config(uint8_t interface_index
, uint32_t kHz
, uint8_t mode
);
215 RESULT
usbtodusi_io(uint8_t interface_index
, uint8_t *mo
, uint8_t *mi
,
216 uint8_t *so
, uint8_t *si
, uint32_t bitlen
);
218 /* USB_TO_MICROWIRE */
219 RESULT
usbtomicrowire_init(uint8_t interface_index
);
220 RESULT
usbtomicrowire_fini(uint8_t interface_index
);
221 RESULT
usbtomicrowire_config(uint8_t interface_index
, uint16_t kHz
,
222 uint8_t sel_polarity
);
223 RESULT
usbtomicrowire_transport(uint8_t interface_index
,
224 uint32_t opcode
, uint8_t opcode_bitlen
,
225 uint32_t addr
, uint8_t addr_bitlen
,
226 uint32_t data
, uint8_t data_bitlen
,
227 uint8_t *reply
, uint8_t reply_bitlen
);
228 RESULT
usbtomicrowire_poll(uint8_t interface_index
, uint16_t interval_us
,
232 RESULT
usbtopwm_init(uint8_t interface_index
);
233 RESULT
usbtopwm_fini(uint8_t interface_index
);
234 RESULT
usbtopwm_config(uint8_t interface_index
, uint16_t kHz
, uint8_t mode
);
235 RESULT
usbtopwm_out(uint8_t interface_index
, uint16_t count
, uint16_t *rate
);
236 RESULT
usbtopwm_in(uint8_t interface_index
, uint16_t count
, uint16_t *rate
);
238 #endif /* __USBTOXXX_H_INCLUDED__ */