2013-07-01 05:43:55 +02:00
/**************************************************************************/
/*!
@ file tusb_option . h
@ author hathach ( tinyusb . org )
@ section LICENSE
Software License Agreement ( BSD License )
Copyright ( c ) 2013 , hathach ( tinyusb . org )
All rights reserved .
Redistribution and use in source and binary forms , with or without
modification , are permitted provided that the following conditions are met :
1. Redistributions of source code must retain the above copyright
notice , this list of conditions and the following disclaimer .
2. Redistributions in binary form must reproduce the above copyright
notice , this list of conditions and the following disclaimer in the
documentation and / or other materials provided with the distribution .
3. Neither the name of the copyright holders nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission .
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ' ' AS IS ' ' AND ANY
EXPRESS OR IMPLIED WARRANTIES , INCLUDING , BUT NOT LIMITED TO , THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED . IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
DIRECT , INDIRECT , INCIDENTAL , SPECIAL , EXEMPLARY , OR CONSEQUENTIAL DAMAGES
INCLUDING , BUT NOT LIMITED TO , PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES ;
LOSS OF USE , DATA , OR PROFITS ; OR BUSINESS INTERRUPTION HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY , WHETHER IN CONTRACT , STRICT LIABILITY , OR TORT
INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE .
This file is part of the tinyusb stack .
*/
/**************************************************************************/
2012-11-26 11:19:26 +01:00
2012-11-29 04:41:33 +01:00
/** \file
* \ brief Configure File
*
* \ note TBD
*/
2012-11-27 09:35:57 +01:00
2012-12-03 10:51:14 +01:00
/**
2013-01-11 10:55:47 +01:00
* \ defgroup Group_TinyUSB_Configure Configuration tusb_option . h
2012-11-29 04:41:33 +01:00
* @ {
*/
2012-11-26 11:19:26 +01:00
2013-01-11 10:55:47 +01:00
# ifndef _TUSB_TUSB_OPTION_H_
# define _TUSB_TUSB_OPTION_H_
2012-12-18 09:08:30 +01:00
2012-12-02 05:07:59 +01:00
# ifdef __cplusplus
extern " C " {
# endif
2013-01-31 05:47:07 +01:00
# define TUSB_VERSION_YEAR 00
# define TUSB_VERSION_MONTH 00
# define TUSB_VERSION_WEEK 0
# define TUSB_VERSION_NAME "alpha"
# define TUSB_VERSION XSTRING_(TUSB_VERSION_YEAR) "." XSTRING_(TUSB_VERSION_MONTH)
2013-04-07 22:45:31 +02:00
# define MCU_LPC13UXX 1
# define MCU_LPC11UXX 2
# define MCU_LPC43XX 3
# define MCU_LPC18XX 4
# define MCU_LPC175X_6X 5
# define MCU_LPC177X_8X 6
2012-12-18 09:08:30 +01:00
/// define this symbol will make tinyusb look for external configure file
2013-03-04 10:21:41 +01:00
# include "mcu_capacity.h"
2013-06-29 16:00:33 +02:00
# ifdef TUSB_CFG_CONFIG_FILE
# include TUSB_CFG_CONFIG_FILE
# else
# include "tusb_config.h"
# endif
2012-11-26 11:19:26 +01:00
2013-03-04 11:07:14 +01:00
//--------------------------------------------------------------------+
// CONTROLLER
//--------------------------------------------------------------------+
# define TUSB_MODE_HOST 0x02
# define TUSB_MODE_DEVICE 0x01
# define TUSB_MODE_NONE 0x00
# define CONTROLLER_HOST_NUMBER (\
( ( TUSB_CFG_CONTROLLER0_MODE & TUSB_MODE_HOST ) ? 1 : 0 ) + \
( ( TUSB_CFG_CONTROLLER1_MODE & TUSB_MODE_HOST ) ? 1 : 0 ) )
# define CONTROLLER_DEVICE_NUMBER (\
( ( TUSB_CFG_CONTROLLER0_MODE & TUSB_MODE_DEVICE ) ? 1 : 0 ) + \
( ( TUSB_CFG_CONTROLLER1_MODE & TUSB_MODE_DEVICE ) ? 1 : 0 ) )
# define MODE_HOST_SUPPORTED (CONTROLLER_HOST_NUMBER > 0)
# define MODE_DEVICE_SUPPORTED (CONTROLLER_DEVICE_NUMBER > 0)
# if !MODE_HOST_SUPPORTED && !MODE_DEVICE_SUPPORTED
# error please configure at least 1 TUSB_CFG_CONTROLLERn_MODE to TUSB_MODE_HOST and / or TUSB_MODE_DEVICE
# endif
2013-02-01 04:33:43 +01:00
//--------------------------------------------------------------------+
// COMMON OPTIONS
//--------------------------------------------------------------------+
2013-03-04 10:21:41 +01:00
2013-07-03 08:14:14 +02:00
// level 3: ATTR_ALWAYS_INLINE is null, ASSERT has text, Error has its String
// level 2: ATTR_ALWAYS_INLINE is attribute, ASSERT has no text, Error has no strings
2013-01-18 05:49:51 +01:00
/// 0: no debug information 3: most debug information provided
2012-12-20 10:56:19 +01:00
# ifndef TUSB_CFG_DEBUG
2013-01-18 05:49:51 +01:00
# define TUSB_CFG_DEBUG 3
# warning TUSB_CFG_DEBUG is not defined, default value is 3
2012-12-18 09:08:30 +01:00
# endif
2012-11-29 09:35:59 +01:00
2013-02-01 04:33:43 +01:00
/// USB RAM Section Placement, MCU's usb controller often has limited access to specific RAM region. This will be used to declare internal variables as follow:
/// uint8_t tinyusb_data[10] TUSB_CFG_ATTR_USBRAM;
/// if your mcu's usb controller has no such limit, define TUSB_CFG_ATTR_USBRAM as empty macro.
# ifndef TUSB_CFG_ATTR_USBRAM
# error TUSB_CFG_ATTR_USBRAM is not defined, please help me know how to place data in accessible RAM for usb controller
2013-01-22 11:41:06 +01:00
# endif
2013-02-01 06:00:34 +01:00
# if TUSB_CFG_OS == TUSB_OS_NONE
# ifndef TUSB_CFG_OS_TICKS_PER_SECOND
# error TUSB_CFG_OS_TICKS_PER_SECOND is required to use with OS_NONE
# endif
2013-04-25 06:00:56 +02:00
# else
# ifndef TUSB_CFG_OS_TASK_PRIO
# error TUSB_CFG_OS_TASK_PRIO need to be defined (hint: use the highest if possible)
# endif
2013-02-01 06:00:34 +01:00
# endif
# ifndef TUSB_CFG_CONFIGURATION_MAX
# define TUSB_CFG_CONFIGURATION_MAX 1
# warning TUSB_CFG_CONFIGURATION_MAX is not defined, default value is 1
# endif
2013-02-01 04:33:43 +01:00
//--------------------------------------------------------------------+
// HOST OPTIONS
//--------------------------------------------------------------------+
2013-03-04 11:07:14 +01:00
# if MODE_HOST_SUPPORTED
2013-02-01 04:33:43 +01:00
# ifndef TUSB_CFG_HOST_DEVICE_MAX
# define TUSB_CFG_HOST_DEVICE_MAX 1
# warning TUSB_CFG_HOST_DEVICE_MAX is not defined, default value is 1
2013-01-25 19:37:15 +01:00
# endif
2013-05-06 15:09:06 +02:00
//------------- HUB CLASS -------------//
# if TUSB_CFG_HOST_HUB && (TUSB_CFG_HOST_DEVICE_MAX == 1)
# error there is no benefit enable hub with max device is 1. Please disable hub or increase TUSB_CFG_HOST_DEVICE_MAX
# endif
2013-03-01 13:32:53 +01:00
//------------- HID CLASS -------------//
2013-05-06 15:09:06 +02:00
# define HOST_CLASS_HID ( TUSB_CFG_HOST_HID_KEYBOARD + TUSB_CFG_HOST_HID_MOUSE + TUSB_CFG_HOST_HID_GENERIC )
2013-03-25 16:06:00 +01:00
# if HOST_CLASS_HID
2013-03-01 13:32:53 +01:00
# define HOST_HCD_XFER_INTERRUPT
2013-03-25 16:06:00 +01:00
# endif
2013-02-01 04:33:43 +01:00
2013-02-04 10:07:42 +01:00
# ifndef TUSB_CFG_HOST_ENUM_BUFFER_SIZE
# define TUSB_CFG_HOST_ENUM_BUFFER_SIZE 256
# warning TUSB_CFG_HOST_ENUM_BUFFER_SIZE is not defined, default value is 256
# endif
2013-03-01 13:32:53 +01:00
//------------- CLASS -------------//
2013-02-01 04:33:43 +01:00
# endif // end TUSB_CFG_HOST
2013-01-22 11:41:06 +01:00
2013-02-01 04:33:43 +01:00
//--------------------------------------------------------------------+
// DEVICE OPTIONS
2013-07-01 05:43:55 +02:00
//--------------------------------------------------------------------+
2013-05-29 09:39:14 +02:00
# if MODE_DEVICE_SUPPORTED
2012-11-29 10:32:49 +01:00
2013-06-04 08:36:18 +02:00
# if defined(CAP_DEVICE_ROMDRIVER) && !TUSB_CFG_DEVICE_USE_ROM_DRIVER
# error only rom driver for these mcu are supported now
2013-05-28 10:24:27 +02:00
# endif
2013-05-29 09:39:14 +02:00
# define DEVICE_CLASS_HID ( TUSB_CFG_DEVICE_HID_KEYBOARD + TUSB_CFG_DEVICE_HID_MOUSE + TUSB_CFG_DEVICE_HID_GENERIC )
# endif
2012-12-03 10:51:14 +01:00
2013-06-03 10:56:14 +02:00
2012-11-27 09:21:47 +01:00
# define USB_FS_MAX_BULK_PACKET 64
# define USB_HS_MAX_BULK_PACKET USB_FS_MAX_BULK_PACKET /* Full speed device only */
/* HID In/Out Endpoint Address */
2013-06-03 10:56:14 +02:00
# define HID_KEYBOARD_EP_IN ENDPOINT_IN_LOGICAL_TO_PHYSICAL(1)
# define HID_MOUSE_EP_IN ENDPOINT_IN_LOGICAL_TO_PHYSICAL(4)
2012-11-27 09:21:47 +01:00
/* CDC Endpoint Address */
2013-06-03 10:56:14 +02:00
# define CDC_NOTIFICATION_EP ENDPOINT_IN_LOGICAL_TO_PHYSICAL(2)
# define CDC_DATA_EP_OUT ENDPOINT_OUT_LOGICAL_TO_PHYSICAL(3)
# define CDC_DATA_EP_IN ENDPOINT_IN_LOGICAL_TO_PHYSICAL(3)
2012-11-27 09:21:47 +01:00
# define CDC_NOTIFICATION_EP_MAXPACKETSIZE 8
# define CDC_DATA_EP_MAXPACKET_SIZE 16
2013-05-29 09:39:14 +02:00
2013-03-04 11:07:14 +01:00
2012-12-02 05:07:59 +01:00
# ifdef __cplusplus
}
# endif
2013-01-11 10:55:47 +01:00
# endif /* _TUSB_TUSB_OPTION_H_ */
2012-11-29 04:41:33 +01:00
/** @} */