Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions teensy4/IntervalTimer.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
#define __INTERVALTIMER_H__

#include <stddef.h>
#include <type_traits>
#include "imxrt.h"
#if TEENSYDUINO >= 159
#include "inplace_function.h"
Expand Down
4 changes: 2 additions & 2 deletions teensy4/MTP_Storage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
// modified for SDFS by WMXZ
// Nov 2020 adapted to SdFat-beta / SD combo

#if defined(USB_MTPDISK) || defined(USB_MTPDISK_SERIAL)
#if defined(USB_MTPDISK) || defined(USB_MTPDISK_SERIAL) || defined(USB_MTPDISK_DUAL_SERIAL) || defined(USB_MTPDISK_TRIPLE_SERIAL)

#include "core_pins.h"
#include "usb_dev.h"
Expand Down Expand Up @@ -1927,4 +1927,4 @@ void MTPStorage::loop() {
}
}

#endif // USB_MTPDISK or USB_MTPDISK_SERIAL
#endif // USB_MTPDISK || USB_MTPDISK_SERIAL || USB_MTPDISK_DUAL_SERIAL || USB_MTPDISK_TRIPLE_SERIAL
4 changes: 2 additions & 2 deletions teensy4/MTP_Storage.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@

#pragma once

#if defined(USB_MTPDISK) || defined(USB_MTPDISK_SERIAL)
#if defined(USB_MTPDISK) || defined(USB_MTPDISK_SERIAL) || defined(USB_MTPDISK_DUAL_SERIAL) || defined(USB_MTPDISK_TRIPLE_SERIAL)

#include "core_pins.h"

Expand Down Expand Up @@ -303,4 +303,4 @@ class MTPStorage final {

void mtp_yield(void);

#endif // USB_MTPDISK or USB_MTPDISK_SERIAL
#endif // USB_MTPDISK || USB_MTPDISK_SERIAL || USB_MTPDISK_DUAL_SERIAL || USB_MTPDISK_TRIPLE_SERIAL
4 changes: 2 additions & 2 deletions teensy4/MTP_Teensy.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

// modified for SDFS by WMXZ

#if defined(USB_MTPDISK) || defined(USB_MTPDISK_SERIAL)
#if defined(USB_MTPDISK) || defined(USB_MTPDISK_SERIAL) || defined(USB_MTPDISK_DUAL_SERIAL) || defined(USB_MTPDISK_TRIPLE_SERIAL)

#define USE_DISK_BUFFER // only currently on T4.x

Expand Down Expand Up @@ -2554,4 +2554,4 @@ void MTP_class::printContainer(const void *container, const char *msg) {



#endif // USB_MTPDISK or USB_MTPDISK_SERIAL
#endif // USB_MTPDISK || USB_MTPDISK_SERIAL || USB_MTPDISK_DUAL_SERIAL || USB_MTPDISK_TRIPLE_SERIAL
4 changes: 2 additions & 2 deletions teensy4/MTP_Teensy.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

#pragma once

#if defined(USB_MTPDISK) || defined(USB_MTPDISK_SERIAL)
#if defined(USB_MTPDISK) || defined(USB_MTPDISK_SERIAL) || defined(USB_MTPDISK_DUAL_SERIAL) || defined(USB_MTPDISK_TRIPLE_SERIAL)

#include "IntervalTimer.h"
#include "core_pins.h"
Expand Down Expand Up @@ -314,4 +314,4 @@ class MTP_class {

extern MTP_class MTP;

#endif // USB_MTPDISK or USB_MTPDISK_SERIAL
#endif // USB_MTPDISK || USB_MTPDISK_SERIAL || USB_MTPDISK_DUAL_SERIAL || USB_MTPDISK_TRIPLE_SERIAL
2 changes: 1 addition & 1 deletion teensy4/usb.c
Original file line number Diff line number Diff line change
Expand Up @@ -1085,7 +1085,7 @@ void usb_receive(int endpoint_number, transfer_t *transfer)

uint32_t usb_transfer_status(const transfer_t *transfer)
{
#if defined(USB_MTPDISK) || defined(USB_MTPDISK_SERIAL)
#if defined(USB_MTPDISK) || defined(USB_MTPDISK_SERIAL) || defined(USB_MTPDISK_DUAL_SERIAL) || defined(USB_MTPDISK_TRIPLE_SERIAL)
uint32_t status, cmd;
//int count=0;
cmd = USB1_USBCMD;
Expand Down
95 changes: 95 additions & 0 deletions teensy4/usb_desc.h
Original file line number Diff line number Diff line change
Expand Up @@ -743,6 +743,101 @@ let me know? http://forum.pjrc.com/forums/4-Suggestions-amp-Bug-Reports
#define ENDPOINT4_CONFIG ENDPOINT_RECEIVE_BULK + ENDPOINT_TRANSMIT_BULK
#define ENDPOINT5_CONFIG ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_INTERRUPT

#elif defined(USB_MTPDISK_DUAL_SERIAL)
#define VENDOR_ID 0x16C0
#define PRODUCT_ID 0x04D6
#define MANUFACTURER_NAME {'T','e','e','n','s','y','d','u','i','n','o'}
#define MANUFACTURER_NAME_LEN 11
#define PRODUCT_NAME {'T','e','e','n','s','y',' ','M','T','P',' ','D','u','a','l',' ','S','e','r','i','a','l'}
#define PRODUCT_NAME_LEN 21
#define EP0_SIZE 64
#define NUM_ENDPOINTS 7
#define NUM_INTERFACE 5
#define CDC_IAD_DESCRIPTOR 1 // Serial
#define CDC_STATUS_INTERFACE 0
#define CDC_DATA_INTERFACE 1
#define CDC_ACM_ENDPOINT 2
#define CDC_RX_ENDPOINT 3
#define CDC_TX_ENDPOINT 3
#define CDC_ACM_SIZE 16
#define CDC_RX_SIZE_480 512
#define CDC_TX_SIZE_480 512
#define CDC_RX_SIZE_12 64
#define CDC_TX_SIZE_12 64
#define CDC2_STATUS_INTERFACE 2 // SerialUSB1
#define CDC2_DATA_INTERFACE 3
#define CDC2_ACM_ENDPOINT 4
#define CDC2_RX_ENDPOINT 5
#define CDC2_TX_ENDPOINT 5
#define MTP_INTERFACE 4 // MTP Disk
#define MTP_TX_ENDPOINT 6
#define MTP_TX_SIZE_12 64
#define MTP_TX_SIZE_480 512
#define MTP_RX_ENDPOINT 6
#define MTP_RX_SIZE_12 64
#define MTP_RX_SIZE_480 512
#define MTP_EVENT_ENDPOINT 7
#define MTP_EVENT_SIZE 32
#define MTP_EVENT_INTERVAL_12 10 // 10 = 10 ms
#define MTP_EVENT_INTERVAL_480 7 // 7 = 8 ms
#define ENDPOINT2_CONFIG ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_INTERRUPT
#define ENDPOINT3_CONFIG ENDPOINT_RECEIVE_BULK + ENDPOINT_TRANSMIT_BULK
#define ENDPOINT4_CONFIG ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_INTERRUPT
#define ENDPOINT5_CONFIG ENDPOINT_RECEIVE_BULK + ENDPOINT_TRANSMIT_BULK
#define ENDPOINT6_CONFIG ENDPOINT_RECEIVE_BULK + ENDPOINT_TRANSMIT_BULK
#define ENDPOINT7_CONFIG ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_INTERRUPT

#elif defined(USB_MTPDISK_TRIPLE_SERIAL)
#define VENDOR_ID 0x16C0
#define PRODUCT_ID 0x04D6
#define MANUFACTURER_NAME {'T','e','e','n','s','y','d','u','i','n','o'}
#define MANUFACTURER_NAME_LEN 11
#define PRODUCT_NAME {'T','e','e','n','s','y',' ','M','T','P',' ','T','r','i','p','l','e',' ','S','e','r','i','a','l'}
#define PRODUCT_NAME_LEN 23
#define EP0_SIZE 64
#define NUM_ENDPOINTS 9
#define NUM_INTERFACE 7
#define CDC_IAD_DESCRIPTOR 1 // Serial
#define CDC_STATUS_INTERFACE 0
#define CDC_DATA_INTERFACE 1
#define CDC_ACM_ENDPOINT 2
#define CDC_RX_ENDPOINT 3
#define CDC_TX_ENDPOINT 3
#define CDC_ACM_SIZE 16
#define CDC_RX_SIZE_480 512
#define CDC_TX_SIZE_480 512
#define CDC_RX_SIZE_12 64
#define CDC_TX_SIZE_12 64
#define CDC2_STATUS_INTERFACE 2 // SerialUSB1
#define CDC2_DATA_INTERFACE 3
#define CDC2_ACM_ENDPOINT 4
#define CDC2_RX_ENDPOINT 5
#define CDC2_TX_ENDPOINT 5
#define CDC3_STATUS_INTERFACE 4 // SerialUSB2
#define CDC3_DATA_INTERFACE 5
#define CDC3_ACM_ENDPOINT 6
#define CDC3_RX_ENDPOINT 7
#define CDC3_TX_ENDPOINT 7
#define MTP_INTERFACE 6 // MTP Disk
#define MTP_TX_ENDPOINT 8
#define MTP_TX_SIZE_12 64
#define MTP_TX_SIZE_480 512
#define MTP_RX_ENDPOINT 8
#define MTP_RX_SIZE_12 64
#define MTP_RX_SIZE_480 512
#define MTP_EVENT_ENDPOINT 9
#define MTP_EVENT_SIZE 32
#define MTP_EVENT_INTERVAL_12 10 // 10 = 10 ms
#define MTP_EVENT_INTERVAL_480 7 // 7 = 8 ms
#define ENDPOINT2_CONFIG ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_INTERRUPT
#define ENDPOINT3_CONFIG ENDPOINT_RECEIVE_BULK + ENDPOINT_TRANSMIT_BULK
#define ENDPOINT4_CONFIG ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_INTERRUPT
#define ENDPOINT5_CONFIG ENDPOINT_RECEIVE_BULK + ENDPOINT_TRANSMIT_BULK
#define ENDPOINT6_CONFIG ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_INTERRUPT
#define ENDPOINT7_CONFIG ENDPOINT_RECEIVE_BULK + ENDPOINT_TRANSMIT_BULK
#define ENDPOINT8_CONFIG ENDPOINT_RECEIVE_BULK + ENDPOINT_TRANSMIT_BULK
#define ENDPOINT9_CONFIG ENDPOINT_RECEIVE_UNUSED + ENDPOINT_TRANSMIT_INTERRUPT

#elif defined(USB_AUDIO)
#define VENDOR_ID 0x16C0
#define PRODUCT_ID 0x04D2
Expand Down
4 changes: 2 additions & 2 deletions teensy4/yield.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,12 +51,12 @@ void yield(void)
if (Serial.available()) serialEvent();
}

#if defined(USB_DUAL_SERIAL) || defined(USB_TRIPLE_SERIAL)
#if defined(USB_DUAL_SERIAL) || defined(USB_TRIPLE_SERIAL) || defined(USB_MTPDISK_DUAL_SERIAL) || defined(USB_MTPDISK_TRIPLE_SERIAL)
if (check_flags & YIELD_CHECK_USB_SERIALUSB1) {
if (SerialUSB1.available()) serialEventUSB1();
}
#endif
#ifdef USB_TRIPLE_SERIAL
#if defined(USB_TRIPLE_SERIAL) || defined(USB_MTPDISK_TRIPLE_SERIAL)
if (check_flags & YIELD_CHECK_USB_SERIALUSB2) {
if (SerialUSB2.available()) serialEventUSB2();
}
Expand Down