mirror of
https://github.com/esphome/esphome.git
synced 2026-09-21 03:58:41 +00:00
[tinyusb] New component (#11678)
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
#if defined(USE_ESP32_VARIANT_ESP32P4) || defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3)
|
||||
#include "tinyusb_component.h"
|
||||
#include "esphome/core/helpers.h"
|
||||
#include "esphome/core/log.h"
|
||||
|
||||
namespace esphome::tinyusb {
|
||||
|
||||
static const char *TAG = "tinyusb";
|
||||
|
||||
void TinyUSB::setup() {
|
||||
// Use the device's MAC address as its serial number if no serial number is defined
|
||||
if (this->string_descriptor_[SERIAL_NUMBER] == nullptr) {
|
||||
static char mac_addr_buf[13];
|
||||
get_mac_address_into_buffer(mac_addr_buf);
|
||||
this->string_descriptor_[SERIAL_NUMBER] = mac_addr_buf;
|
||||
}
|
||||
|
||||
this->tusb_cfg_ = {
|
||||
.descriptor = &this->usb_descriptor_,
|
||||
.string_descriptor = this->string_descriptor_,
|
||||
.string_descriptor_count = SIZE,
|
||||
.external_phy = false,
|
||||
};
|
||||
|
||||
esp_err_t result = tinyusb_driver_install(&this->tusb_cfg_);
|
||||
if (result != ESP_OK) {
|
||||
this->mark_failed();
|
||||
}
|
||||
}
|
||||
|
||||
void TinyUSB::dump_config() {
|
||||
ESP_LOGCONFIG(TAG,
|
||||
"TinyUSB:\n"
|
||||
" Product ID: 0x%04X\n"
|
||||
" Vendor ID: 0x%04X\n"
|
||||
" Manufacturer: '%s'\n"
|
||||
" Product: '%s'\n"
|
||||
" Serial: '%s'\n",
|
||||
this->usb_descriptor_.idProduct, this->usb_descriptor_.idVendor, this->string_descriptor_[MANUFACTURER],
|
||||
this->string_descriptor_[PRODUCT], this->string_descriptor_[SERIAL_NUMBER]);
|
||||
}
|
||||
|
||||
} // namespace esphome::tinyusb
|
||||
#endif
|
||||
Reference in New Issue
Block a user