ESPHome
2026.1.0-dev
Loading...
Searching...
No Matches
esphome
components
tinyusb
tinyusb_component.cpp
Go to the documentation of this file.
1
#if defined(USE_ESP32_VARIANT_ESP32P4) || defined(USE_ESP32_VARIANT_ESP32S2) || defined(USE_ESP32_VARIANT_ESP32S3)
2
#include "
tinyusb_component.h
"
3
#include "
esphome/core/helpers.h
"
4
#include "
esphome/core/log.h
"
5
6
namespace
esphome::tinyusb
{
7
8
static
const
char
*TAG =
"tinyusb"
;
9
10
void
TinyUSB::setup
() {
11
// Use the device's MAC address as its serial number if no serial number is defined
12
if
(this->
string_descriptor_
[
SERIAL_NUMBER
] ==
nullptr
) {
13
static
char
mac_addr_buf[13];
14
get_mac_address_into_buffer
(mac_addr_buf);
15
this->
string_descriptor_
[
SERIAL_NUMBER
] = mac_addr_buf;
16
}
17
18
this->
tusb_cfg_
= {
19
.descriptor = &this->
usb_descriptor_
,
20
.string_descriptor = this->
string_descriptor_
,
21
.string_descriptor_count =
SIZE
,
22
.external_phy =
false
,
23
};
24
25
esp_err_t result = tinyusb_driver_install(&this->
tusb_cfg_
);
26
if
(result != ESP_OK) {
27
this->
mark_failed
();
28
}
29
}
30
31
void
TinyUSB::dump_config
() {
32
ESP_LOGCONFIG(TAG,
33
"TinyUSB:\n"
34
" Product ID: 0x%04X\n"
35
" Vendor ID: 0x%04X\n"
36
" Manufacturer: '%s'\n"
37
" Product: '%s'\n"
38
" Serial: '%s'\n"
,
39
this->
usb_descriptor_
.idProduct, this->usb_descriptor_.idVendor, this->string_descriptor_[
MANUFACTURER
],
40
this->string_descriptor_[
PRODUCT
], this->string_descriptor_[
SERIAL_NUMBER
]);
41
}
42
43
}
// namespace esphome::tinyusb
44
#endif
// USE_ESP32_VARIANT_ESP32P4 || USE_ESP32_VARIANT_ESP32S2 || USE_ESP32_VARIANT_ESP32S3
esphome::Component::mark_failed
virtual void mark_failed()
Mark this component as failed.
Definition
component.cpp:245
esphome::tinyusb::TinyUSB::tusb_cfg_
tinyusb_config_t tusb_cfg_
Definition
tinyusb_component.h:52
esphome::tinyusb::TinyUSB::string_descriptor_
const char * string_descriptor_[SIZE]
Definition
tinyusb_component.h:43
esphome::tinyusb::TinyUSB::usb_descriptor_
tusb_desc_device_t usb_descriptor_
Definition
tinyusb_component.h:53
esphome::tinyusb::TinyUSB::setup
void setup() override
Definition
tinyusb_component.cpp:10
esphome::tinyusb::TinyUSB::dump_config
void dump_config() override
Definition
tinyusb_component.cpp:31
helpers.h
log.h
esphome::tinyusb
Definition
tinyusb_component.cpp:6
esphome::tinyusb::MANUFACTURER
@ MANUFACTURER
Definition
tinyusb_component.h:12
esphome::tinyusb::PRODUCT
@ PRODUCT
Definition
tinyusb_component.h:13
esphome::tinyusb::SIZE
@ SIZE
Definition
tinyusb_component.h:17
esphome::tinyusb::SERIAL_NUMBER
@ SERIAL_NUMBER
Definition
tinyusb_component.h:14
esphome::get_mac_address_into_buffer
void get_mac_address_into_buffer(std::span< char, MAC_ADDRESS_BUFFER_SIZE > buf)
Get the device MAC address into the given buffer, in lowercase hex notation.
Definition
helpers.cpp:704
tinyusb_component.h
Generated by
1.12.0