00001
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048 #ifndef _USB_DRV_H_
00049 #define _USB_DRV_H_
00050
00051
00052
00053
00054 #include "compiler.h"
00055 #include "preprocessor.h"
00056 #include "usbb.h"
00057 #include "conf_usb.h"
00058
00059
00066
00067
00068
00075 #define MAX_PEP_NB AVR32_USBB_EPT_NUM
00076
00080 #define EP_CONTROL 0
00081 #define EP_0 0
00082 #define EP_1 1
00083 #define EP_2 2
00084 #define EP_3 3
00085 #define EP_4 4
00086 #define EP_5 5
00087 #define EP_6 6
00089
00093 #define P_CONTROL 0
00094 #define P_0 0
00095 #define P_1 1
00096 #define P_2 2
00097 #define P_3 3
00098 #define P_4 4
00099 #define P_5 5
00100 #define P_6 6
00102
00106 #define IP_NAME_PART_1 1
00107 #define IP_NAME_PART_2 2
00108
00109 #define DMA_BUFFER_SIZE_16_BITS AVR32_USBB_UFEATURES_DMA_BUFFER_SIZE_16_BITS
00110 #define DMA_BUFFER_SIZE_24_BITS AVR32_USBB_UFEATURES_DMA_BUFFER_SIZE_24_BITS
00111
00112 #define AWAITVRISE_TIMER AVR32_USBB_USBCON_TIMPAGE_A_WAIT_VRISE
00113 #define AWAITVRISE_TMOUT_20_MS AVR32_USBB_USBCON_TIMVALUE_A_WAIT_VRISE_20_MS
00114 #define AWAITVRISE_TMOUT_50_MS AVR32_USBB_USBCON_TIMVALUE_A_WAIT_VRISE_50_MS
00115 #define AWAITVRISE_TMOUT_70_MS AVR32_USBB_USBCON_TIMVALUE_A_WAIT_VRISE_70_MS
00116 #define AWAITVRISE_TMOUT_100_MS AVR32_USBB_USBCON_TIMVALUE_A_WAIT_VRISE_100_MS
00117 #define VBBUSPULSING_TIMER AVR32_USBB_USBCON_TIMPAGE_VB_BUS_PULSING
00118 #define VBBUSPULSING_TMOUT_15_MS AVR32_USBB_USBCON_TIMVALUE_VB_BUS_PULSING_15_MS
00119 #define VBBUSPULSING_TMOUT_23_MS AVR32_USBB_USBCON_TIMVALUE_VB_BUS_PULSING_23_MS
00120 #define VBBUSPULSING_TMOUT_31_MS AVR32_USBB_USBCON_TIMVALUE_VB_BUS_PULSING_31_MS
00121 #define VBBUSPULSING_TMOUT_40_MS AVR32_USBB_USBCON_TIMVALUE_VB_BUS_PULSING_40_MS
00122 #define PDTMOUTCNT_TIMER AVR32_USBB_USBCON_TIMPAGE_PD_TMOUT_CNT
00123 #define PDTMOUTCNT_TMOUT_93_MS AVR32_USBB_USBCON_TIMVALUE_PD_TMOUT_CNT_93_MS
00124 #define PDTMOUTCNT_TMOUT_105_MS AVR32_USBB_USBCON_TIMVALUE_PD_TMOUT_CNT_105_MS
00125 #define PDTMOUTCNT_TMOUT_118_MS AVR32_USBB_USBCON_TIMVALUE_PD_TMOUT_CNT_118_MS
00126 #define PDTMOUTCNT_TMOUT_131_MS AVR32_USBB_USBCON_TIMVALUE_PD_TMOUT_CNT_131_MS
00127 #define SRPDETTMOUT_TIMER AVR32_USBB_USBCON_TIMPAGE_SRP_DET_TMOUT
00128 #define SRPDETTMOUT_TMOUT_10_US AVR32_USBB_USBCON_TIMVALUE_SRP_DET_TMOUT_10_US
00129 #define SRPDETTMOUT_TMOUT_100_US AVR32_USBB_USBCON_TIMVALUE_SRP_DET_TMOUT_100_US
00130 #define SRPDETTMOUT_TMOUT_1_MS AVR32_USBB_USBCON_TIMVALUE_SRP_DET_TMOUT_1_MS
00131 #define SRPDETTMOUT_TMOUT_11_MS AVR32_USBB_USBCON_TIMVALUE_SRP_DET_TMOUT_11_MS
00132
00133 #define TYPE_CONTROL AVR32_USBB_UECFGX_EPTYPE_CONTROL
00134 #define TYPE_ISOCHRONOUS AVR32_USBB_UECFGX_EPTYPE_ISOCHRONOUS
00135 #define TYPE_BULK AVR32_USBB_UECFGX_EPTYPE_BULK
00136 #define TYPE_INTERRUPT AVR32_USBB_UECFGX_EPTYPE_INTERRUPT
00137
00138 #define DIRECTION_OUT AVR32_USBB_UECFGX_EPDIR_OUT
00139 #define DIRECTION_IN AVR32_USBB_UECFGX_EPDIR_IN
00140
00141 #define TOKEN_SETUP AVR32_USBB_UPCFGX_PTOKEN_SETUP
00142 #define TOKEN_IN AVR32_USBB_UPCFGX_PTOKEN_IN
00143 #define TOKEN_OUT AVR32_USBB_UPCFGX_PTOKEN_OUT
00144
00145 #define SINGLE_BANK AVR32_USBB_UECFGX_EPBK_SINGLE
00146 #define DOUBLE_BANK AVR32_USBB_UECFGX_EPBK_DOUBLE
00147 #define TRIPLE_BANK AVR32_USBB_UECFGX_EPBK_TRIPLE
00148
00149 #define BANK_PID_DATA0 0
00150 #define BANK_PID_DATA1 1
00152
00153
00160 #define Pep_fifo_access_64_post_inc()
00161 #define Pep_fifo_access_32_post_inc()
00162 #define Pep_fifo_access_16_post_inc() ++
00163 #define Pep_fifo_access_8_post_inc() ++
00165
00166
00171 #define Usb_get_ip_name(part) (AVR32_USBB_unamex(part))
00173 #define Usb_get_ip_version() (Rd_bitfield(AVR32_USBB_uvers, AVR32_USBB_UVERS_VERSION_NUM_MASK))
00175 #define Usb_get_metal_fix_nbr() (Rd_bitfield(AVR32_USBB_uvers, AVR32_USBB_UVERS_METAL_FIX_NUM_MASK))
00177 #define Usb_get_pipe_endpoint_max_nbr() (((Rd_bitfield(AVR32_USBB_ufeatures, AVR32_USBB_UFEATURES_EPT_NBR_MAX_MASK) - 1) & ((1 << AVR32_USBB_UFEATURES_EPT_NBR_MAX_SIZE) - 1)) + 1)
00179 #define Usb_get_dma_channel_nbr() (Rd_bitfield(AVR32_USBB_ufeatures, AVR32_USBB_UFEATURES_DMA_CHANNEL_NBR_MASK))
00181 #define Usb_get_dma_buffer_size() (Rd_bitfield(AVR32_USBB_ufeatures, AVR32_USBB_UFEATURES_DMA_BUFFER_SIZE_MASK))
00183 #define Usb_get_dma_fifo_word_depth() (((Rd_bitfield(AVR32_USBB_ufeatures, AVR32_USBB_UFEATURES_DMA_FIFO_WORD_DEPTH_MASK) - 1) & ((1 << AVR32_USBB_UFEATURES_DMA_FIFO_WORD_DEPTH_SIZE) - 1)) + 1)
00185 #define Usb_get_dpram_size() (128 << Rd_bitfield(AVR32_USBB_ufeatures, AVR32_USBB_UFEATURES_FIFO_MAX_SIZE_MASK))
00187 #define Is_usb_dpram_byte_write_capable() (Tst_bits(AVR32_USBB_ufeatures, AVR32_USBB_UFEATURES_BYTE_WRITE_DPRAM_MASK))
00189 #define Usb_get_ip_paddress_size() (AVR32_USBB_uaddrsize)
00191
00192
00197 #define Usb_configure_timeout(timer, timeout) (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_UNLOCK_MASK),\
00198 Wr_bitfield(AVR32_USBB_usbcon, AVR32_USBB_USBCON_TIMPAGE_MASK, timer),\
00199 Wr_bitfield(AVR32_USBB_usbcon, AVR32_USBB_USBCON_TIMVALUE_MASK, timeout),\
00200 Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_UNLOCK_MASK))
00202 #define Usb_get_timeout(timer) (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_UNLOCK_MASK),\
00203 Wr_bitfield(AVR32_USBB_usbcon, AVR32_USBB_USBCON_TIMPAGE_MASK, timer),\
00204 Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_UNLOCK_MASK),\
00205 Rd_bitfield(AVR32_USBB_usbcon, AVR32_USBB_USBCON_TIMVALUE_MASK))
00206
00207 #if USB_DEVICE_FEATURE == ENABLED && USB_HOST_FEATURE == ENABLED
00209 #ifndef USB_ID
00210 #error YOU MUST define in your board header file the multiplexed pin used for USB_ID as AVR32_USBB_USB_ID_x_x
00211 #endif
00213 #define USB_ID_PIN ATPASTE2(USB_ID, _PIN)
00214 #define USB_ID_FUNCTION ATPASTE2(USB_ID, _FUNCTION)
00216 #define Usb_input_id_pin() \
00217 {\
00218 (Tst_bits(USB_ID_FUNCTION, 0x01)) ?\
00219 (AVR32_GPIO.port[USB_ID_PIN >> 5].pmr0s = 1 << (USB_ID_PIN & 0x1F)) :\
00220 (AVR32_GPIO.port[USB_ID_PIN >> 5].pmr0c = 1 << (USB_ID_PIN & 0x1F)); \
00221 (Tst_bits(USB_ID_FUNCTION, 0x02)) ?\
00222 (AVR32_GPIO.port[USB_ID_PIN >> 5].pmr1s = 1 << (USB_ID_PIN & 0x1F)) :\
00223 (AVR32_GPIO.port[USB_ID_PIN >> 5].pmr1c = 1 << (USB_ID_PIN & 0x1F)); \
00224 AVR32_GPIO.port[USB_ID_PIN >> 5].gperc = 1 << (USB_ID_PIN & 0x1F);\
00225 AVR32_GPIO.port[USB_ID_PIN >> 5].puers = 1 << (USB_ID_PIN & 0x1F);\
00226 }
00228 #define Is_usb_id_pin_input() \
00229 (!Tst_bits(AVR32_GPIO.port[USB_ID_PIN >> 5].gper, 1 << (USB_ID_PIN & 0x1F)) &&\
00230 Tst_bits(AVR32_GPIO.port[USB_ID_PIN >> 5].pmr0, 1 << (USB_ID_PIN & 0x1F)) == Tst_bits(USB_ID_PIN, 0x01) &&\
00231 Tst_bits(AVR32_GPIO.port[USB_ID_PIN >> 5].pmr1, 1 << (USB_ID_PIN & 0x1F)) == Tst_bits(USB_ID_PIN, 0x02))
00232 #endif // USB_DEVICE_FEATURE == ENABLED && USB_HOST_FEATURE == ENABLED
00234 #define Usb_enable_id_pin() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_UIDE_MASK))
00236 #define Usb_disable_id_pin() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_UIDE_MASK))
00238 #define Is_usb_id_pin_enabled() (Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_UIDE_MASK))
00240 #define Usb_force_device_mode() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_UIMOD_MASK), Usb_disable_id_pin())
00242 #define Is_usb_device_mode_forced() (!Is_usb_id_pin_enabled() && Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_UIMOD_MASK))
00244 #define Usb_force_host_mode() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_UIMOD_MASK), Usb_disable_id_pin())
00246 #define Is_usb_host_mode_forced() (!Is_usb_id_pin_enabled() && !Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_UIMOD_MASK))
00247
00248 #if USB_HOST_FEATURE == ENABLED
00250 #ifndef USB_VBOF
00251 #error YOU MUST define in your board header file the multiplexed pin used for USB_VBOF as AVR32_USBB_USB_VBOF_x_x
00252 #endif
00254 #define USB_VBOF_PIN ATPASTE2(USB_VBOF, _PIN)
00255 #define USB_VBOF_FUNCTION ATPASTE2(USB_VBOF, _FUNCTION)
00257 #define Usb_output_vbof_pin() \
00258 {\
00259 (Tst_bits(USB_VBOF_FUNCTION, 0x01)) ?\
00260 (AVR32_GPIO.port[USB_VBOF_PIN >> 5].pmr0s = 1 << (USB_VBOF_PIN & 0x1F)) :\
00261 (AVR32_GPIO.port[USB_VBOF_PIN >> 5].pmr0c = 1 << (USB_VBOF_PIN & 0x1F)); \
00262 (Tst_bits(USB_VBOF_FUNCTION, 0x02)) ?\
00263 (AVR32_GPIO.port[USB_VBOF_PIN >> 5].pmr1s = 1 << (USB_VBOF_PIN & 0x1F)) :\
00264 (AVR32_GPIO.port[USB_VBOF_PIN >> 5].pmr1c = 1 << (USB_VBOF_PIN & 0x1F)); \
00265 AVR32_GPIO.port[USB_VBOF_PIN >> 5].gperc = 1 << (USB_VBOF_PIN & 0x1F);\
00266 AVR32_GPIO.port[USB_VBOF_PIN >> 5].odmerc = 1 << (USB_VBOF_PIN & 0x1F);\
00267 AVR32_GPIO.port[USB_VBOF_PIN >> 5].puerc = 1 << (USB_VBOF_PIN & 0x1F);\
00268 }
00270 #define Is_usb_vbof_pin_output() \
00271 (!Tst_bits(AVR32_GPIO.port[USB_VBOF_PIN >> 5].gper, 1 << (USB_VBOF_PIN & 0x1F)) &&\
00272 Tst_bits(AVR32_GPIO.port[USB_VBOF_PIN >> 5].pmr0, 1 << (USB_VBOF_PIN & 0x1F)) == Tst_bits(USB_VBOF_FUNCTION, 0x01) &&\
00273 Tst_bits(AVR32_GPIO.port[USB_VBOF_PIN >> 5].pmr1, 1 << (USB_VBOF_PIN & 0x1F)) == Tst_bits(USB_VBOF_FUNCTION, 0x02))
00274 #endif // USB_HOST_FEATURE == ENABLED
00276 #define Usb_set_vbof_active_high() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_VBUSPO_MASK))
00277 #define Usb_set_vbof_active_low() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_VBUSPO_MASK))
00279 #define Is_usb_vbof_active_high() (!Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_VBUSPO_MASK))
00280 #define Is_usb_vbof_active_low() (!Is_usb_vbof_active_high())
00281
00283 #define Usb_use_full_speed_mode() (Clr_bits(AVR32_USBB_udcon, AVR32_USBB_UDCON_LS_MASK))
00285 #define Is_usb_full_speed_mode_used() (!Is_usb_low_speed_mode_forced())
00286 #ifdef AVR32_USBB_UDCON_SPDCONF
00288 #define Usb_force_full_speed_mode() (Wr_bitfield(AVR32_USBB_udcon, AVR32_USBB_UDCON_SPDCONF_MASK, 3))
00290 #define Usb_use_dual_speed_mode() (Wr_bitfield(AVR32_USBB_udcon, AVR32_USBB_UDCON_SPDCONF_MASK, 0))
00291 #else
00292 #define Usb_force_full_speed_mode() do { } while (0)
00293 #define Usb_use_dual_speed_mode() do { } while (0)
00294 #endif
00296 #define Usb_force_low_speed_mode() (Set_bits(AVR32_USBB_udcon, AVR32_USBB_UDCON_LS_MASK))
00298 #define Is_usb_low_speed_mode_forced() (Tst_bits(AVR32_USBB_udcon, AVR32_USBB_UDCON_LS_MASK))
00300 #define Is_usb_full_speed_mode() (Rd_bitfield(AVR32_USBB_usbsta, AVR32_USBB_USBSTA_SPEED_MASK) == AVR32_USBB_USBSTA_SPEED_FULL)
00302 #define Is_usb_low_speed_mode() (Rd_bitfield(AVR32_USBB_usbsta, AVR32_USBB_USBSTA_SPEED_MASK) == AVR32_USBB_USBSTA_SPEED_LOW)
00303
00305 #define Usb_enable() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_USBE_MASK))
00307 #define Usb_disable() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_USBE_MASK))
00308 #define Is_usb_enabled() (Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_USBE_MASK))
00309
00311 #define Usb_enable_otg_pad() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_OTGPADE_MASK))
00313 #define Usb_disable_otg_pad() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_OTGPADE_MASK))
00314 #define Is_usb_otg_pad_enabled() (Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_OTGPADE_MASK))
00315
00317 #define Usb_freeze_clock() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_FRZCLK_MASK))
00318 #define Usb_unfreeze_clock() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_FRZCLK_MASK))
00319 #define Is_usb_clock_frozen() (Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_FRZCLK_MASK))
00320
00322 #define Usb_get_fsm_drd_state() (Rd_bitfield(AVR32_USBB_usbfsm, AVR32_USBB_USBFSM_DRDSTATE_MASK))
00323
00324 #define Usb_enable_id_interrupt() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_IDTE_MASK))
00325 #define Usb_disable_id_interrupt() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_IDTE_MASK))
00326 #define Is_usb_id_interrupt_enabled() (Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_IDTE_MASK))
00327 #define Is_usb_id_device() (Tst_bits(AVR32_USBB_usbsta, AVR32_USBB_USBSTA_ID_MASK))
00328 #define Usb_ack_id_transition() (AVR32_USBB_usbstaclr = AVR32_USBB_USBSTACLR_IDTIC_MASK)
00329 #define Usb_raise_id_transition() (AVR32_USBB_usbstaset = AVR32_USBB_USBSTASET_IDTIS_MASK)
00330 #define Is_usb_id_transition() (Tst_bits(AVR32_USBB_usbsta, AVR32_USBB_USBSTA_IDTI_MASK))
00331
00332 #define Usb_enable_vbus_interrupt() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_VBUSTE_MASK))
00333 #define Usb_disable_vbus_interrupt() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_VBUSTE_MASK))
00334 #define Is_usb_vbus_interrupt_enabled() (Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_VBUSTE_MASK))
00335 #define Is_usb_vbus_high() (Tst_bits(AVR32_USBB_usbsta, AVR32_USBB_USBSTA_VBUS_MASK))
00336 #define Is_usb_vbus_low() (!Is_usb_vbus_high())
00337 #define Usb_ack_vbus_transition() (AVR32_USBB_usbstaclr = AVR32_USBB_USBSTACLR_VBUSTIC_MASK)
00338 #define Usb_raise_vbus_transition() (AVR32_USBB_usbstaset = AVR32_USBB_USBSTASET_VBUSTIS_MASK)
00339 #define Is_usb_vbus_transition() (Tst_bits(AVR32_USBB_usbsta, AVR32_USBB_USBSTA_VBUSTI_MASK))
00340
00342 #define Usb_enable_vbus_hw_control() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_VBUSHWC_MASK))
00344 #define Usb_disable_vbus_hw_control() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_VBUSHWC_MASK))
00345 #define Is_usb_vbus_hw_control_enabled() (!Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_VBUSHWC_MASK))
00347 #define Usb_enable_vbus() (AVR32_USBB_usbstaset = AVR32_USBB_USBSTASET_VBUSRQS_MASK)
00349 #define Usb_disable_vbus() (AVR32_USBB_usbstaclr = AVR32_USBB_USBSTACLR_VBUSRQC_MASK)
00351 #define Is_usb_vbus_enabled() (Tst_bits(AVR32_USBB_usbsta, AVR32_USBB_USBSTA_VBUSRQ_MASK))
00352
00354 #define Usb_device_initiate_hnp() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_HNPREQ_MASK))
00356 #define Usb_host_accept_hnp() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_HNPREQ_MASK))
00358 #define Usb_host_reject_hnp() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_HNPREQ_MASK))
00360 #define Usb_device_initiate_srp() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_SRPREQ_MASK))
00362 #define Usb_select_vbus_srp_method() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_SRPSEL_MASK))
00363 #define Is_usb_vbus_srp_method_selected() (Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_SRPSEL_MASK))
00365 #define Usb_select_data_srp_method() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_SRPSEL_MASK))
00366 #define Is_usb_data_srp_method_selected() (!Is_usb_vbus_srp_method_selected())
00368 #define Is_usb_hnp() (Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_HNPREQ_MASK))
00370 #define Is_usb_device_srp() (Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_SRPREQ_MASK))
00371
00373 #define Usb_enable_suspend_time_out_interrupt() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_STOE_MASK))
00375 #define Usb_disable_suspend_time_out_interrupt() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_STOE_MASK))
00376 #define Is_usb_suspend_time_out_interrupt_enabled() (Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_STOE_MASK))
00378 #define Usb_ack_suspend_time_out_interrupt() (AVR32_USBB_usbstaclr = AVR32_USBB_USBSTACLR_STOIC_MASK)
00380 #define Usb_raise_suspend_time_out_interrupt() (AVR32_USBB_usbstaset = AVR32_USBB_USBSTASET_STOIS_MASK)
00382 #define Is_usb_suspend_time_out_interrupt() (Tst_bits(AVR32_USBB_usbsta, AVR32_USBB_USBSTA_STOI_MASK))
00383
00385 #define Usb_enable_hnp_error_interrupt() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_HNPERRE_MASK))
00387 #define Usb_disable_hnp_error_interrupt() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_HNPERRE_MASK))
00388 #define Is_usb_hnp_error_interrupt_enabled() (Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_HNPERRE_MASK))
00390 #define Usb_ack_hnp_error_interrupt() (AVR32_USBB_usbstaclr = AVR32_USBB_USBSTACLR_HNPERRIC_MASK)
00392 #define Usb_raise_hnp_error_interrupt() (AVR32_USBB_usbstaset = AVR32_USBB_USBSTASET_HNPERRIS_MASK)
00394 #define Is_usb_hnp_error_interrupt() (Tst_bits(AVR32_USBB_usbsta, AVR32_USBB_USBSTA_HNPERRI_MASK))
00395
00397 #define Usb_enable_role_exchange_interrupt() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_ROLEEXE_MASK))
00399 #define Usb_disable_role_exchange_interrupt() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_ROLEEXE_MASK))
00400 #define Is_usb_role_exchange_interrupt_enabled() (Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_ROLEEXE_MASK))
00402 #define Usb_ack_role_exchange_interrupt() (AVR32_USBB_usbstaclr = AVR32_USBB_USBSTACLR_ROLEEXIC_MASK)
00404 #define Usb_raise_role_exchange_interrupt() (AVR32_USBB_usbstaset = AVR32_USBB_USBSTASET_ROLEEXIS_MASK)
00406 #define Is_usb_role_exchange_interrupt() (Tst_bits(AVR32_USBB_usbsta, AVR32_USBB_USBSTA_ROLEEXI_MASK))
00407
00409 #define Usb_enable_bconnection_error_interrupt() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_BCERRE_MASK))
00411 #define Usb_disable_bconnection_error_interrupt() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_BCERRE_MASK))
00412 #define Is_usb_bconnection_error_interrupt_enabled() (Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_BCERRE_MASK))
00414 #define Usb_ack_bconnection_error_interrupt() (AVR32_USBB_usbstaclr = AVR32_USBB_USBSTACLR_BCERRIC_MASK)
00416 #define Usb_raise_bconnection_error_interrupt() (AVR32_USBB_usbstaset = AVR32_USBB_USBSTASET_BCERRIS_MASK)
00418 #define Is_usb_bconnection_error_interrupt() (Tst_bits(AVR32_USBB_usbsta, AVR32_USBB_USBSTA_BCERRI_MASK))
00419
00421 #define Usb_enable_vbus_error_interrupt() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_VBERRE_MASK))
00423 #define Usb_disable_vbus_error_interrupt() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_VBERRE_MASK))
00424 #define Is_usb_vbus_error_interrupt_enabled() (Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_VBERRE_MASK))
00426 #define Usb_ack_vbus_error_interrupt() (AVR32_USBB_usbstaclr = AVR32_USBB_USBSTACLR_VBERRIC_MASK)
00428 #define Usb_raise_vbus_error_interrupt() (AVR32_USBB_usbstaset = AVR32_USBB_USBSTASET_VBERRIS_MASK)
00430 #define Is_usb_vbus_error_interrupt() (Tst_bits(AVR32_USBB_usbsta, AVR32_USBB_USBSTA_VBERRI_MASK))
00431
00433 #define Usb_enable_srp_interrupt() (Set_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_SRPE_MASK))
00435 #define Usb_disable_srp_interrupt() (Clr_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_SRPE_MASK))
00436 #define Is_usb_srp_interrupt_enabled() (Tst_bits(AVR32_USBB_usbcon, AVR32_USBB_USBCON_SRPE_MASK))
00438 #define Usb_ack_srp_interrupt() (AVR32_USBB_usbstaclr = AVR32_USBB_USBSTACLR_SRPIC_MASK)
00440 #define Usb_raise_srp_interrupt() (AVR32_USBB_usbstaset = AVR32_USBB_USBSTASET_SRPIS_MASK)
00442 #define Is_usb_srp_interrupt() (Tst_bits(AVR32_USBB_usbsta, AVR32_USBB_USBSTA_SRPI_MASK))
00444
00445
00450 #define Usb_initiate_remote_wake_up() (Set_bits(AVR32_USBB_udcon, AVR32_USBB_UDCON_RMWKUP_MASK))
00452 #define Usb_detach() (Set_bits(AVR32_USBB_udcon, AVR32_USBB_UDCON_DETACH_MASK))
00454 #define Usb_attach() (Clr_bits(AVR32_USBB_udcon, AVR32_USBB_UDCON_DETACH_MASK))
00456 #define Is_usb_pending_remote_wake_up() (Tst_bits(AVR32_USBB_udcon, AVR32_USBB_UDCON_RMWKUP_MASK))
00458 #define Is_usb_detached() (Tst_bits(AVR32_USBB_udcon, AVR32_USBB_UDCON_DETACH_MASK))
00459
00461 #define Usb_enable_remote_wake_up_interrupt() (AVR32_USBB_udinteset = AVR32_USBB_UDINTESET_UPRSMES_MASK)
00463 #define Usb_disable_remote_wake_up_interrupt() (AVR32_USBB_udinteclr = AVR32_USBB_UDINTECLR_UPRSMEC_MASK)
00464
00465 #define Is_usb_remote_wake_up_interrupt_enabled() (Tst_bits(AVR32_USBB_udinte, AVR32_USBB_UDINTE_UPRSME_MASK))
00467 #define Usb_ack_remote_wake_up_start() (AVR32_USBB_udintclr = AVR32_USBB_UDINTCLR_UPRSMC_MASK)
00469 #define Usb_raise_remote_wake_up_start() (AVR32_USBB_udintset = AVR32_USBB_UDINTSET_UPRSMS_MASK)
00471 #define Is_usb_remote_wake_up_start() (Tst_bits(AVR32_USBB_udint, AVR32_USBB_UDINT_UPRSM_MASK))
00472
00474 #define Usb_enable_resume_interrupt() (AVR32_USBB_udinteset = AVR32_USBB_UDINTESET_EORSMES_MASK)
00476 #define Usb_disable_resume_interrupt() (AVR32_USBB_udinteclr = AVR32_USBB_UDINTECLR_EORSMEC_MASK)
00477 #define Is_usb_resume_interrupt_enabled() (Tst_bits(AVR32_USBB_udinte, AVR32_USBB_UDINTE_EORSME_MASK))
00479 #define Usb_ack_resume() (AVR32_USBB_udintclr = AVR32_USBB_UDINTCLR_EORSMC_MASK)
00481 #define Usb_raise_resume() (AVR32_USBB_udintset = AVR32_USBB_UDINTSET_EORSMS_MASK)
00483 #define Is_usb_resume() (Tst_bits(AVR32_USBB_udint, AVR32_USBB_UDINT_EORSM_MASK))
00484
00486 #define Usb_enable_wake_up_interrupt() (AVR32_USBB_udinteset = AVR32_USBB_UDINTESET_WAKEUPES_MASK)
00488 #define Usb_disable_wake_up_interrupt() (AVR32_USBB_udinteclr = AVR32_USBB_UDINTECLR_WAKEUPEC_MASK)
00489 #define Is_usb_wake_up_interrupt_enabled() (Tst_bits(AVR32_USBB_udinte, AVR32_USBB_UDINTE_WAKEUPE_MASK))
00491 #define Usb_ack_wake_up() (AVR32_USBB_udintclr = AVR32_USBB_UDINTCLR_WAKEUPC_MASK)
00493 #define Usb_raise_wake_up() (AVR32_USBB_udintset = AVR32_USBB_UDINTSET_WAKEUPS_MASK)
00495 #define Is_usb_wake_up() (Tst_bits(AVR32_USBB_udint, AVR32_USBB_UDINT_WAKEUP_MASK))
00496
00498 #define Usb_enable_reset_interrupt() (AVR32_USBB_udinteset = AVR32_USBB_UDINTESET_EORSTES_MASK)
00500 #define Usb_disable_reset_interrupt() (AVR32_USBB_udinteclr = AVR32_USBB_UDINTECLR_EORSTEC_MASK)
00501 #define Is_usb_reset_interrupt_enabled() (Tst_bits(AVR32_USBB_udinte, AVR32_USBB_UDINTE_EORSTE_MASK))
00503 #define Usb_ack_reset() (AVR32_USBB_udintclr = AVR32_USBB_UDINTCLR_EORSTC_MASK)
00505 #define Usb_raise_reset() (AVR32_USBB_udintset = AVR32_USBB_UDINTSET_EORSTS_MASK)
00507 #define Is_usb_reset() (Tst_bits(AVR32_USBB_udint, AVR32_USBB_UDINT_EORST_MASK))
00508
00510 #define Usb_enable_sof_interrupt() (AVR32_USBB_udinteset = AVR32_USBB_UDINTESET_SOFES_MASK)
00512 #define Usb_disable_sof_interrupt() (AVR32_USBB_udinteclr = AVR32_USBB_UDINTECLR_SOFEC_MASK)
00513 #define Is_usb_sof_interrupt_enabled() (Tst_bits(AVR32_USBB_udinte, AVR32_USBB_UDINTE_SOFE_MASK))
00515 #define Usb_ack_sof() (AVR32_USBB_udintclr = AVR32_USBB_UDINTCLR_SOFC_MASK)
00517 #define Usb_raise_sof() (AVR32_USBB_udintset = AVR32_USBB_UDINTSET_SOFS_MASK)
00519 #define Is_usb_sof() (Tst_bits(AVR32_USBB_udint, AVR32_USBB_UDINT_SOF_MASK))
00520
00522 #define Usb_enable_suspend_interrupt() (AVR32_USBB_udinteset = AVR32_USBB_UDINTESET_SUSPES_MASK)
00524 #define Usb_disable_suspend_interrupt() (AVR32_USBB_udinteclr = AVR32_USBB_UDINTECLR_SUSPEC_MASK)
00525 #define Is_usb_suspend_interrupt_enabled() (Tst_bits(AVR32_USBB_udinte, AVR32_USBB_UDINTE_SUSPE_MASK))
00527 #define Usb_ack_suspend() (AVR32_USBB_udintclr = AVR32_USBB_UDINTCLR_SUSPC_MASK)
00529 #define Usb_raise_suspend() (AVR32_USBB_udintset = AVR32_USBB_UDINTSET_SUSPS_MASK)
00531 #define Is_usb_suspend() (Tst_bits(AVR32_USBB_udint, AVR32_USBB_UDINT_SUSP_MASK))
00532
00534 #define Usb_enable_address() (Set_bits(AVR32_USBB_udcon, AVR32_USBB_UDCON_ADDEN_MASK))
00536 #define Usb_disable_address() (Clr_bits(AVR32_USBB_udcon, AVR32_USBB_UDCON_ADDEN_MASK))
00537 #define Is_usb_address_enabled() (Tst_bits(AVR32_USBB_udcon, AVR32_USBB_UDCON_ADDEN_MASK))
00539 #define Usb_configure_address(addr) (Wr_bitfield(AVR32_USBB_udcon, AVR32_USBB_UDCON_UADD_MASK, addr))
00541 #define Usb_get_configured_address() (Rd_bitfield(AVR32_USBB_udcon, AVR32_USBB_UDCON_UADD_MASK))
00542
00544 #define Usb_frame_number() (Rd_bitfield(AVR32_USBB_udfnum, AVR32_USBB_UDFNUM_FNUM_MASK))
00546 #define Is_usb_frame_number_crc_error() (Tst_bits(AVR32_USBB_udfnum, AVR32_USBB_UDFNUM_FNCERR_MASK))
00548
00549
00554 #define Usb_reset_endpoint(ep) (Set_bits(AVR32_USBB_uerst, AVR32_USBB_UERST_EPRST0_MASK << (ep)),\
00555 Clr_bits(AVR32_USBB_uerst, AVR32_USBB_UERST_EPRST0_MASK << (ep)))
00557 #define Is_usb_resetting_endpoint(ep) (Tst_bits(AVR32_USBB_uerst, AVR32_USBB_UERST_EPRST0_MASK << (ep)))
00558
00560 #define Usb_enable_endpoint(ep) (Set_bits(AVR32_USBB_uerst, AVR32_USBB_UERST_EPEN0_MASK << (ep)))
00562 #define Usb_enable_stall_handshake(ep) (AVR32_USBB_ueconxset(ep) = AVR32_USBB_UECONXSET_STALLRQS_MASK)
00566 #define Usb_halt_endpoint(ep) (Usb_enable_stall_handshake(ep))
00568 #define Usb_reset_data_toggle(ep) (AVR32_USBB_ueconxset(ep) = AVR32_USBB_UECONXSET_RSTDTS_MASK)
00570 #define Usb_disable_endpoint(ep) (Clr_bits(AVR32_USBB_uerst, AVR32_USBB_UERST_EPEN0_MASK << (ep)))
00572 #define Usb_disable_stall_handshake(ep) (AVR32_USBB_ueconxclr(ep) = AVR32_USBB_UECONXCLR_STALLRQC_MASK)
00574 #define Is_usb_endpoint_enabled(ep) (Tst_bits(AVR32_USBB_uerst, AVR32_USBB_UERST_EPEN0_MASK << (ep)))
00576 #define Is_usb_endpoint_stall_requested(ep) (Tst_bits(AVR32_USBB_ueconx(ep), AVR32_USBB_UECONX_STALLRQ_MASK))
00578 #define Is_usb_data_toggle_reset(ep) (Tst_bits(AVR32_USBB_ueconx(ep), AVR32_USBB_UECONX_RSTDT_MASK))
00579
00581 #define Is_usb_endpoint_interrupt(ep) (Tst_bits(AVR32_USBB_udint, AVR32_USBB_UDINT_EP0INT_MASK << (ep)))
00583 #define Usb_enable_endpoint_interrupt(ep) (AVR32_USBB_udinteset = AVR32_USBB_UDINTESET_EP0INTES_MASK << (ep))
00585 #define Usb_disable_endpoint_interrupt(ep) (AVR32_USBB_udinteclr = AVR32_USBB_UDINTECLR_EP0INTEC_MASK << (ep))
00587 #define Is_usb_endpoint_interrupt_enabled(ep) (Tst_bits(AVR32_USBB_udinte, AVR32_USBB_UDINTE_EP0INTE_MASK << (ep)))
00589 #define Usb_get_interrupt_endpoint_number() (ctz(((AVR32_USBB_udint >> AVR32_USBB_UDINT_EP0INT_OFFSET) &\
00590 (AVR32_USBB_udinte >> AVR32_USBB_UDINTE_EP0INTE_OFFSET)) |\
00591 (1 << MAX_PEP_NB)))
00592
00594 #define Usb_configure_endpoint_type(ep, type) (Wr_bitfield(AVR32_USBB_uecfgx(ep), AVR32_USBB_UECFGX_EPTYPE_MASK, type))
00596 #define Usb_get_endpoint_type(ep) (Rd_bitfield(AVR32_USBB_uecfgx(ep), AVR32_USBB_UECFGX_EPTYPE_MASK))
00598 #define Usb_enable_endpoint_bank_autoswitch(ep) (Set_bits(AVR32_USBB_uecfgx(ep), AVR32_USBB_UECFGX_AUTOSW_MASK))
00600 #define Usb_disable_endpoint_bank_autoswitch(ep) (Clr_bits(AVR32_USBB_uecfgx(ep), AVR32_USBB_UECFGX_AUTOSW_MASK))
00601 #define Is_usb_endpoint_bank_autoswitch_enabled(ep) (Tst_bits(AVR32_USBB_uecfgx(ep), AVR32_USBB_UECFGX_AUTOSW_MASK))
00603 #define Usb_configure_endpoint_direction(ep, dir) (Wr_bitfield(AVR32_USBB_uecfgx(ep), AVR32_USBB_UECFGX_EPDIR_MASK, dir))
00605 #define Usb_get_endpoint_direction(ep) (Rd_bitfield(AVR32_USBB_uecfgx(ep), AVR32_USBB_UECFGX_EPDIR_MASK))
00609 #define Usb_format_endpoint_size(size) (32 - clz(((U32)min(max(size, 8), 1024) << 1) - 1) - 1 - 3)
00611 #define Usb_configure_endpoint_size(ep, size) (Wr_bitfield(AVR32_USBB_uecfgx(ep), AVR32_USBB_UECFGX_EPSIZE_MASK, Usb_format_endpoint_size(size)))
00613 #define Usb_get_endpoint_size(ep) (8 << Rd_bitfield(AVR32_USBB_uecfgx(ep), AVR32_USBB_UECFGX_EPSIZE_MASK))
00615 #define Usb_configure_endpoint_bank(ep, bank) (Wr_bitfield(AVR32_USBB_uecfgx(ep), AVR32_USBB_UECFGX_EPBK_MASK, bank))
00617 #define Usb_get_endpoint_bank(ep) (Rd_bitfield(AVR32_USBB_uecfgx(ep), AVR32_USBB_UECFGX_EPBK_MASK))
00619 #define Usb_allocate_memory(ep) (Set_bits(AVR32_USBB_uecfgx(ep), AVR32_USBB_UECFGX_ALLOC_MASK))
00621 #define Usb_unallocate_memory(ep) (Clr_bits(AVR32_USBB_uecfgx(ep), AVR32_USBB_UECFGX_ALLOC_MASK))
00622 #define Is_usb_memory_allocated(ep) (Tst_bits(AVR32_USBB_uecfgx(ep), AVR32_USBB_UECFGX_ALLOC_MASK))
00623
00625 #define Usb_configure_endpoint(ep, type, dir, size, bank) \
00626 (\
00627 Usb_enable_endpoint(ep),\
00628 Wr_bits(AVR32_USBB_uecfgx(ep), AVR32_USBB_UECFGX_EPTYPE_MASK |\
00629 AVR32_USBB_UECFGX_EPDIR_MASK |\
00630 AVR32_USBB_UECFGX_EPSIZE_MASK |\
00631 AVR32_USBB_UECFGX_EPBK_MASK, \
00632 (((U32)(type) << AVR32_USBB_UECFGX_EPTYPE_OFFSET) & AVR32_USBB_UECFGX_EPTYPE_MASK) |\
00633 (((U32)(dir ) << AVR32_USBB_UECFGX_EPDIR_OFFSET ) & AVR32_USBB_UECFGX_EPDIR_MASK ) |\
00634 ( (U32)Usb_format_endpoint_size(size) << AVR32_USBB_UECFGX_EPSIZE_OFFSET ) |\
00635 (((U32)(bank) << AVR32_USBB_UECFGX_EPBK_OFFSET ) & AVR32_USBB_UECFGX_EPBK_MASK )),\
00636 Usb_allocate_memory(ep),\
00637 \
00638 Is_usb_endpoint_configured(ep)\
00639 )
00640
00642 #define Usb_ack_overflow_interrupt(ep) (AVR32_USBB_uestaxclr(ep) = AVR32_USBB_UESTAXCLR_OVERFIC_MASK)
00644 #define Usb_raise_overflow_interrupt(ep) (AVR32_USBB_uestaxset(ep) = AVR32_USBB_UESTAXSET_OVERFIS_MASK)
00646 #define Usb_ack_underflow_interrupt(ep) (AVR32_USBB_uestaxclr(ep) = AVR32_USBB_UESTAXCLR_RXSTPIC_MASK)
00648 #define Usb_raise_underflow_interrupt(ep) (AVR32_USBB_uestaxset(ep) = AVR32_USBB_UESTAXSET_RXSTPIS_MASK)
00650 #define Usb_data_toggle(ep) (Rd_bitfield(AVR32_USBB_uestax(ep), AVR32_USBB_UESTAX_DTSEQ_MASK))
00652 #define Usb_nb_busy_bank(ep) (Rd_bitfield(AVR32_USBB_uestax(ep), AVR32_USBB_UESTAX_NBUSYBK_MASK))
00654 #define Is_usb_endpoint_configured(ep) (Tst_bits(AVR32_USBB_uestax(ep), AVR32_USBB_UESTAX_CFGOK_MASK))
00656 #define Is_usb_overflow(ep) (Tst_bits(AVR32_USBB_uestax(ep), AVR32_USBB_UESTAX_OVERFI_MASK))
00658 #define Is_usb_underflow(ep) (Tst_bits(AVR32_USBB_uestax(ep), AVR32_USBB_UESTAX_RXSTPI_MASK))
00659
00661 #define Usb_byte_count(ep) (Rd_bitfield(AVR32_USBB_uestax(ep), AVR32_USBB_UESTAX_BYCT_MASK))
00663 #define Usb_control_direction() (Rd_bitfield(AVR32_USBB_uestax(EP_CONTROL), AVR32_USBB_UESTAX_CTRLDIR_MASK))
00665 #define Usb_current_bank(ep) (Rd_bitfield(AVR32_USBB_uestax(ep), AVR32_USBB_UESTAX_CURRBK_MASK))
00666
00668 #define Usb_kill_last_in_bank(ep) (AVR32_USBB_ueconxset(ep) = AVR32_USBB_UECONXSET_KILLBKS_MASK)
00670 #define Usb_ack_short_packet(ep) (AVR32_USBB_uestaxclr(ep) = AVR32_USBB_UESTAXCLR_SHORTPACKETIC_MASK)
00672 #define Usb_raise_short_packet(ep) (AVR32_USBB_uestaxset(ep) = AVR32_USBB_UESTAXSET_SHORTPACKETIS_MASK)
00674 #define Usb_ack_stall(ep) (AVR32_USBB_uestaxclr(ep) = AVR32_USBB_UESTAXCLR_STALLEDIC_MASK)
00676 #define Usb_raise_stall(ep) (AVR32_USBB_uestaxset(ep) = AVR32_USBB_UESTAXSET_STALLEDIS_MASK)
00678 #define Usb_ack_crc_error(ep) (AVR32_USBB_uestaxclr(ep) = AVR32_USBB_UESTAXCLR_STALLEDIC_MASK)
00680 #define Usb_raise_crc_error(ep) (AVR32_USBB_uestaxset(ep) = AVR32_USBB_UESTAXSET_STALLEDIS_MASK)
00682 #define Usb_ack_nak_in(ep) (AVR32_USBB_uestaxclr(ep) = AVR32_USBB_UESTAXCLR_NAKINIC_MASK)
00684 #define Usb_raise_nak_in(ep) (AVR32_USBB_uestaxset(ep) = AVR32_USBB_UESTAXSET_NAKINIS_MASK)
00686 #define Usb_ack_nak_out(ep) (AVR32_USBB_uestaxclr(ep) = AVR32_USBB_UESTAXCLR_NAKOUTIC_MASK)
00688 #define Usb_raise_nak_out(ep) (AVR32_USBB_uestaxset(ep) = AVR32_USBB_UESTAXSET_NAKOUTIS_MASK)
00689
00691 #define Is_usb_last_in_bank_killed(ep) (Tst_bits(AVR32_USBB_ueconx(ep), AVR32_USBB_UECONX_KILLBK_MASK))
00693 #define Is_usb_read_enabled(ep) (Tst_bits(AVR32_USBB_uestax(ep), AVR32_USBB_UESTAX_RWALL_MASK))
00695 #define Is_usb_write_enabled(ep) (Tst_bits(AVR32_USBB_uestax(ep), AVR32_USBB_UESTAX_RWALL_MASK))
00697 #define Is_usb_short_packet(ep) (Tst_bits(AVR32_USBB_uestax(ep), AVR32_USBB_UESTAX_SHORTPACKETI_MASK))
00699 #define Is_usb_stall(ep) (Tst_bits(AVR32_USBB_uestax(ep), AVR32_USBB_UESTAX_STALLEDI_MASK))
00701 #define Is_usb_crc_error(ep) (Tst_bits(AVR32_USBB_uestax(ep), AVR32_USBB_UESTAX_STALLEDI_MASK))
00703 #define Is_usb_nak_in(ep) (Tst_bits(AVR32_USBB_uestax(ep), AVR32_USBB_UESTAX_NAKINI_MASK))
00705 #define Is_usb_nak_out(ep) (Tst_bits(AVR32_USBB_uestax(ep), AVR32_USBB_UESTAX_NAKOUTI_MASK))
00706
00708 #define Usb_ack_fifocon(ep) (AVR32_USBB_ueconxclr(ep) = AVR32_USBB_UECONXCLR_FIFOCONC_MASK)
00709
00711 #define Usb_ack_setup_received_free() (AVR32_USBB_uestaxclr(EP_CONTROL) = AVR32_USBB_UESTAXCLR_RXSTPIC_MASK)
00713 #define Usb_raise_setup_received() (AVR32_USBB_uestaxset(EP_CONTROL) = AVR32_USBB_UESTAXSET_RXSTPIS_MASK)
00715 #define Usb_ack_out_received(ep) (AVR32_USBB_uestaxclr(ep) = AVR32_USBB_UESTAXCLR_RXOUTIC_MASK)
00717 #define Usb_raise_out_received(ep) (AVR32_USBB_uestaxset(ep) = AVR32_USBB_UESTAXSET_RXOUTIS_MASK)
00719 #define Usb_free_out(ep) (Usb_ack_fifocon(ep))
00721 #define Usb_ack_out_received_free(ep) (Usb_ack_out_received(ep), Usb_free_out(ep))
00723 #define Usb_ack_control_out_received_free() (AVR32_USBB_uestaxclr(EP_CONTROL) = AVR32_USBB_UESTAXCLR_RXOUTIC_MASK)
00725 #define Usb_raise_control_out_received() (AVR32_USBB_uestaxset(EP_CONTROL) = AVR32_USBB_UESTAXSET_RXOUTIS_MASK)
00726
00728 #define Usb_ack_in_ready(ep) (AVR32_USBB_uestaxclr(ep) = AVR32_USBB_UESTAXCLR_TXINIC_MASK)
00730 #define Usb_raise_in_ready(ep) (AVR32_USBB_uestaxset(ep) = AVR32_USBB_UESTAXSET_TXINIS_MASK)
00732 #define Usb_send_in(ep) (Usb_ack_fifocon(ep))
00734 #define Usb_ack_in_ready_send(ep) (Usb_ack_in_ready(ep), Usb_send_in(ep))
00736 #define Usb_ack_control_in_ready_send() (AVR32_USBB_uestaxclr(EP_CONTROL) = AVR32_USBB_UESTAXCLR_TXINIC_MASK)
00738 #define Usb_raise_control_in_ready() (AVR32_USBB_uestaxset(EP_CONTROL) = AVR32_USBB_UESTAXSET_TXINIS_MASK)
00739
00741 #define Is_usb_fifocon(ep) (Tst_bits(AVR32_USBB_ueconx(ep), AVR32_USBB_UECONX_FIFOCON_MASK))
00742
00744 #define Is_usb_setup_received() (Tst_bits(AVR32_USBB_uestax(EP_CONTROL), AVR32_USBB_UESTAX_RXSTPI_MASK))
00746 #define Is_usb_out_received(ep) (Tst_bits(AVR32_USBB_uestax(ep), AVR32_USBB_UESTAX_RXOUTI_MASK))
00748 #define Is_usb_out_filled(ep) (Is_usb_fifocon(ep))
00750 #define Is_usb_control_out_received() (Tst_bits(AVR32_USBB_uestax(EP_CONTROL), AVR32_USBB_UESTAX_RXOUTI_MASK))
00751
00753 #define Is_usb_in_ready(ep) (Tst_bits(AVR32_USBB_uestax(ep), AVR32_USBB_UESTAX_TXINI_MASK))
00755 #define Is_usb_in_sent(ep) (Is_usb_fifocon(ep))
00757 #define Is_usb_control_in_ready() (Tst_bits(AVR32_USBB_uestax(EP_CONTROL), AVR32_USBB_UESTAX_TXINI_MASK))
00758
00760 #define Usb_force_bank_interrupt(ep) (AVR32_USBB_uestaxset(ep) = AVR32_USBB_UESTAXSET_NBUSYBKS_MASK)
00762 #define Usb_unforce_bank_interrupt(ep) (AVR32_USBB_uestaxset(ep) = AVR32_USBB_UESTAXSET_NBUSYBKS_MASK)
00764 #define Usb_enable_bank_interrupt(ep) (AVR32_USBB_ueconxset(ep) = AVR32_USBB_UECONXSET_NBUSYBKES_MASK)
00766 #define Usb_enable_short_packet_interrupt(ep) (AVR32_USBB_ueconxset(ep) = AVR32_USBB_UECONXSET_SHORTPACKETES_MASK)
00768 #define Usb_enable_stall_interrupt(ep) (AVR32_USBB_ueconxset(ep) = AVR32_USBB_UECONXSET_STALLEDES_MASK)
00770 #define Usb_enable_crc_error_interrupt(ep) (AVR32_USBB_ueconxset(ep) = AVR32_USBB_UECONXSET_STALLEDES_MASK)
00772 #define Usb_enable_overflow_interrupt(ep) (AVR32_USBB_ueconxset(ep) = AVR32_USBB_UECONXSET_OVERFES_MASK)
00774 #define Usb_enable_nak_in_interrupt(ep) (AVR32_USBB_ueconxset(ep) = AVR32_USBB_UECONXSET_NAKINES_MASK)
00776 #define Usb_enable_nak_out_interrupt(ep) (AVR32_USBB_ueconxset(ep) = AVR32_USBB_UECONXSET_NAKOUTES_MASK)
00778 #define Usb_enable_setup_received_interrupt() (AVR32_USBB_ueconxset(EP_CONTROL) = AVR32_USBB_UECONXSET_RXSTPES_MASK)
00780 #define Usb_enable_underflow_interrupt(ep) (AVR32_USBB_ueconxset(ep) = AVR32_USBB_UECONXSET_RXSTPES_MASK)
00782 #define Usb_enable_out_received_interrupt(ep) (AVR32_USBB_ueconxset(ep) = AVR32_USBB_UECONXSET_RXOUTES_MASK)
00784 #define Usb_enable_control_out_received_interrupt() (AVR32_USBB_ueconxset(EP_CONTROL) = AVR32_USBB_UECONXSET_RXOUTES_MASK)
00786 #define Usb_enable_in_ready_interrupt(ep) (AVR32_USBB_ueconxset(ep) = AVR32_USBB_UECONXSET_TXINES_MASK)
00788 #define Usb_enable_control_in_ready_interrupt() (AVR32_USBB_ueconxset(EP_CONTROL) = AVR32_USBB_UECONXSET_TXINES_MASK)
00790 #define Usb_disable_bank_interrupt(ep) (AVR32_USBB_ueconxclr(ep) = AVR32_USBB_UECONXCLR_NBUSYBKEC_MASK)
00792 #define Usb_disable_short_packet_interrupt(ep) (AVR32_USBB_ueconxclr(ep) = AVR32_USBB_UECONXCLR_SHORTPACKETEC_MASK)
00794 #define Usb_disable_stall_interrupt(ep) (AVR32_USBB_ueconxclr(ep) = AVR32_USBB_UECONXCLR_STALLEDEC_MASK)
00796 #define Usb_disable_crc_error_interrupt(ep) (AVR32_USBB_ueconxclr(ep) = AVR32_USBB_UECONXCLR_STALLEDEC_MASK)
00798 #define Usb_disable_overflow_interrupt(ep) (AVR32_USBB_ueconxclr(ep) = AVR32_USBB_UECONXCLR_OVERFEC_MASK)
00800 #define Usb_disable_nak_in_interrupt(ep) (AVR32_USBB_ueconxclr(ep) = AVR32_USBB_UECONXCLR_NAKINEC_MASK)
00802 #define Usb_disable_nak_out_interrupt(ep) (AVR32_USBB_ueconxclr(ep) = AVR32_USBB_UECONXCLR_NAKOUTEC_MASK)
00804 #define Usb_disable_setup_received_interrupt() (AVR32_USBB_ueconxclr(EP_CONTROL) = AVR32_USBB_UECONXCLR_RXSTPEC_MASK)
00806 #define Usb_disable_underflow_interrupt(ep) (AVR32_USBB_ueconxclr(ep) = AVR32_USBB_UECONXCLR_RXSTPEC_MASK)
00808 #define Usb_disable_out_received_interrupt(ep) (AVR32_USBB_ueconxclr(ep) = AVR32_USBB_UECONXCLR_RXOUTEC_MASK)
00810 #define Usb_disable_control_out_received_interrupt() (AVR32_USBB_ueconxclr(EP_CONTROL) = AVR32_USBB_UECONXCLR_RXOUTEC_MASK)
00812 #define Usb_disable_in_ready_interrupt(ep) (AVR32_USBB_ueconxclr(ep) = AVR32_USBB_UECONXCLR_TXINEC_MASK)
00814 #define Usb_disable_control_in_ready_interrupt() (AVR32_USBB_ueconxclr(EP_CONTROL) = AVR32_USBB_UECONXCLR_TXINEC_MASK)
00816 #define Is_usb_bank_interrupt_enabled(ep) (Tst_bits(AVR32_USBB_ueconx(ep), AVR32_USBB_UECONX_NBUSYBKE_MASK))
00818 #define Is_usb_short_packet_interrupt_enabled(ep) (Tst_bits(AVR32_USBB_ueconx(ep), AVR32_USBB_UECONX_SHORTPACKETE_MASK))
00820 #define Is_usb_stall_interrupt_enabled(ep) (Tst_bits(AVR32_USBB_ueconx(ep), AVR32_USBB_UECONX_STALLEDE_MASK))
00822 #define Is_usb_crc_error_interrupt_enabled(ep) (Tst_bits(AVR32_USBB_ueconx(ep), AVR32_USBB_UECONX_STALLEDE_MASK))
00824 #define Is_usb_overflow_interrupt_enabled(ep) (Tst_bits(AVR32_USBB_ueconx(ep), AVR32_USBB_UECONX_OVERFE_MASK))
00826 #define Is_usb_nak_in_interrupt_enabled(ep) (Tst_bits(AVR32_USBB_ueconx(ep), AVR32_USBB_UECONX_NAKINE_MASK))
00828 #define Is_usb_nak_out_interrupt_enabled(ep) (Tst_bits(AVR32_USBB_ueconx(ep), AVR32_USBB_UECONX_NAKOUTE_MASK))
00830 #define Is_usb_setup_received_interrupt_enabled() (Tst_bits(AVR32_USBB_ueconx(EP_CONTROL), AVR32_USBB_UECONX_RXSTPE_MASK))
00832 #define Is_usb_underflow_interrupt_enabled(ep) (Tst_bits(AVR32_USBB_ueconx(ep), AVR32_USBB_UECONX_RXSTPE_MASK))
00834 #define Is_usb_out_received_interrupt_enabled(ep) (Tst_bits(AVR32_USBB_ueconx(ep), AVR32_USBB_UECONX_RXOUTE_MASK))
00836 #define Is_usb_control_out_received_interrupt_enabled() (Tst_bits(AVR32_USBB_ueconx(EP_CONTROL), AVR32_USBB_UECONX_RXOUTE_MASK))
00838 #define Is_usb_in_ready_interrupt_enabled(ep) (Tst_bits(AVR32_USBB_ueconx(ep), AVR32_USBB_UECONX_TXINE_MASK))
00840 #define Is_usb_control_in_ready_interrupt_enabled() (Tst_bits(AVR32_USBB_ueconx(EP_CONTROL), AVR32_USBB_UECONX_TXINE_MASK))
00841
00851 #define Usb_get_endpoint_fifo_access(ep, scale) \
00852 (AVR32_USBB_FIFOX_DATA(ep, scale))
00853
00858 #define Usb_reset_endpoint_fifo_access(ep) \
00859 (pep_fifo[(ep)].u64ptr = Usb_get_endpoint_fifo_access(ep, 64))
00860
00873 #define Usb_read_endpoint_data(ep, scale) \
00874 (*pep_fifo[(ep)].TPASTE3(u, scale, ptr)\
00875 TPASTE3(Pep_fifo_access_, scale, _post_inc)())
00876
00890 #define Usb_write_endpoint_data(ep, scale, data) \
00891 (*pep_fifo[(ep)].TPASTE3(u, scale, ptr)\
00892 TPASTE3(Pep_fifo_access_, scale, _post_inc)() = (data))
00893
00905 #define Usb_read_endpoint_indexed_data(ep, scale, index) \
00906 (AVR32_USBB_FIFOX_DATA(ep, scale)[(index)])
00907
00920 #define Usb_write_endpoint_indexed_data(ep, scale, index, data) \
00921 (AVR32_USBB_FIFOX_DATA(ep, scale)[(index)] = (data))
00923
00924
00929 #define Usb_enable_endpoint_int_dis_hdma_req(ep) (AVR32_USBB_ueconxset(ep) = AVR32_USBB_UECONXSET_EPDISHDMAS_MASK)
00931 #define Usb_disable_endpoint_int_dis_hdma_req(ep) (AVR32_USBB_ueconxclr(ep) = AVR32_USBB_UECONXCLR_EPDISHDMAC_MASK)
00933 #define Is_usb_endpoint_int_dis_hdma_req_enabled(ep) (Tst_bits(AVR32_USBB_ueconx(ep), AVR32_USBB_UECONX_EPDISHDMA_MASK))
00934
00936 #define Usb_raise_endpoint_dma_interrupt(epdma) (AVR32_USBB_udintset = AVR32_USBB_UDINTSET_DMA1INTS_MASK << ((epdma) - 1))
00938 #define Is_usb_endpoint_dma_interrupt(epdma) (Tst_bits(AVR32_USBB_udint, AVR32_USBB_UDINT_DMA1INT_MASK << ((epdma) - 1)))
00940 #define Usb_enable_endpoint_dma_interrupt(epdma) (AVR32_USBB_udinteset = AVR32_USBB_UDINTESET_DMA1INTES_MASK << ((epdma) - 1))
00942 #define Usb_disable_endpoint_dma_interrupt(epdma) (AVR32_USBB_udinteclr = AVR32_USBB_UDINTECLR_DMA1INTEC_MASK << ((epdma) - 1))
00944 #define Is_usb_endpoint_dma_interrupt_enabled(epdma) (Tst_bits(AVR32_USBB_udinte, AVR32_USBB_UDINTE_DMA1INTE_MASK << ((epdma) - 1)))
00946 #if 0
00947 #define Usb_set_endpoint_dma_nxt_desc_addr(epdma, nxt_desc_addr) (AVR32_USBB_UDDMAX_NEXTDESC(epdma).nxt_desc_addr = (U32)(nxt_desc_addr))
00948 #define Usb_get_endpoint_dma_nxt_desc_addr(epdma) ((avr32_usbb_uxdmax_t *)AVR32_USBB_UDDMAX_NEXTDESC(epdma).nxt_desc_addr)
00949 #define (epdma) (AVR32_USBB_UDDMAX_addr(epdma))
00950 #define (epdma) (AVR32_USBB_UDDMAX_CONTROL(epdma).ch_byte_length)
00951 #define (epdma) (AVR32_USBB_UDDMAX_CONTROL(epdma).burst_lock_en)
00952 #define (epdma) (AVR32_USBB_UDDMAX_CONTROL(epdma).desc_ld_irq_en)
00953 #define (epdma) (AVR32_USBB_UDDMAX_CONTROL(epdma).eobuff_irq_en)
00954 #define (epdma) (AVR32_USBB_UDDMAX_CONTROL(epdma).eot_irq_en)
00955 #define (epdma) (AVR32_USBB_UDDMAX_CONTROL(epdma).dmaend_en)
00956 #define (epdma) (AVR32_USBB_UDDMAX_CONTROL(epdma).buff_close_in_en)
00957 #define (epdma) (AVR32_USBB_UDDMAX_CONTROL(epdma).ld_nxt_ch_desc_en)
00958 #define (epdma) (AVR32_USBB_UDDMAX_CONTROL(epdma).ch_en)
00959 #define (epdma) (AVR32_USBB_UDDMAX_STATUS(epdma).ch_byte_cnt)
00960 #define (epdma) (AVR32_USBB_UDDMAX_STATUS(epdma).desc_ld_sta)
00961 #define (epdma) (AVR32_USBB_UDDMAX_STATUS(epdma).eoch_buff_sta)
00962 #define (epdma) (AVR32_USBB_UDDMAX_STATUS(epdma).eot_sta)
00963 #define (epdma) (AVR32_USBB_UDDMAX_STATUS(epdma).ch_active)
00964 #define (epdma) (AVR32_USBB_UDDMAX_STATUS(epdma).ch_en)
00965 #endif
00967
00968
00973 #define Host_enable_sof() (Set_bits(AVR32_USBB_uhcon, AVR32_USBB_UHCON_SOFE_MASK))
00975 #define Host_disable_sof() (Clr_bits(AVR32_USBB_uhcon, AVR32_USBB_UHCON_SOFE_MASK))
00977 #define Is_host_sof_enabled() (Tst_bits(AVR32_USBB_uhcon, AVR32_USBB_UHCON_SOFE_MASK))
00979 #define Host_send_reset() (Set_bits(AVR32_USBB_uhcon, AVR32_USBB_UHCON_RESET_MASK))
00981 #define Host_stop_sending_reset() (Clr_bits(AVR32_USBB_uhcon, AVR32_USBB_UHCON_RESET_MASK))
00983 #define Is_host_sending_reset() (Tst_bits(AVR32_USBB_uhcon, AVR32_USBB_UHCON_RESET_MASK))
00985 #define Host_send_resume() (Set_bits(AVR32_USBB_uhcon, AVR32_USBB_UHCON_RESUME_MASK))
00987 #define Is_host_sending_resume() (Tst_bits(AVR32_USBB_uhcon, AVR32_USBB_UHCON_RESUME_MASK))
00988
00989 #ifdef AVR32_USBB_UHCON_SPDCONF
00991 #define Host_force_full_speed_mode() (Wr_bitfield(AVR32_USBB_uhcon, AVR32_USBB_UHCON_SPDCONF_MASK, 3))
00993 #define Host_enable_high_speed_mode() (Wr_bitfield(AVR32_USBB_uhcon, AVR32_USBB_UHCON_SPDCONF_MASK, 0))
00994 #endif
00995
00997 #define Host_enable_sof_interrupt() (AVR32_USBB_uhinteset = AVR32_USBB_UHINTESET_HSOFIES_MASK)
00999 #define Host_disable_sof_interrupt() (AVR32_USBB_uhinteclr = AVR32_USBB_UHINTECLR_HSOFIEC_MASK)
01000 #define Is_host_sof_interrupt_enabled() (Tst_bits(AVR32_USBB_uhinte, AVR32_USBB_UHINTE_HSOFIE_MASK))
01002 #define Host_ack_sof() (AVR32_USBB_uhintclr = AVR32_USBB_UHINTCLR_HSOFIC_MASK)
01004 #define Host_raise_sof() (AVR32_USBB_uhintset = AVR32_USBB_UHINTSET_HSOFIS_MASK)
01006 #define Is_host_sof() (Tst_bits(AVR32_USBB_uhint, AVR32_USBB_UHINT_HSOFI_MASK))
01007
01009 #define Host_enable_hwup_interrupt() (AVR32_USBB_uhinteset = AVR32_USBB_UHINTESET_HWUPIES_MASK)
01011 #define Host_disable_hwup_interrupt() (AVR32_USBB_uhinteclr = AVR32_USBB_UHINTECLR_HWUPIEC_MASK)
01012 #define Is_host_hwup_interrupt_enabled() (Tst_bits(AVR32_USBB_uhinte, AVR32_USBB_UHINTE_HWUPIE_MASK))
01014 #define Host_ack_hwup() (AVR32_USBB_uhintclr = AVR32_USBB_UHINTCLR_HWUPIC_MASK)
01016 #define Host_raise_hwup() (AVR32_USBB_uhintset = AVR32_USBB_UHINTSET_HWUPIS_MASK)
01018 #define Is_host_hwup() (Tst_bits(AVR32_USBB_uhint, AVR32_USBB_UHINT_HWUPI_MASK))
01019
01021 #define Host_enable_down_stream_resume_interrupt() (AVR32_USBB_uhinteset = AVR32_USBB_UHINTESET_RSMEDIES_MASK)
01023 #define Host_disable_down_stream_resume_interrupt() (AVR32_USBB_uhinteclr = AVR32_USBB_UHINTECLR_RSMEDIEC_MASK)
01024 #define Is_host_down_stream_resume_interrupt_enabled() (Tst_bits(AVR32_USBB_uhinte, AVR32_USBB_UHINTE_RSMEDIE_MASK))
01026 #define Host_ack_down_stream_resume() (AVR32_USBB_uhintclr = AVR32_USBB_UHINTCLR_RSMEDIC_MASK)
01028 #define Host_raise_down_stream_resume() (AVR32_USBB_uhintset = AVR32_USBB_UHINTSET_RSMEDIS_MASK)
01029 #define Is_host_down_stream_resume() (Tst_bits(AVR32_USBB_uhint, AVR32_USBB_UHINT_RSMEDI_MASK))
01030
01032 #define Host_enable_remote_wakeup_interrupt() (AVR32_USBB_uhinteset = AVR32_USBB_UHINTESET_RXRSMIES_MASK)
01034 #define Host_disable_remote_wakeup_interrupt() (AVR32_USBB_uhinteclr = AVR32_USBB_UHINTECLR_RXRSMIEC_MASK)
01035 #define Is_host_remote_wakeup_interrupt_enabled() (Tst_bits(AVR32_USBB_uhinte, AVR32_USBB_UHINTE_RXRSMIE_MASK))
01037 #define Host_ack_remote_wakeup() (AVR32_USBB_uhintclr = AVR32_USBB_UHINTCLR_RXRSMIC_MASK)
01039 #define Host_raise_remote_wakeup() (AVR32_USBB_uhintset = AVR32_USBB_UHINTSET_RXRSMIS_MASK)
01041 #define Is_host_remote_wakeup() (Tst_bits(AVR32_USBB_uhint, AVR32_USBB_UHINT_RXRSMI_MASK))
01042
01044 #define Host_enable_device_connection_interrupt() (AVR32_USBB_uhinteset = AVR32_USBB_UHINTESET_DCONNIES_MASK)
01046 #define Host_disable_device_connection_interrupt() (AVR32_USBB_uhinteclr = AVR32_USBB_UHINTECLR_DCONNIEC_MASK)
01047 #define Is_host_device_connection_interrupt_enabled() (Tst_bits(AVR32_USBB_uhinte, AVR32_USBB_UHINTE_DCONNIE_MASK))
01049 #define Host_ack_device_connection() (AVR32_USBB_uhintclr = AVR32_USBB_UHINTCLR_DCONNIC_MASK)
01051 #define Host_raise_device_connection() (AVR32_USBB_uhintset = AVR32_USBB_UHINTSET_DCONNIS_MASK)
01053 #define Is_host_device_connection() (Tst_bits(AVR32_USBB_uhint, AVR32_USBB_UHINT_DCONNI_MASK))
01054
01056 #define Host_enable_device_disconnection_interrupt() (AVR32_USBB_uhinteset = AVR32_USBB_UHINTESET_DDISCIES_MASK)
01058 #define Host_disable_device_disconnection_interrupt() (AVR32_USBB_uhinteclr = AVR32_USBB_UHINTECLR_DDISCIEC_MASK)
01059 #define Is_host_device_disconnection_interrupt_enabled() (Tst_bits(AVR32_USBB_uhinte, AVR32_USBB_UHINTE_DDISCIE_MASK))
01061 #define Host_ack_device_disconnection() (AVR32_USBB_uhintclr = AVR32_USBB_UHINTCLR_DDISCIC_MASK)
01063 #define Host_raise_device_disconnection() (AVR32_USBB_uhintset = AVR32_USBB_UHINTSET_DDISCIS_MASK)
01065 #define Is_host_device_disconnection() (Tst_bits(AVR32_USBB_uhint, AVR32_USBB_UHINT_DDISCI_MASK))
01066
01068 #define Host_enable_reset_sent_interrupt() (AVR32_USBB_uhinteset = AVR32_USBB_UHINTESET_RSTIES_MASK)
01070 #define Host_disable_reset_sent_interrupt() (AVR32_USBB_uhinteclr = AVR32_USBB_UHINTECLR_RSTIEC_MASK)
01071 #define Is_host_reset_sent_interrupt_enabled() (Tst_bits(AVR32_USBB_uhinte, AVR32_USBB_UHINTE_RSTIE_MASK))
01073 #define Host_ack_reset_sent() (AVR32_USBB_uhintclr = AVR32_USBB_UHINTCLR_RSTIC_MASK)
01075 #define Host_raise_reset_sent() (AVR32_USBB_uhintset = AVR32_USBB_UHINTSET_RSTIS_MASK)
01077 #define Is_host_reset_sent() (Tst_bits(AVR32_USBB_uhint, AVR32_USBB_UHINT_RSTI_MASK))
01078
01080 #define Host_set_frame_number(fnum) (Wr_bitfield(AVR32_USBB_uhfnum, AVR32_USBB_UHFNUM_FNUM_MASK, fnum))
01082 #define Host_frame_number() (Rd_bitfield(AVR32_USBB_uhfnum, AVR32_USBB_UHFNUM_FNUM_MASK))
01084 #define Host_frame_length() (Rd_bitfield(AVR32_USBB_uhfnum, AVR32_USBB_UHFNUM_FLENHIGH_MASK))
01085
01087 #define Host_configure_address(p, addr) (Wr_bitfield(AVR32_USBB_uhaddrx(1 + ((p) >> 2)), AVR32_USBB_UHADDR1_UHADDR_P0_MASK << (((p) & 0x03) << 3), addr))
01089 #define Host_get_configured_address(p) (Rd_bitfield(AVR32_USBB_uhaddrx(1 + ((p) >> 2)), AVR32_USBB_UHADDR1_UHADDR_P0_MASK << (((p) & 0x03) << 3)))
01091
01092
01097 #define Host_enable_pipe(p) (Set_bits(AVR32_USBB_uprst, AVR32_USBB_UPRST_PEN0_MASK << (p)))
01099 #define Host_disable_pipe(p) (Clr_bits(AVR32_USBB_uprst, AVR32_USBB_UPRST_PEN0_MASK << (p)))
01101 #define Is_host_pipe_enabled(p) (Tst_bits(AVR32_USBB_uprst, AVR32_USBB_UPRST_PEN0_MASK << (p)))
01102
01104 #define Is_host_pipe_interrupt(p) (Tst_bits(AVR32_USBB_uhint, AVR32_USBB_UHINT_P0INT_MASK << (p)))
01106 #define Host_enable_pipe_interrupt(p) (AVR32_USBB_uhinteset = AVR32_USBB_UHINTESET_P0INTES_MASK << (p))
01108 #define Host_disable_pipe_interrupt(p) (AVR32_USBB_uhinteclr = AVR32_USBB_UHINTECLR_P0INTEC_MASK << (p))
01110 #define Is_host_pipe_interrupt_enabled(p) (Tst_bits(AVR32_USBB_uhinte, AVR32_USBB_UHINTE_P0INTE_MASK << (p)))
01112 #define Host_get_interrupt_pipe_number() (ctz(((AVR32_USBB_uhint >> AVR32_USBB_UHINT_P0INT_OFFSET) &\
01113 (AVR32_USBB_uhinte >> AVR32_USBB_UHINTE_P0INTE_OFFSET)) |\
01114 (1 << MAX_PEP_NB)))
01115
01117 #define Host_configure_pipe_int_req_freq(p, freq) (Wr_bitfield(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_INTFRQ_MASK, freq))
01119 #define Host_get_pipe_int_req_freq(p) (Rd_bitfield(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_INTFRQ_MASK))
01121 #define Host_configure_pipe_endpoint_number(p, ep_num) (Wr_bitfield(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_PEPNUM_MASK, ep_num))
01123 #define Host_get_pipe_endpoint_number(p) (Rd_bitfield(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_PEPNUM_MASK))
01125 #define Host_configure_pipe_type(p, type) (Wr_bitfield(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_PTYPE_MASK, type))
01127 #define Host_get_pipe_type(p) (Rd_bitfield(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_PTYPE_MASK))
01129 #define Host_enable_pipe_bank_autoswitch(p) (Set_bits(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_AUTOSW_MASK))
01131 #define Host_disable_pipe_bank_autoswitch(p) (Clr_bits(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_AUTOSW_MASK))
01132 #define Is_host_pipe_bank_autoswitch_enabled(p) (Tst_bits(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_AUTOSW_MASK))
01134 #define Host_configure_pipe_token(p, token) (Wr_bitfield(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_PTOKEN_MASK, token))
01136 #define Host_get_pipe_token(p) (Rd_bitfield(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_PTOKEN_MASK))
01140 #define Host_format_pipe_size(size) (32 - clz(((U32)min(max(size, 8), 1024) << 1) - 1) - 1 - 3)
01142 #define Host_configure_pipe_size(p, size) (Wr_bitfield(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_PSIZE_MASK, Host_format_pipe_size(size)))
01144 #define Host_get_pipe_size(p) (8 << Rd_bitfield(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_PSIZE_MASK))
01146 #define Host_configure_pipe_bank(p, bank) (Wr_bitfield(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_PBK_MASK, bank))
01148 #define Host_get_pipe_bank(p) (Rd_bitfield(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_PBK_MASK))
01150 #define Host_allocate_memory(p) (Set_bits(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_ALLOC_MASK))
01152 #define Host_unallocate_memory(p) (Clr_bits(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_ALLOC_MASK))
01153 #define Is_host_memory_allocated(p) (Tst_bits(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_ALLOC_MASK))
01155 #define Host_enable_ping(p) (Set_bits(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_PINGEN_MASK))
01156
01158 #define Host_configure_pipe(p, freq, ep_num, type, token, size, bank) \
01159 (\
01160 Host_enable_pipe(p),\
01161 Wr_bits(AVR32_USBB_upcfgx(p), AVR32_USBB_UPCFGX_INTFRQ_MASK |\
01162 AVR32_USBB_UPCFGX_PEPNUM_MASK |\
01163 AVR32_USBB_UPCFGX_PTYPE_MASK |\
01164 AVR32_USBB_UPCFGX_PTOKEN_MASK |\
01165 AVR32_USBB_UPCFGX_PSIZE_MASK |\
01166 AVR32_USBB_UPCFGX_PBK_MASK, \
01167 (((U32)(freq ) << AVR32_USBB_UPCFGX_INTFRQ_OFFSET) & AVR32_USBB_UPCFGX_INTFRQ_MASK) |\
01168 (((U32)(ep_num) << AVR32_USBB_UPCFGX_PEPNUM_OFFSET) & AVR32_USBB_UPCFGX_PEPNUM_MASK) |\
01169 (((U32)(type ) << AVR32_USBB_UPCFGX_PTYPE_OFFSET ) & AVR32_USBB_UPCFGX_PTYPE_MASK ) |\
01170 (((U32)(token ) << AVR32_USBB_UPCFGX_PTOKEN_OFFSET) & AVR32_USBB_UPCFGX_PTOKEN_MASK) |\
01171 ( (U32)Host_format_pipe_size(size) << AVR32_USBB_UPCFGX_PSIZE_OFFSET ) |\
01172 (((U32)(bank ) << AVR32_USBB_UPCFGX_PBK_OFFSET ) & AVR32_USBB_UPCFGX_PBK_MASK )),\
01173 Host_allocate_memory(p),\
01174 \
01175 Is_host_pipe_configured(p)\
01176 )
01177
01179 #define Host_reset_pipe(p) (Set_bits(AVR32_USBB_uprst, AVR32_USBB_UPRST_PRST0_MASK << (p)),\
01180 Clr_bits(AVR32_USBB_uprst, AVR32_USBB_UPRST_PRST0_MASK << (p)))
01182 #define Is_host_resetting_pipe(p) (Tst_bits(AVR32_USBB_uprst, AVR32_USBB_UPRST_PRST0_MASK << (p)))
01183
01185 #define Host_freeze_pipe(p) (AVR32_USBB_upconxset(p) = AVR32_USBB_UPCONXSET_PFREEZES_MASK)
01187 #define Host_unfreeze_pipe(p) (AVR32_USBB_upconxclr(p) = AVR32_USBB_UPCONXCLR_PFREEZEC_MASK)
01189 #define Is_host_pipe_frozen(p) (Tst_bits(AVR32_USBB_upconx(p), AVR32_USBB_UPCONX_PFREEZE_MASK))
01190
01192 #define Host_reset_data_toggle(p) (AVR32_USBB_upconxset(p) = AVR32_USBB_UPCONXSET_RSTDTS_MASK)
01194 #define Is_host_data_toggle_reset(p) (Tst_bits(AVR32_USBB_upconx(p), AVR32_USBB_UPCONX_RSTDT_MASK))
01195
01197 #define Host_ack_overflow_interrupt(p) (AVR32_USBB_upstaxclr(p) = AVR32_USBB_UPSTAXCLR_OVERFIC_MASK)
01199 #define Host_raise_overflow_interrupt(p) (AVR32_USBB_upstaxset(p) = AVR32_USBB_UPSTAXSET_OVERFIS_MASK)
01201 #define Host_ack_underflow_interrupt(p) (AVR32_USBB_upstaxclr(p) = AVR32_USBB_UPSTAXCLR_TXSTPIC_MASK)
01203 #define Host_raise_underflow_interrupt(p) (AVR32_USBB_upstaxset(p) = AVR32_USBB_UPSTAXSET_TXSTPIS_MASK)
01205 #define Is_host_overflow(p) (Tst_bits(AVR32_USBB_upstax(p), AVR32_USBB_UPSTAX_OVERFI_MASK))
01207 #define Is_host_underflow(p) (Tst_bits(AVR32_USBB_upstax(p), AVR32_USBB_UPSTAX_TXSTPI_MASK))
01208
01210 #define Host_data_toggle(p) (Rd_bitfield(AVR32_USBB_upstax(p), AVR32_USBB_UPSTAX_DTSEQ_MASK))
01212 #define Host_nb_busy_bank(p) (Rd_bitfield(AVR32_USBB_upstax(p), AVR32_USBB_UPSTAX_NBUSYBK_MASK))
01214 #define Host_current_bank(p) (Rd_bitfield(AVR32_USBB_upstax(p), AVR32_USBB_UPSTAX_CURRBK_MASK))
01216 #define Is_host_pipe_configured(p) (Tst_bits(AVR32_USBB_upstax(p), AVR32_USBB_UPSTAX_CFGOK_MASK))
01218 #define Host_byte_count(p) (Rd_bitfield(AVR32_USBB_upstax(p), AVR32_USBB_UPSTAX_PBYCT_MASK))
01219
01221 #define Is_host_stall(p) (Tst_bits(AVR32_USBB_upstax(p), AVR32_USBB_UPSTAX_RXSTALLDI_MASK))
01223 #define Is_host_crc_error(p) (Tst_bits(AVR32_USBB_upstax(p), AVR32_USBB_UPSTAX_RXSTALLDI_MASK))
01225 #define Is_host_pipe_error(p) (Tst_bits(AVR32_USBB_upstax(p), AVR32_USBB_UPSTAX_PERRI_MASK))
01227 #define Is_host_short_packet(p) (Tst_bits(AVR32_USBB_upstax(p), AVR32_USBB_UPSTAX_SHORTPACKETI_MASK))
01228
01230 #define Host_ack_fifocon(p) (AVR32_USBB_upconxclr(p) = AVR32_USBB_UPCONXCLR_FIFOCONC_MASK)
01231
01233 #define Host_ack_setup_ready() (AVR32_USBB_upstaxclr(P_CONTROL) = AVR32_USBB_UPSTAXCLR_TXSTPIC_MASK)
01235 #define Host_raise_setup_ready() (AVR32_USBB_upstaxset(P_CONTROL) = AVR32_USBB_UPSTAXSET_TXSTPIS_MASK)
01237 #define Host_send_setup() (Host_ack_fifocon(P_CONTROL))
01239 #define Host_ack_setup_ready_send() (Host_ack_setup_ready(), Host_send_setup())
01241 #define Host_ack_out_ready(p) (AVR32_USBB_upstaxclr(p) = AVR32_USBB_UPSTAXCLR_TXOUTIC_MASK)
01243 #define Host_raise_out_ready(p) (AVR32_USBB_upstaxset(p) = AVR32_USBB_UPSTAXSET_TXOUTIS_MASK)
01245 #define Host_send_out(p) (Host_ack_fifocon(p))
01247 #define Host_ack_out_ready_send(p) (Host_ack_out_ready(p), Host_send_out(p))
01249 #define Host_ack_control_out_ready() (AVR32_USBB_upstaxclr(P_CONTROL) = AVR32_USBB_UPSTAXCLR_TXOUTIC_MASK)
01251 #define Host_raise_control_out_ready() (AVR32_USBB_upstaxset(P_CONTROL) = AVR32_USBB_UPSTAXSET_TXOUTIS_MASK)
01253 #define Host_send_control_out() (Host_ack_fifocon(P_CONTROL))
01255 #define Host_ack_control_out_ready_send() (Host_ack_control_out_ready(), Host_send_control_out())
01256
01258 #define Host_ack_in_received(p) (AVR32_USBB_upstaxclr(p) = AVR32_USBB_UPSTAXCLR_RXINIC_MASK)
01260 #define Host_raise_in_received(p) (AVR32_USBB_upstaxset(p) = AVR32_USBB_UPSTAXSET_RXINIS_MASK)
01262 #define Host_free_in(p) (Host_ack_fifocon(p))
01264 #define Host_ack_in_received_free(p) (Host_ack_in_received(p), Host_free_in(p))
01266 #define Host_ack_control_in_received() (AVR32_USBB_upstaxclr(P_CONTROL) = AVR32_USBB_UPSTAXCLR_RXINIC_MASK)
01268 #define Host_raise_control_in_received() (AVR32_USBB_upstaxset(P_CONTROL) = AVR32_USBB_UPSTAXSET_RXINIS_MASK)
01270 #define Host_free_control_in() (Host_ack_fifocon(P_CONTROL))
01272 #define Host_ack_control_in_received_free() (Host_ack_control_in_received(), Host_free_control_in())
01273
01275 #define Is_host_fifocon(p) (Tst_bits(AVR32_USBB_upconx(p), AVR32_USBB_UPCONX_FIFOCON_MASK))
01276
01278 #define Is_host_setup_ready() (Tst_bits(AVR32_USBB_upstax(P_CONTROL), AVR32_USBB_UPSTAX_TXSTPI_MASK))
01280 #define Is_host_setup_sent() (Is_host_fifocon(P_CONTROL))
01282 #define Is_host_out_ready(p) (Tst_bits(AVR32_USBB_upstax(p), AVR32_USBB_UPSTAX_TXOUTI_MASK))
01284 #define Is_host_out_sent(p) (Is_host_fifocon(p))
01286 #define Is_host_control_out_ready() (Tst_bits(AVR32_USBB_upstax(P_CONTROL), AVR32_USBB_UPSTAX_TXOUTI_MASK))
01288 #define Is_host_control_out_sent() (Is_host_fifocon(P_CONTROL))
01289
01291 #define Is_host_in_received(p) (Tst_bits(AVR32_USBB_upstax(p), AVR32_USBB_UPSTAX_RXINI_MASK))
01293 #define Is_host_in_filled(p) (Is_host_fifocon(p))
01295 #define Is_host_control_in_received() (Tst_bits(AVR32_USBB_upstax(P_CONTROL), AVR32_USBB_UPSTAX_RXINI_MASK))
01297 #define Is_host_control_in_filled() (Is_host_fifocon(P_CONTROL))
01298
01300 #define Host_ack_stall(p) (AVR32_USBB_upstaxclr(p) = AVR32_USBB_UPSTAXCLR_RXSTALLDIC_MASK)
01302 #define Host_raise_stall(p) (AVR32_USBB_upstaxset(p) = AVR32_USBB_UPSTAXSET_RXSTALLDIS_MASK)
01304 #define Host_ack_crc_error(p) (AVR32_USBB_upstaxclr(p) = AVR32_USBB_UPSTAXCLR_RXSTALLDIC_MASK)
01306 #define Host_raise_crc_error(p) (AVR32_USBB_upstaxset(p) = AVR32_USBB_UPSTAXSET_RXSTALLDIS_MASK)
01308 #define Host_ack_pipe_error(p) (AVR32_USBB_upstaxset(p) = (Is_host_pipe_error(p)) ? AVR32_USBB_UPSTAXSET_PERRIS_MASK : 0)
01310 #define Host_raise_pipe_error(p) (AVR32_USBB_upstaxset(p) = (Is_host_pipe_error(p)) ? 0 : AVR32_USBB_UPSTAXSET_PERRIS_MASK)
01312 #define Host_ack_short_packet(p) (AVR32_USBB_upstaxclr(p) = AVR32_USBB_UPSTAXCLR_SHORTPACKETIC_MASK)
01314 #define Host_raise_short_packet(p) (AVR32_USBB_upstaxset(p) = AVR32_USBB_UPSTAXSET_SHORTPACKETIS_MASK)
01315
01317 #define Is_host_nak_received(p) (Tst_bits(AVR32_USBB_upstax(p), AVR32_USBB_UPSTAX_NAKEDI_MASK))
01319 #define Host_ack_nak_received(p) (AVR32_USBB_upstaxclr(p) = AVR32_USBB_UPSTAXCLR_NAKEDIC_MASK)
01321 #define Host_raise_nak_received(p) (AVR32_USBB_upstaxset(p) = AVR32_USBB_UPSTAXSET_NAKEDIS_MASK)
01322
01324 #define Is_host_read_enabled(p) (Tst_bits(AVR32_USBB_upstax(p), AVR32_USBB_UPSTAX_RWALL_MASK))
01326 #define Is_host_write_enabled(p) (Tst_bits(AVR32_USBB_upstax(p), AVR32_USBB_UPSTAX_RWALL_MASK))
01327
01329 #define Host_enable_continuous_in_mode(p) (Set_bits(AVR32_USBB_upinrqx(p), AVR32_USBB_UPINRQX_INMODE_MASK))
01331 #define Host_disable_continuous_in_mode(p) (Clr_bits(AVR32_USBB_upinrqx(p), AVR32_USBB_UPINRQX_INMODE_MASK))
01333 #define Is_host_continuous_in_mode_enabled(p) (Tst_bits(AVR32_USBB_upinrqx(p), AVR32_USBB_UPINRQX_INMODE_MASK))
01334
01336 #define Host_in_request_number(p, in_num) (Wr_bitfield(AVR32_USBB_upinrqx(p), AVR32_USBB_UPINRQX_INRQ_MASK, (in_num) - 1))
01338 #define Host_get_in_request_number(p) (Rd_bitfield(AVR32_USBB_upinrqx(p), AVR32_USBB_UPINRQX_INRQ_MASK) + 1)
01339
01341 #define Host_ack_all_errors(p) (Clr_bits(AVR32_USBB_uperrx(p), AVR32_USBB_UPERRX_DATATGL_MASK |\
01342 AVR32_USBB_UPERRX_DATAPID_MASK |\
01343 AVR32_USBB_UPERRX_PID_MASK |\
01344 AVR32_USBB_UPERRX_TIMEOUT_MASK |\
01345 AVR32_USBB_UPERRX_CRC16_MASK |\
01346 AVR32_USBB_UPERRX_COUNTER_MASK))
01347
01349 #define Host_error_status(p) (Rd_bits(AVR32_USBB_uperrx(p), AVR32_USBB_UPERRX_DATATGL_MASK |\
01350 AVR32_USBB_UPERRX_DATAPID_MASK |\
01351 AVR32_USBB_UPERRX_PID_MASK |\
01352 AVR32_USBB_UPERRX_TIMEOUT_MASK |\
01353 AVR32_USBB_UPERRX_CRC16_MASK))
01354
01356 #define Host_ack_bad_data_toggle(p) (Clr_bits(AVR32_USBB_uperrx(p), AVR32_USBB_UPERRX_DATATGL_MASK))
01357 #define Is_host_bad_data_toggle(p) (Tst_bits(AVR32_USBB_uperrx(p), AVR32_USBB_UPERRX_DATATGL_MASK))
01359 #define Host_ack_data_pid_error(p) (Clr_bits(AVR32_USBB_uperrx(p), AVR32_USBB_UPERRX_DATAPID_MASK))
01360 #define Is_host_data_pid_error(p) (Tst_bits(AVR32_USBB_uperrx(p), AVR32_USBB_UPERRX_DATAPID_MASK))
01362 #define Host_ack_pid_error(p) (Clr_bits(AVR32_USBB_uperrx(p), AVR32_USBB_UPERRX_PID_MASK))
01363 #define Is_host_pid_error(p) (Tst_bits(AVR32_USBB_uperrx(p), AVR32_USBB_UPERRX_PID_MASK))
01365 #define Host_ack_timeout_error(p) (Clr_bits(AVR32_USBB_uperrx(p), AVR32_USBB_UPERRX_TIMEOUT_MASK))
01366 #define Is_host_timeout_error(p) (Tst_bits(AVR32_USBB_uperrx(p), AVR32_USBB_UPERRX_TIMEOUT_MASK))
01368 #define Host_ack_crc16_error(p) (Clr_bits(AVR32_USBB_uperrx(p), AVR32_USBB_UPERRX_CRC16_MASK))
01369 #define Is_host_crc16_error(p) (Tst_bits(AVR32_USBB_uperrx(p), AVR32_USBB_UPERRX_CRC16_MASK))
01371 #define Host_clear_error_counter(p) (Clr_bits(AVR32_USBB_uperrx(p), AVR32_USBB_UPERRX_COUNTER_MASK))
01372 #define Host_get_error_counter(p) (Rd_bitfield(AVR32_USBB_uperrx(p), AVR32_USBB_UPERRX_COUNTER_MASK))
01373
01375 #define Host_enable_overflow_interrupt(p) (AVR32_USBB_upconxset(p) = AVR32_USBB_UPCONXSET_OVERFIES_MASK)
01377 #define Host_disable_overflow_interrupt(p) (AVR32_USBB_upconxclr(p) = AVR32_USBB_UPCONXCLR_OVERFIEC_MASK)
01379 #define Is_host_overflow_interrupt_enabled(p) (Tst_bits(AVR32_USBB_upconx(p), AVR32_USBB_UPCONX_OVERFIE_MASK))
01380
01382 #define Host_enable_underflow_interrupt(p) (AVR32_USBB_upconxset(p) = AVR32_USBB_UPCONXSET_TXSTPES_MASK)
01384 #define Host_disable_underflow_interrupt(p) (AVR32_USBB_upconxclr(p) = AVR32_USBB_UPCONXCLR_TXSTPEC_MASK)
01386 #define Is_host_underflow_interrupt_enabled(p) (Tst_bits(AVR32_USBB_upconx(p), AVR32_USBB_UPCONX_TXSTPE_MASK))
01387
01389 #define Host_force_bank_interrupt(p) (AVR32_USBB_upstaxset(p) = AVR32_USBB_UPSTAXSET_NBUSYBKS_MASK)
01391 #define Host_unforce_bank_interrupt(p) (AVR32_USBB_upstaxset(p) = AVR32_USBB_UPSTAXSET_NBUSYBKS_MASK)
01393 #define Host_enable_bank_interrupt(p) (AVR32_USBB_upconxset(p) = AVR32_USBB_UPCONXSET_NBUSYBKES_MASK)
01395 #define Host_disable_bank_interrupt(p) (AVR32_USBB_upconxclr(p) = AVR32_USBB_UPCONXCLR_NBUSYBKEC_MASK)
01397 #define Is_host_bank_interrupt_enabled(p) (Tst_bits(AVR32_USBB_upconx(p), AVR32_USBB_UPCONX_NBUSYBKE_MASK))
01398
01400 #define Host_enable_short_packet_interrupt(p) (AVR32_USBB_upconxset(p) = AVR32_USBB_UPCONXSET_SHORTPACKETIES_MASK)
01402 #define Host_disable_short_packet_interrupt(p) (AVR32_USBB_upconxclr(p) = AVR32_USBB_UPCONXCLR_SHORTPACKETIEC_MASK)
01404 #define Is_host_short_packet_interrupt_enabled(p) (Tst_bits(AVR32_USBB_upconx(p), AVR32_USBB_UPCONX_SHORTPACKETIE_MASK))
01405
01407 #define Host_enable_stall_interrupt(p) (AVR32_USBB_upconxset(p) = AVR32_USBB_UPCONXSET_RXSTALLDES_MASK)
01409 #define Host_disable_stall_interrupt(p) (AVR32_USBB_upconxclr(p) = AVR32_USBB_UPCONXCLR_RXSTALLDEC_MASK)
01411 #define Is_host_stall_interrupt_enabled(p) (Tst_bits(AVR32_USBB_upconx(p), AVR32_USBB_UPCONX_RXSTALLDE_MASK))
01412
01414 #define Host_enable_crc_error_interrupt(p) (AVR32_USBB_upconxset(p) = AVR32_USBB_UPCONXSET_RXSTALLDES_MASK)
01416 #define Host_disable_crc_error_interrupt(p) (AVR32_USBB_upconxclr(p) = AVR32_USBB_UPCONXCLR_RXSTALLDEC_MASK)
01418 #define Is_host_crc_error_interrupt_enabled(p) (Tst_bits(AVR32_USBB_upconx(p), AVR32_USBB_UPCONX_RXSTALLDE_MASK))
01419
01421 #define Host_enable_nak_received_interrupt(p) (AVR32_USBB_upconxset(p) = AVR32_USBB_UPCONXSET_NAKEDES_MASK)
01423 #define Host_disable_nak_received_interrupt(p) (AVR32_USBB_upconxclr(p) = AVR32_USBB_UPCONXCLR_NAKEDEC_MASK)
01425 #define Is_host_nak_received_interrupt_enabled(p) (Tst_bits(AVR32_USBB_upconx(p), AVR32_USBB_UPCONX_NAKEDE_MASK))
01426
01428 #define Host_enable_pipe_error_interrupt(p) (AVR32_USBB_upconxset(p) = AVR32_USBB_UPCONXSET_PERRES_MASK)
01430 #define Host_disable_pipe_error_interrupt(p) (AVR32_USBB_upconxclr(p) = AVR32_USBB_UPCONXCLR_PERREC_MASK)
01432 #define Is_host_pipe_error_interrupt_enabled(p) (Tst_bits(AVR32_USBB_upconx(p), AVR32_USBB_UPCONX_PERRE_MASK))
01433
01435 #define Host_enable_setup_ready_interrupt() (AVR32_USBB_upconxset(P_CONTROL) = AVR32_USBB_UPCONXSET_TXSTPES_MASK)
01437 #define Host_disable_setup_ready_interrupt() (AVR32_USBB_upconxclr(P_CONTROL) = AVR32_USBB_UPCONXCLR_TXSTPEC_MASK)
01439 #define Is_host_setup_ready_interrupt_enabled() (Tst_bits(AVR32_USBB_upconx(P_CONTROL), AVR32_USBB_UPCONX_TXSTPE_MASK))
01440
01442 #define Host_enable_out_ready_interrupt(p) (AVR32_USBB_upconxset(p) = AVR32_USBB_UPCONXSET_TXOUTES_MASK)
01444 #define Host_disable_out_ready_interrupt(p) (AVR32_USBB_upconxclr(p) = AVR32_USBB_UPCONXCLR_TXOUTEC_MASK)
01446 #define Is_host_out_ready_interrupt_enabled(p) (Tst_bits(AVR32_USBB_upconx(p), AVR32_USBB_UPCONX_TXOUTE_MASK))
01447
01449 #define Host_enable_control_out_ready_interrupt() (AVR32_USBB_upconxset(P_CONTROL) = AVR32_USBB_UPCONXSET_TXOUTES_MASK)
01451 #define Host_disable_control_out_ready_interrupt() (AVR32_USBB_upconxclr(P_CONTROL) = AVR32_USBB_UPCONXCLR_TXOUTEC_MASK)
01453 #define Is_host_control_out_ready_interrupt_enabled() (Tst_bits(AVR32_USBB_upconx(P_CONTROL), AVR32_USBB_UPCONX_TXOUTE_MASK))
01454
01456 #define Host_enable_in_received_interrupt(p) (AVR32_USBB_upconxset(p) = AVR32_USBB_UPCONXSET_RXINES_MASK)
01458 #define Host_disable_in_received_interrupt(p) (AVR32_USBB_upconxclr(p) = AVR32_USBB_UPCONXCLR_RXINEC_MASK)
01460 #define Is_host_in_received_interrupt_enabled(p) (Tst_bits(AVR32_USBB_upconx(p), AVR32_USBB_UPCONX_RXINE_MASK))
01461
01463 #define Host_enable_control_in_received_interrupt() (AVR32_USBB_upconxset(P_CONTROL) = AVR32_USBB_UPCONXSET_RXINES_MASK)
01465 #define Host_disable_control_in_received_interrupt() (AVR32_USBB_upconxclr(P_CONTROL) = AVR32_USBB_UPCONXCLR_RXINEC_MASK)
01467 #define Is_host_control_in_received_interrupt_enabled() (Tst_bits(AVR32_USBB_upconx(P_CONTROL), AVR32_USBB_UPCONX_RXINE_MASK))
01468
01478 #define Host_get_pipe_fifo_access(p, scale) \
01479 (AVR32_USBB_FIFOX_DATA(p, scale))
01480
01485 #define Host_reset_pipe_fifo_access(p) \
01486 (pep_fifo[(p)].u64ptr = Host_get_pipe_fifo_access(p, 64))
01487
01500 #define Host_read_pipe_data(p, scale) \
01501 (*pep_fifo[(p)].TPASTE3(u, scale, ptr)\
01502 TPASTE3(Pep_fifo_access_, scale, _post_inc)())
01503
01517 #define Host_write_pipe_data(p, scale, data) \
01518 (*pep_fifo[(p)].TPASTE3(u, scale, ptr)\
01519 TPASTE3(Pep_fifo_access_, scale, _post_inc)() = (data))
01520
01532 #define Host_read_pipe_indexed_data(p, scale, index) \
01533 (AVR32_USBB_FIFOX_DATA(p, scale)[(index)])
01534
01547 #define Host_write_pipe_indexed_data(p, scale, index, data) \
01548 (AVR32_USBB_FIFOX_DATA(p, scale)[(index)] = (data))
01550
01551
01556 #define Host_enable_pipe_int_dis_hdma_req(p) (AVR32_USBB_upconxset(p) = AVR32_USBB_UPCONXSET_PDISHDMAS_MASK)
01558 #define Host_disable_pipe_int_dis_hdma_req(p) (AVR32_USBB_upconxclr(p) = AVR32_USBB_UPCONXCLR_PDISHDMAC_MASK)
01560 #define Is_host_pipe_int_dis_hdma_req_enabled(p) (Tst_bits(AVR32_USBB_upconx(p), AVR32_USBB_UPCONX_PDISHDMA_MASK))
01561
01563 #define Host_raise_pipe_dma_interrupt(pdma) (AVR32_USBB_uhintset = AVR32_USBB_UHINTSET_DMA1INTS_MASK << ((pdma) - 1))
01565 #define Is_host_pipe_dma_interrupt(pdma) (Tst_bits(AVR32_USBB_uhint, AVR32_USBB_UHINT_DMA1INT_MASK << ((pdma) - 1)))
01567 #define Host_enable_pipe_dma_interrupt(pdma) (AVR32_USBB_uhinteset = AVR32_USBB_UHINTESET_DMA1INTES_MASK << ((pdma) - 1))
01569 #define Host_disable_pipe_dma_interrupt(pdma) (AVR32_USBB_uhinteclr = AVR32_USBB_UHINTECLR_DMA1INTEC_MASK << ((pdma) - 1))
01571 #define Is_host_pipe_dma_interrupt_enabled(pdma) (Tst_bits(AVR32_USBB_uhinte, AVR32_USBB_UHINTE_DMA1INTE_MASK << ((pdma) - 1)))
01574
01576
01577
01578
01579
01580 extern UnionVPtr pep_fifo[MAX_PEP_NB];
01581
01582 #if USB_DEVICE_FEATURE == ENABLED
01583 extern Status_bool_t usb_init_device ( void );
01584 extern U32 usb_set_ep_txpacket (U8, U8 , U32 );
01585 extern U32 usb_write_ep_txpacket (U8, const void *, U32, const void **);
01586 extern U32 usb_read_ep_rxpacket (U8, void *, U32, void **);
01587 #endif
01588
01589 #if USB_HOST_FEATURE == ENABLED
01590 extern void host_disable_all_pipes ( void );
01591 extern U32 host_set_p_txpacket (U8, U8 , U32 );
01592 extern U32 host_write_p_txpacket (U8, const void *, U32, const void **);
01593 extern U32 host_read_p_rxpacket (U8, void *, U32, void **);
01594 #endif
01595
01596
01597 #endif // _USB_DRV_H_