reform

MNT Reform: Open Source Portable Computer
Log (Feed) | Files | Refs (Tags) | README

tusb_config.h (3545B)


      1 /*
      2  * The MIT License (MIT)
      3  *
      4  * Copyright (c) 2019 Ha Thach (tinyusb.org)
      5  *
      6  * Permission is hereby granted, free of charge, to any person obtaining a copy
      7  * of this software and associated documentation files (the "Software"), to deal
      8  * in the Software without restriction, including without limitation the rights
      9  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
     10  * copies of the Software, and to permit persons to whom the Software is
     11  * furnished to do so, subject to the following conditions:
     12  *
     13  * The above copyright notice and this permission notice shall be included in
     14  * all copies or substantial portions of the Software.
     15  *
     16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     18  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
     19  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     20  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     21  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
     22  * THE SOFTWARE.
     23  *
     24  */
     25 
     26 #ifndef _TUSB_CONFIG_H_
     27 #define _TUSB_CONFIG_H_
     28 
     29 #ifdef __cplusplus
     30  extern "C" {
     31 #endif
     32 
     33 //--------------------------------------------------------------------
     34 // COMMON CONFIGURATION
     35 //--------------------------------------------------------------------
     36 
     37 // defined by board.mk
     38 #ifndef CFG_TUSB_MCU
     39   #error CFG_TUSB_MCU must be defined
     40 #endif
     41 
     42 // RHPort number used for device can be defined by board.mk, default to port 0
     43 #ifndef BOARD_DEVICE_RHPORT_NUM
     44   #define BOARD_DEVICE_RHPORT_NUM     0
     45 #endif
     46 
     47 // RHPort max operational speed can defined by board.mk
     48 // Default to max (auto) speed for MCU with internal HighSpeed PHY
     49 #ifndef BOARD_DEVICE_RHPORT_SPEED
     50   #define BOARD_DEVICE_RHPORT_SPEED   OPT_MODE_DEFAULT_SPEED
     51 #endif
     52 
     53 // Device mode with rhport and speed defined by board.mk
     54 #if   BOARD_DEVICE_RHPORT_NUM == 0
     55   #define CFG_TUSB_RHPORT0_MODE     (OPT_MODE_DEVICE | BOARD_DEVICE_RHPORT_SPEED)
     56 #elif BOARD_DEVICE_RHPORT_NUM == 1
     57   #define CFG_TUSB_RHPORT1_MODE     (OPT_MODE_DEVICE | BOARD_DEVICE_RHPORT_SPEED)
     58 #else
     59   #error "Incorrect RHPort configuration"
     60 #endif
     61 
     62 #ifndef CFG_TUSB_OS
     63 #define CFG_TUSB_OS               OPT_OS_NONE
     64 #endif
     65 
     66 // CFG_TUSB_DEBUG is defined by compiler in DEBUG build
     67 // #define CFG_TUSB_DEBUG           0
     68 
     69 /* USB DMA on some MCUs can only access a specific SRAM region with restriction on alignment.
     70  * Tinyusb use follows macros to declare transferring memory so that they can be put
     71  * into those specific section.
     72  * e.g
     73  * - CFG_TUSB_MEM SECTION : __attribute__ (( section(".usb_ram") ))
     74  * - CFG_TUSB_MEM_ALIGN   : __attribute__ ((aligned(4)))
     75  */
     76 #ifndef CFG_TUSB_MEM_SECTION
     77 #define CFG_TUSB_MEM_SECTION
     78 #endif
     79 
     80 #ifndef CFG_TUSB_MEM_ALIGN
     81 #define CFG_TUSB_MEM_ALIGN          __attribute__ ((aligned(4)))
     82 #endif
     83 
     84 //--------------------------------------------------------------------
     85 // DEVICE CONFIGURATION
     86 //--------------------------------------------------------------------
     87 
     88 #ifndef CFG_TUD_ENDPOINT0_SIZE
     89 #define CFG_TUD_ENDPOINT0_SIZE    64
     90 #endif
     91 
     92 //------------- CLASS -------------//
     93 #define CFG_TUD_HID               2
     94 #define CFG_TUD_CDC               0
     95 #define CFG_TUD_MSC               0
     96 #define CFG_TUD_MIDI              0
     97 #define CFG_TUD_VENDOR            0
     98 
     99 // HID buffer size Should be sufficient to hold ID (if any) + Data
    100 #define CFG_TUD_HID_EP_BUFSIZE    8
    101 
    102 #ifdef __cplusplus
    103  }
    104 #endif
    105 
    106 #endif /* _TUSB_CONFIG_H_ */