mirror of
https://github.com/esp-rs/esp-hal.git
synced 2025-09-27 04:10:28 +00:00

* Provide malloc, free and friends in esp-alloc * Mute warning * Remove some (now unused) global symbols * Have a way to opt-out of esp-alloc's malloc,free etc. * Fixes * Move some common C functions from esp-radio to esp-rom-sys * Fix * Make esp-readio symbols weakly linked * CHANGELOG.md * Align MSRV, cleanup visibility * Init before `assume_init` * Linker script fixes * Fix examples * Remove heapless - esp-radio is alloc * Fix examples * Whitespace * realloc_internal * Make `__esp_radio_putchar` a no-op if `sys-logs` is not enabled
677 lines
29 KiB
TOML
677 lines
29 KiB
TOML
# ESP32 Device Metadata
|
|
#
|
|
# Empty [`device.driver`] tables imply `partial` support status.
|
|
#
|
|
# If you modify a driver support status, run `cargo xtask update-chip-support-table` to
|
|
# update the table in the esp-hal README.
|
|
|
|
[device]
|
|
name = "esp32"
|
|
arch = "xtensa"
|
|
target = "xtensa-esp32-none-elf"
|
|
cores = 2
|
|
trm = "https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf"
|
|
|
|
peripherals = [
|
|
{ name = "AES" },
|
|
{ name = "APB_CTRL" },
|
|
{ name = "BB" },
|
|
{ name = "DPORT" },
|
|
{ name = "SYSTEM", pac = "DPORT" },
|
|
{ name = "EFUSE" },
|
|
{ name = "EMAC_DMA" },
|
|
{ name = "EMAC_EXT" },
|
|
{ name = "EMAC_MAC" },
|
|
{ name = "FLASH_ENCRYPTION" },
|
|
{ name = "FRC_TIMER" },
|
|
{ name = "GPIO" },
|
|
{ name = "GPIO_SD" },
|
|
{ name = "HINF" },
|
|
{ name = "I2C0", interrupts = { peri = "I2C_EXT0" } },
|
|
{ name = "I2C1", interrupts = { peri = "I2C_EXT1" } },
|
|
{ name = "I2S0", interrupts = { peri = "I2S0" } },
|
|
{ name = "I2S1", interrupts = { peri = "I2S1" } },
|
|
{ name = "IO_MUX" },
|
|
{ name = "LEDC" },
|
|
{ name = "MCPWM0" },
|
|
{ name = "MCPWM1" },
|
|
{ name = "NRX" },
|
|
{ name = "PCNT" },
|
|
{ name = "RMT" },
|
|
{ name = "RNG" },
|
|
{ name = "RSA" },
|
|
{ name = "LPWR", pac = "RTC_CNTL" },
|
|
{ name = "RTC_I2C" },
|
|
{ name = "RTC_IO" },
|
|
{ name = "SDHOST" },
|
|
{ name = "SENS" },
|
|
{ name = "SHA" },
|
|
{ name = "SLC" },
|
|
{ name = "SLCHOST" },
|
|
{ name = "SPI0" },
|
|
{ name = "SPI1" },
|
|
{ name = "SPI2", interrupts = { peri = "SPI2", dma = "SPI2_DMA" } },
|
|
{ name = "SPI3", interrupts = { peri = "SPI3", dma = "SPI3_DMA" } },
|
|
{ name = "TIMG0" },
|
|
{ name = "TIMG1" },
|
|
{ name = "TWAI0" },
|
|
{ name = "UART0", interrupts = { peri = "UART0" } },
|
|
{ name = "UART1", interrupts = { peri = "UART1" } },
|
|
{ name = "UART2", interrupts = { peri = "UART2" } },
|
|
{ name = "UHCI0" },
|
|
{ name = "UHCI1" },
|
|
{ name = "WIFI" },
|
|
|
|
{ name = "DMA_SPI2", pac = "SPI2" },
|
|
{ name = "DMA_SPI3", pac = "SPI3" },
|
|
{ name = "DMA_I2S0", pac = "I2S0" },
|
|
{ name = "DMA_I2S1", pac = "I2S1" },
|
|
|
|
{ name = "ADC1", virtual = true },
|
|
{ name = "ADC2", virtual = true },
|
|
{ name = "BT", virtual = true },
|
|
{ name = "CPU_CTRL", virtual = true },
|
|
{ name = "DAC1", virtual = true },
|
|
{ name = "DAC2", virtual = true },
|
|
{ name = "PSRAM", virtual = true },
|
|
{ name = "SW_INTERRUPT", virtual = true },
|
|
{ name = "TOUCH", virtual = true },
|
|
]
|
|
|
|
symbols = [
|
|
# Additional peripherals defined by us (the developers):
|
|
"pdma",
|
|
"phy",
|
|
"psram",
|
|
"touch",
|
|
|
|
# ROM capabilities
|
|
"rom_crc_le",
|
|
"rom_crc_be",
|
|
"rom_md5_bsd",
|
|
|
|
# Wakeup SOC based on ESP-IDF:
|
|
"pm_support_ext0_wakeup",
|
|
"pm_support_ext1_wakeup",
|
|
"pm_support_touch_sensor_wakeup",
|
|
"ulp_supported",
|
|
|
|
# Which bluetooth implementation
|
|
"btdm",
|
|
]
|
|
|
|
memory = [{ name = "dram", start = 0x3FFA_E000, end = 0x4000_0000 }]
|
|
|
|
[device.soc]
|
|
ref_tick_hz = 1_000_000
|
|
rc_fast_clk_default = 8_000_000
|
|
|
|
[device.adc]
|
|
support_status = "partial"
|
|
instances = [
|
|
{ name = "adc1" },
|
|
{ name = "adc2" },
|
|
]
|
|
|
|
[device.aes]
|
|
support_status = "partial"
|
|
has_split_text_registers = false
|
|
endianness_configurable = true
|
|
key_length = { options = [
|
|
{ bits = 128, encrypt_mode = 0, decrypt_mode = 4 },
|
|
{ bits = 192, encrypt_mode = 1, decrypt_mode = 5 },
|
|
{ bits = 256, encrypt_mode = 2, decrypt_mode = 6 }
|
|
] }
|
|
|
|
[device.dac]
|
|
support_status = "partial"
|
|
instances = [
|
|
{ name = "dac1" },
|
|
{ name = "dac2" },
|
|
]
|
|
|
|
[device.gpio]
|
|
support_status = "supported"
|
|
has_bank_1 = true
|
|
gpio_function = 2
|
|
constant_0_input = 0x30
|
|
constant_1_input = 0x38
|
|
remap_iomux_pin_registers = true
|
|
pins = [
|
|
{ pin = 0, functions = { 1 = "CLK_OUT1", 5 = "EMAC_TX_CLK" }, analog = { 1 = "ADC2_CH1", 2 = "TOUCH1" }, rtc = { 0 = "RTC_GPIO11", 1 = "SAR_I2C_SDA" } },
|
|
{ pin = 1, functions = { 0 = "U0TXD", 1 = "CLK_OUT3", 5 = "EMAC_RXD2" } },
|
|
{ pin = 2, functions = { 1 = "HSPIWP", 3 = "HS2_DATA0", 4 = "SD_DATA0" }, analog = { 1 = "ADC2_CH2", 2 = "TOUCH2" }, rtc = { 0 = "RTC_GPIO12", 1 = "SAR_I2C_SCL" } },
|
|
{ pin = 3, functions = { 0 = "U0RXD", 1 = "CLK_OUT2" } },
|
|
{ pin = 4, functions = { 1 = "HSPIHD", 3 = "HS2_DATA1", 4 = "SD_DATA1", 5 = "EMAC_TX_ER" }, analog = { 1 = "ADC2_CH0", 2 = "TOUCH0" }, rtc = { 0 = "RTC_GPIO10", 1 = "SAR_I2C_SCL" } },
|
|
{ pin = 5, functions = { 1 = "VSPICS0", 3 = "HS1_DATA6", 5 = "EMAC_RX_CLK" } },
|
|
{ pin = 6, functions = { 0 = "SD_CLK", 1 = "SPICLK", 3 = "HS1_CLK", 4 = "U1CTS" } },
|
|
{ pin = 7, functions = { 0 = "SD_DATA0", 1 = "SPIQ", 3 = "HS1_DATA0", 4 = "U2RTS" } },
|
|
{ pin = 8, functions = { 0 = "SD_DATA1", 1 = "SPID", 3 = "HS1_DATA1", 4 = "U2CTS" } },
|
|
{ pin = 9, functions = { 0 = "SD_DATA2", 1 = "SPIHD", 3 = "HS1_DATA2", 4 = "U1RXD" } },
|
|
{ pin = 10, functions = { 0 = "SD_DATA3", 1 = "SPIWP", 3 = "HS1_DATA3", 4 = "U1TXD" } },
|
|
{ pin = 11, functions = { 0 = "SD_CMD", 1 = "SPICS0", 3 = "HS1_CMD", 4 = "U1RTS" } },
|
|
{ pin = 12, functions = { 0 = "MTDI", 1 = "HSPIQ", 3 = "HS2_DATA2", 4 = "SD_DATA2", 5 = "EMAC_TXD3" }, analog = { 1 = "ADC2_CH5", 2 = "TOUCH5" }, rtc = { 0 = "RTC_GPIO15" } },
|
|
{ pin = 13, functions = { 0 = "MTCK", 1 = "HSPID", 3 = "HS2_DATA3", 4 = "SD_DATA3", 5 = "EMAC_RX_ER" }, analog = { 1 = "ADC2_CH4", 2 = "TOUCH4" }, rtc = { 0 = "RTC_GPIO14" } },
|
|
{ pin = 14, functions = { 0 = "MTMS", 1 = "HSPICLK", 3 = "HS2_CLK", 4 = "SD_CLK", 5 = "EMAC_TXD2" }, analog = { 1 = "ADC2_CH6", 2 = "TOUCH6" }, rtc = { 0 = "RTC_GPIO16" } },
|
|
{ pin = 15, functions = { 0 = "MTDO", 1 = "HSPICS0", 3 = "HS2_CMD", 4 = "SD_CMD", 5 = "EMAC_RXD3" }, analog = { 1 = "ADC2_CH3", 2 = "TOUCH3" }, rtc = { 0 = "RTC_GPIO13", 1 = "SAR_I2C_SDA" } },
|
|
{ pin = 16, functions = { 3 = "HS1_DATA4", 4 = "U2RXD", 5 = "EMAC_CLK_OUT" }, analog = {}, rtc = {} },
|
|
{ pin = 17, functions = { 3 = "HS1_DATA5", 4 = "U2TXD", 5 = "EMAC_CLK_180" }, analog = {}, rtc = {} },
|
|
{ pin = 18, functions = { 1 = "VSPICLK", 3 = "HS1_DATA7" }, analog = {}, rtc = {} },
|
|
{ pin = 19, functions = { 1 = "VSPIQ", 3 = "U0CTS", 5 = "EMAC_TXD0" }, analog = {}, rtc = {} },
|
|
{ pin = 20 }, # ESP32-PICO-V3 only
|
|
{ pin = 21, functions = { 1 = "VSPIHD", 5 = "EMAC_TX_EN" } },
|
|
{ pin = 22, functions = { 1 = "VSPIWP", 3 = "U0RTS", 5 = "EMAC_TXD1" } },
|
|
{ pin = 23, functions = { 1 = "VSPID", 3 = "HS1_STROBE" } },
|
|
{ pin = 25, functions = { 5 = "EMAC_RXD0" }, analog = { 0 = "DAC1", 1 = "ADC2_CH8" }, rtc = { 0 = "RTC_GPIO6" } },
|
|
{ pin = 26, functions = { 5 = "EMAC_RXD1" }, analog = { 0 = "DAC2", 1 = "ADC2_CH9" }, rtc = { 0 = "RTC_GPIO7" } },
|
|
{ pin = 27, functions = { 5 = "EMAC_RX_DV" }, analog = { 1 = "ADC2_CH7", 2 = "TOUCH7" }, rtc = { 0 = "RTC_GPIO17" } },
|
|
{ pin = 32, analog = { 0 = "XTAL_32K_P", 1 = "ADC1_CH4", 2 = "TOUCH9" }, rtc = { 0 = "RTC_GPIO9" } },
|
|
{ pin = 33, analog = { 0 = "XTAL_32K_N", 1 = "ADC1_CH5", 2 = "TOUCH8" }, rtc = { 0 = "RTC_GPIO8" } },
|
|
{ pin = 34, input_only = true, analog = { 1 = "ADC1_CH6" }, rtc = { 0 = "RTC_GPIO4" } },
|
|
{ pin = 35, input_only = true, analog = { 1 = "ADC1_CH7" }, rtc = { 0 = "RTC_GPIO5" } },
|
|
{ pin = 36, input_only = true, analog = { 0 = "ADC_H", 1 = "ADC1_CH0" }, rtc = { 0 = "RTC_GPIO0" } },
|
|
{ pin = 37, input_only = true, analog = { 0 = "ADC_H", 1 = "ADC1_CH1" }, rtc = { 0 = "RTC_GPIO1" } },
|
|
{ pin = 38, input_only = true, analog = { 0 = "ADC_H", 1 = "ADC1_CH2" }, rtc = { 0 = "RTC_GPIO2" } },
|
|
{ pin = 39, input_only = true, analog = { 0 = "ADC_H", 1 = "ADC1_CH3" }, rtc = { 0 = "RTC_GPIO3" } },
|
|
]
|
|
input_signals = [
|
|
{ name = "SPICLK", id = 0 },
|
|
{ name = "SPIQ", id = 1 },
|
|
{ name = "SPID", id = 2 },
|
|
{ name = "SPIHD", id = 3 },
|
|
{ name = "SPIWP", id = 4 },
|
|
{ name = "SPICS0", id = 5 },
|
|
{ name = "SPICS1", id = 6 },
|
|
{ name = "SPICS2", id = 7 },
|
|
{ name = "HSPICLK", id = 8 },
|
|
{ name = "HSPIQ", id = 9 },
|
|
{ name = "HSPID", id = 10 },
|
|
{ name = "HSPICS0", id = 11 },
|
|
{ name = "HSPIHD", id = 12 },
|
|
{ name = "HSPIWP", id = 13 },
|
|
{ name = "U0RXD", id = 14 },
|
|
{ name = "U0CTS", id = 15 },
|
|
{ name = "U0DSR", id = 16 },
|
|
{ name = "U1RXD", id = 17 },
|
|
{ name = "U1CTS", id = 18 },
|
|
{ name = "I2S0O_BCK", id = 23 },
|
|
{ name = "I2S1O_BCK", id = 24 },
|
|
{ name = "I2S0O_WS", id = 25 },
|
|
{ name = "I2S1O_WS", id = 26 },
|
|
{ name = "I2S0I_BCK", id = 27 },
|
|
{ name = "I2S0I_WS", id = 28 },
|
|
{ name = "I2CEXT0_SCL", id = 29 },
|
|
{ name = "I2CEXT0_SDA", id = 30 },
|
|
{ name = "PWM0_SYNC0", id = 31 },
|
|
{ name = "PWM0_SYNC1", id = 32 },
|
|
{ name = "PWM0_SYNC2", id = 33 },
|
|
{ name = "PWM0_F0", id = 34 },
|
|
{ name = "PWM0_F1", id = 35 },
|
|
{ name = "PWM0_F2", id = 36 },
|
|
{ name = "PCNT0_SIG_CH0", id = 39 },
|
|
{ name = "PCNT0_SIG_CH1", id = 40 },
|
|
{ name = "PCNT0_CTRL_CH0", id = 41 },
|
|
{ name = "PCNT0_CTRL_CH1", id = 42 },
|
|
{ name = "PCNT1_SIG_CH0", id = 43 },
|
|
{ name = "PCNT1_SIG_CH1", id = 44 },
|
|
{ name = "PCNT1_CTRL_CH0", id = 45 },
|
|
{ name = "PCNT1_CTRL_CH1", id = 46 },
|
|
{ name = "PCNT2_SIG_CH0", id = 47 },
|
|
{ name = "PCNT2_SIG_CH1", id = 48 },
|
|
{ name = "PCNT2_CTRL_CH0", id = 49 },
|
|
{ name = "PCNT2_CTRL_CH1", id = 50 },
|
|
{ name = "PCNT3_SIG_CH0", id = 51 },
|
|
{ name = "PCNT3_SIG_CH1", id = 52 },
|
|
{ name = "PCNT3_CTRL_CH0", id = 53 },
|
|
{ name = "PCNT3_CTRL_CH1", id = 54 },
|
|
{ name = "PCNT4_SIG_CH0", id = 55 },
|
|
{ name = "PCNT4_SIG_CH1", id = 56 },
|
|
{ name = "PCNT4_CTRL_CH0", id = 57 },
|
|
{ name = "PCNT4_CTRL_CH1", id = 58 },
|
|
{ name = "HSPICS1", id = 61 },
|
|
{ name = "HSPICS2", id = 62 },
|
|
{ name = "VSPICLK", id = 63 },
|
|
{ name = "VSPIQ", id = 64 },
|
|
{ name = "VSPID", id = 65 },
|
|
{ name = "VSPIHD", id = 66 },
|
|
{ name = "VSPIWP", id = 67 },
|
|
{ name = "VSPICS0", id = 68 },
|
|
{ name = "VSPICS1", id = 69 },
|
|
{ name = "VSPICS2", id = 70 },
|
|
{ name = "PCNT5_SIG_CH0", id = 71 },
|
|
{ name = "PCNT5_SIG_CH1", id = 72 },
|
|
{ name = "PCNT5_CTRL_CH0", id = 73 },
|
|
{ name = "PCNT5_CTRL_CH1", id = 74 },
|
|
{ name = "PCNT6_SIG_CH0", id = 75 },
|
|
{ name = "PCNT6_SIG_CH1", id = 76 },
|
|
{ name = "PCNT6_CTRL_CH0", id = 77 },
|
|
{ name = "PCNT6_CTRL_CH1", id = 78 },
|
|
{ name = "PCNT7_SIG_CH0", id = 79 },
|
|
{ name = "PCNT7_SIG_CH1", id = 80 },
|
|
{ name = "PCNT7_CTRL_CH0", id = 81 },
|
|
{ name = "PCNT7_CTRL_CH1", id = 82 },
|
|
{ name = "RMT_SIG_0", id = 83 },
|
|
{ name = "RMT_SIG_1", id = 84 },
|
|
{ name = "RMT_SIG_2", id = 85 },
|
|
{ name = "RMT_SIG_3", id = 86 },
|
|
{ name = "RMT_SIG_4", id = 87 },
|
|
{ name = "RMT_SIG_5", id = 88 },
|
|
{ name = "RMT_SIG_6", id = 89 },
|
|
{ name = "RMT_SIG_7", id = 90 },
|
|
{ name = "TWAI_RX", id = 94 },
|
|
{ name = "I2CEXT1_SCL", id = 95 },
|
|
{ name = "I2CEXT1_SDA", id = 96 },
|
|
{ name = "HOST_CARD_DETECT_N_1", id = 97 },
|
|
{ name = "HOST_CARD_DETECT_N_2", id = 98 },
|
|
{ name = "HOST_CARD_WRITE_PRT_1",id = 99 },
|
|
{ name = "HOST_CARD_WRITE_PRT_2",id = 100 },
|
|
{ name = "HOST_CARD_INT_N_1", id = 101 },
|
|
{ name = "HOST_CARD_INT_N_2", id = 102 },
|
|
{ name = "PWM1_SYNC0", id = 103 },
|
|
{ name = "PWM1_SYNC1", id = 104 },
|
|
{ name = "PWM1_SYNC2", id = 105 },
|
|
{ name = "PWM1_F0", id = 106 },
|
|
{ name = "PWM1_F1", id = 107 },
|
|
{ name = "PWM1_F2", id = 108 },
|
|
{ name = "PWM0_CAP0", id = 109 },
|
|
{ name = "PWM0_CAP1", id = 110 },
|
|
{ name = "PWM0_CAP2", id = 111 },
|
|
{ name = "PWM1_CAP0", id = 112 },
|
|
{ name = "PWM1_CAP1", id = 113 },
|
|
{ name = "PWM1_CAP2", id = 114 },
|
|
{ name = "I2S0I_DATA_0", id = 140 },
|
|
{ name = "I2S0I_DATA_1", id = 141 },
|
|
{ name = "I2S0I_DATA_2", id = 142 },
|
|
{ name = "I2S0I_DATA_3", id = 143 },
|
|
{ name = "I2S0I_DATA_4", id = 144 },
|
|
{ name = "I2S0I_DATA_5", id = 145 },
|
|
{ name = "I2S0I_DATA_6", id = 146 },
|
|
{ name = "I2S0I_DATA_7", id = 147 },
|
|
{ name = "I2S0I_DATA_8", id = 148 },
|
|
{ name = "I2S0I_DATA_9", id = 149 },
|
|
{ name = "I2S0I_DATA_10", id = 150 },
|
|
{ name = "I2S0I_DATA_11", id = 151 },
|
|
{ name = "I2S0I_DATA_12", id = 152 },
|
|
{ name = "I2S0I_DATA_13", id = 153 },
|
|
{ name = "I2S0I_DATA_14", id = 154 },
|
|
{ name = "I2S0I_DATA_15", id = 155 },
|
|
{ name = "I2S1I_BCK", id = 164 },
|
|
{ name = "I2S1I_WS", id = 165 },
|
|
{ name = "I2S1I_DATA_0", id = 166 },
|
|
{ name = "I2S1I_DATA_1", id = 167 },
|
|
{ name = "I2S1I_DATA_2", id = 168 },
|
|
{ name = "I2S1I_DATA_3", id = 169 },
|
|
{ name = "I2S1I_DATA_4", id = 170 },
|
|
{ name = "I2S1I_DATA_5", id = 171 },
|
|
{ name = "I2S1I_DATA_6", id = 172 },
|
|
{ name = "I2S1I_DATA_7", id = 173 },
|
|
{ name = "I2S1I_DATA_8", id = 174 },
|
|
{ name = "I2S1I_DATA_9", id = 175 },
|
|
{ name = "I2S1I_DATA_10", id = 176 },
|
|
{ name = "I2S1I_DATA_11", id = 177 },
|
|
{ name = "I2S1I_DATA_12", id = 178 },
|
|
{ name = "I2S1I_DATA_13", id = 179 },
|
|
{ name = "I2S1I_DATA_14", id = 180 },
|
|
{ name = "I2S1I_DATA_15", id = 181 },
|
|
{ name = "I2S0I_H_SYNC", id = 190 },
|
|
{ name = "I2S0I_V_SYNC", id = 191 },
|
|
{ name = "I2S0I_H_ENABLE", id = 192 },
|
|
{ name = "I2S1I_H_SYNC", id = 193 },
|
|
{ name = "I2S1I_V_SYNC", id = 194 },
|
|
{ name = "I2S1I_H_ENABLE", id = 195 },
|
|
{ name = "U2RXD", id = 198 },
|
|
{ name = "U2CTS", id = 199 },
|
|
{ name = "EMAC_MDC", id = 200 },
|
|
{ name = "EMAC_MDI", id = 201 },
|
|
{ name = "EMAC_CRS", id = 202 },
|
|
{ name = "EMAC_COL", id = 203 },
|
|
{ name = "PCMFSYNC", id = 204 },
|
|
{ name = "PCMCLK", id = 205 },
|
|
{ name = "PCMDIN", id = 206 },
|
|
|
|
{ name = "SD_CMD" },
|
|
{ name = "SD_DATA0" },
|
|
{ name = "SD_DATA1" },
|
|
{ name = "SD_DATA2" },
|
|
{ name = "SD_DATA3" },
|
|
{ name = "HS1_DATA0" },
|
|
{ name = "HS1_DATA1" },
|
|
{ name = "HS1_DATA2" },
|
|
{ name = "HS1_DATA3" },
|
|
{ name = "HS1_DATA4" },
|
|
{ name = "HS1_DATA5" },
|
|
{ name = "HS1_DATA6" },
|
|
{ name = "HS1_DATA7" },
|
|
{ name = "HS2_DATA0" },
|
|
{ name = "HS2_DATA1" },
|
|
{ name = "HS2_DATA2" },
|
|
{ name = "HS2_DATA3" },
|
|
|
|
{ name = "EMAC_TX_CLK" },
|
|
{ name = "EMAC_RXD2" },
|
|
{ name = "EMAC_TX_ER" },
|
|
{ name = "EMAC_RX_CLK" },
|
|
{ name = "EMAC_RX_ER" },
|
|
{ name = "EMAC_RXD3" },
|
|
{ name = "EMAC_RXD0" },
|
|
{ name = "EMAC_RXD1" },
|
|
{ name = "EMAC_RX_DV" },
|
|
|
|
{ name = "MTDI" },
|
|
{ name = "MTCK" },
|
|
{ name = "MTMS" },
|
|
]
|
|
output_signals = [
|
|
{ name = "SPICLK", id = 0 },
|
|
{ name = "SPIQ", id = 1 },
|
|
{ name = "SPID", id = 2 },
|
|
{ name = "SPIHD", id = 3 },
|
|
{ name = "SPIWP", id = 4 },
|
|
{ name = "SPICS0", id = 5 },
|
|
{ name = "SPICS1", id = 6 },
|
|
{ name = "SPICS2", id = 7 },
|
|
{ name = "HSPICLK", id = 8 },
|
|
{ name = "HSPIQ", id = 9 },
|
|
{ name = "HSPID", id = 10 },
|
|
{ name = "HSPICS0", id = 11 },
|
|
{ name = "HSPIHD", id = 12 },
|
|
{ name = "HSPIWP", id = 13 },
|
|
{ name = "U0TXD", id = 14 },
|
|
{ name = "U0RTS", id = 15 },
|
|
{ name = "U0DTR", id = 16 },
|
|
{ name = "U1TXD", id = 17 },
|
|
{ name = "U1RTS", id = 18 },
|
|
{ name = "I2S0O_BCK", id = 23 },
|
|
{ name = "I2S1O_BCK", id = 24 },
|
|
{ name = "I2S0O_WS", id = 25 },
|
|
{ name = "I2S1O_WS", id = 26 },
|
|
{ name = "I2S0I_BCK", id = 27 },
|
|
{ name = "I2S0I_WS", id = 28 },
|
|
{ name = "I2CEXT0_SCL", id = 29 },
|
|
{ name = "I2CEXT0_SDA", id = 30 },
|
|
{ name = "SDIO_TOHOSTT", id = 31 },
|
|
{ name = "PWM0_0A", id = 32 },
|
|
{ name = "PWM0_0B", id = 33 },
|
|
{ name = "PWM0_1A", id = 34 },
|
|
{ name = "PWM0_1B", id = 35 },
|
|
{ name = "PWM0_2A", id = 36 },
|
|
{ name = "PWM0_2B", id = 37 },
|
|
{ name = "HSPICS1", id = 61 },
|
|
{ name = "HSPICS2", id = 62 },
|
|
{ name = "VSPICLK", id = 63 },
|
|
{ name = "VSPIQ", id = 64 },
|
|
{ name = "VSPID", id = 65 },
|
|
{ name = "VSPIHD", id = 66 },
|
|
{ name = "VSPIWP", id = 67 },
|
|
{ name = "VSPICS0", id = 68 },
|
|
{ name = "VSPICS1", id = 69 },
|
|
{ name = "VSPICS2", id = 70 },
|
|
{ name = "LEDC_HS_SIG0", id = 71 },
|
|
{ name = "LEDC_HS_SIG1", id = 72 },
|
|
{ name = "LEDC_HS_SIG2", id = 73 },
|
|
{ name = "LEDC_HS_SIG3", id = 74 },
|
|
{ name = "LEDC_HS_SIG4", id = 75 },
|
|
{ name = "LEDC_HS_SIG5", id = 76 },
|
|
{ name = "LEDC_HS_SIG6", id = 77 },
|
|
{ name = "LEDC_HS_SIG7", id = 78 },
|
|
{ name = "LEDC_LS_SIG0", id = 79 },
|
|
{ name = "LEDC_LS_SIG1", id = 80 },
|
|
{ name = "LEDC_LS_SIG2", id = 81 },
|
|
{ name = "LEDC_LS_SIG3", id = 82 },
|
|
{ name = "LEDC_LS_SIG4", id = 83 },
|
|
{ name = "LEDC_LS_SIG5", id = 84 },
|
|
{ name = "LEDC_LS_SIG6", id = 85 },
|
|
{ name = "LEDC_LS_SIG7", id = 86 },
|
|
{ name = "RMT_SIG_0", id = 87 },
|
|
{ name = "RMT_SIG_1", id = 88 },
|
|
{ name = "RMT_SIG_2", id = 89 },
|
|
{ name = "RMT_SIG_3", id = 90 },
|
|
{ name = "RMT_SIG_4", id = 91 },
|
|
{ name = "RMT_SIG_5", id = 92 },
|
|
{ name = "RMT_SIG_6", id = 93 },
|
|
{ name = "RMT_SIG_7", id = 94 },
|
|
{ name = "I2CEXT1_SCL", id = 95 },
|
|
{ name = "I2CEXT1_SDA", id = 96 },
|
|
{ name = "HOST_CCMD_OD_PULLUP_EN_N", id = 97 },
|
|
{ name = "HOST_RST_N_1", id = 98 },
|
|
{ name = "HOST_RST_N_2", id = 99 },
|
|
{ name = "GPIO_SD0", id = 100 },
|
|
{ name = "GPIO_SD1", id = 101 },
|
|
{ name = "GPIO_SD2", id = 102 },
|
|
{ name = "GPIO_SD3", id = 103 },
|
|
{ name = "GPIO_SD4", id = 104 },
|
|
{ name = "GPIO_SD5", id = 105 },
|
|
{ name = "GPIO_SD6", id = 106 },
|
|
{ name = "GPIO_SD7", id = 107 },
|
|
{ name = "PWM1_0A", id = 108 },
|
|
{ name = "PWM1_0B", id = 109 },
|
|
{ name = "PWM1_1A", id = 110 },
|
|
{ name = "PWM1_1B", id = 111 },
|
|
{ name = "PWM1_2A", id = 112 },
|
|
{ name = "PWM1_2B", id = 113 },
|
|
{ name = "TWAI_TX", id = 123 },
|
|
{ name = "TWAI_BUS_OFF_ON", id = 124 },
|
|
{ name = "TWAI_CLKOUT", id = 125 },
|
|
{ name = "I2S0O_DATA_0", id = 140 },
|
|
{ name = "I2S0O_DATA_1", id = 141 },
|
|
{ name = "I2S0O_DATA_2", id = 142 },
|
|
{ name = "I2S0O_DATA_3", id = 143 },
|
|
{ name = "I2S0O_DATA_4", id = 144 },
|
|
{ name = "I2S0O_DATA_5", id = 145 },
|
|
{ name = "I2S0O_DATA_6", id = 146 },
|
|
{ name = "I2S0O_DATA_7", id = 147 },
|
|
{ name = "I2S0O_DATA_8", id = 148 },
|
|
{ name = "I2S0O_DATA_9", id = 149 },
|
|
{ name = "I2S0O_DATA_10", id = 150 },
|
|
{ name = "I2S0O_DATA_11", id = 151 },
|
|
{ name = "I2S0O_DATA_12", id = 152 },
|
|
{ name = "I2S0O_DATA_13", id = 153 },
|
|
{ name = "I2S0O_DATA_14", id = 154 },
|
|
{ name = "I2S0O_DATA_15", id = 155 },
|
|
{ name = "I2S0O_DATA_16", id = 156 },
|
|
{ name = "I2S0O_DATA_17", id = 157 },
|
|
{ name = "I2S0O_DATA_18", id = 158 },
|
|
{ name = "I2S0O_DATA_19", id = 159 },
|
|
{ name = "I2S0O_DATA_20", id = 160 },
|
|
{ name = "I2S0O_DATA_21", id = 161 },
|
|
{ name = "I2S0O_DATA_22", id = 162 },
|
|
{ name = "I2S0O_DATA_23", id = 163 },
|
|
{ name = "I2S1I_BCK", id = 164 },
|
|
{ name = "I2S1I_WS", id = 165 },
|
|
{ name = "I2S1O_DATA_0", id = 166 },
|
|
{ name = "I2S1O_DATA_1", id = 167 },
|
|
{ name = "I2S1O_DATA_2", id = 168 },
|
|
{ name = "I2S1O_DATA_3", id = 169 },
|
|
{ name = "I2S1O_DATA_4", id = 170 },
|
|
{ name = "I2S1O_DATA_5", id = 171 },
|
|
{ name = "I2S1O_DATA_6", id = 172 },
|
|
{ name = "I2S1O_DATA_7", id = 173 },
|
|
{ name = "I2S1O_DATA_8", id = 174 },
|
|
{ name = "I2S1O_DATA_9", id = 175 },
|
|
{ name = "I2S1O_DATA_10", id = 176 },
|
|
{ name = "I2S1O_DATA_11", id = 177 },
|
|
{ name = "I2S1O_DATA_12", id = 178 },
|
|
{ name = "I2S1O_DATA_13", id = 179 },
|
|
{ name = "I2S1O_DATA_14", id = 180 },
|
|
{ name = "I2S1O_DATA_15", id = 181 },
|
|
{ name = "I2S1O_DATA_16", id = 182 },
|
|
{ name = "I2S1O_DATA_17", id = 183 },
|
|
{ name = "I2S1O_DATA_18", id = 184 },
|
|
{ name = "I2S1O_DATA_19", id = 185 },
|
|
{ name = "I2S1O_DATA_20", id = 186 },
|
|
{ name = "I2S1O_DATA_21", id = 187 },
|
|
{ name = "I2S1O_DATA_22", id = 188 },
|
|
{ name = "I2S1O_DATA_23", id = 189 },
|
|
{ name = "U2TXD", id = 198 },
|
|
{ name = "U2RTS", id = 199 },
|
|
{ name = "EMAC_MDC", id = 200 },
|
|
{ name = "EMAC_MDO", id = 201 },
|
|
{ name = "EMAC_CRS", id = 202 },
|
|
{ name = "EMAC_COL", id = 203 },
|
|
{ name = "BT_AUDIO0RQ", id = 204 },
|
|
{ name = "BT_AUDIO1RQ", id = 205 },
|
|
{ name = "BT_AUDIO2RQ", id = 206 },
|
|
{ name = "BLE_AUDIO0RQ", id = 207 },
|
|
{ name = "BLE_AUDIO1RQ", id = 208 },
|
|
{ name = "BLE_AUDIO2RQ", id = 209 },
|
|
{ name = "PCMFSYNC", id = 210 },
|
|
{ name = "PCMCLK", id = 211 },
|
|
{ name = "PCMDOUT", id = 212 },
|
|
{ name = "BLE_AUDIO_SYNC0_P", id = 213 },
|
|
{ name = "BLE_AUDIO_SYNC1_P", id = 214 },
|
|
{ name = "BLE_AUDIO_SYNC2_P", id = 215 },
|
|
{ name = "ANT_SEL0", id = 216 },
|
|
{ name = "ANT_SEL1", id = 217 },
|
|
{ name = "ANT_SEL2", id = 218 },
|
|
{ name = "ANT_SEL3", id = 219 },
|
|
{ name = "ANT_SEL4", id = 220 },
|
|
{ name = "ANT_SEL5", id = 221 },
|
|
{ name = "ANT_SEL6", id = 222 },
|
|
{ name = "ANT_SEL7", id = 223 },
|
|
{ name = "SIGNAL_224", id = 224 },
|
|
{ name = "SIGNAL_225", id = 225 },
|
|
{ name = "SIGNAL_226", id = 226 },
|
|
{ name = "SIGNAL_227", id = 227 },
|
|
{ name = "SIGNAL_228", id = 228 },
|
|
{ name = "GPIO", id = 256 },
|
|
|
|
{ name = "CLK_OUT1" },
|
|
{ name = "CLK_OUT2" },
|
|
{ name = "CLK_OUT3" },
|
|
{ name = "SD_CLK" },
|
|
{ name = "SD_CMD" },
|
|
{ name = "SD_DATA0" },
|
|
{ name = "SD_DATA1" },
|
|
{ name = "SD_DATA2" },
|
|
{ name = "SD_DATA3" },
|
|
{ name = "HS1_CLK" },
|
|
{ name = "HS1_CMD" },
|
|
{ name = "HS1_DATA0" },
|
|
{ name = "HS1_DATA1" },
|
|
{ name = "HS1_DATA2" },
|
|
{ name = "HS1_DATA3" },
|
|
{ name = "HS1_DATA4" },
|
|
{ name = "HS1_DATA5" },
|
|
{ name = "HS1_DATA6" },
|
|
{ name = "HS1_DATA7" },
|
|
{ name = "HS1_STROBE" },
|
|
{ name = "HS2_CLK" },
|
|
{ name = "HS2_CMD" },
|
|
{ name = "HS2_DATA0" },
|
|
{ name = "HS2_DATA1" },
|
|
{ name = "HS2_DATA2" },
|
|
{ name = "HS2_DATA3" },
|
|
|
|
{ name = "EMAC_TX_CLK" },
|
|
{ name = "EMAC_TX_ER" },
|
|
{ name = "EMAC_TXD3" },
|
|
{ name = "EMAC_RX_ER" },
|
|
{ name = "EMAC_TXD2" },
|
|
{ name = "EMAC_CLK_OUT" },
|
|
{ name = "EMAC_CLK_180" },
|
|
{ name = "EMAC_TXD0" },
|
|
{ name = "EMAC_TX_EN" },
|
|
{ name = "EMAC_TXD1" },
|
|
|
|
{ name = "MTDO" },
|
|
]
|
|
|
|
[device.i2c_master]
|
|
support_status = "supported"
|
|
instances = [
|
|
{ name = "i2c0", sys_instance = "I2cExt0", scl = "I2CEXT0_SCL", sda = "I2CEXT0_SDA" },
|
|
{ name = "i2c1", sys_instance = "I2cExt1", scl = "I2CEXT1_SCL", sda = "I2CEXT1_SDA" },
|
|
]
|
|
ll_intr_mask = 0x3ffff
|
|
fifo_size = 32
|
|
max_bus_timeout = 0xFFFFF
|
|
separate_filter_config_registers = true
|
|
i2c0_data_register_ahb_address = 0x6001301c
|
|
|
|
[device.i2c_slave]
|
|
support_status = "not_supported"
|
|
|
|
[device.interrupts]
|
|
support_status = "partial"
|
|
status_registers = 3
|
|
|
|
[device.rmt]
|
|
support_status = "partial"
|
|
ram_start = 0x3ff56800
|
|
channel_ram_size = 64
|
|
|
|
[device.rsa]
|
|
support_status = "partial"
|
|
exponentiation = { increment = 512, max = 4096 }
|
|
multiplication = { increment = 512, max = 2048 }
|
|
|
|
[device.sha]
|
|
support_status = "partial"
|
|
algo = ["SHA-1", "SHA-256", "SHA-384", "SHA-512"]
|
|
|
|
[device.spi_master]
|
|
support_status = "supported"
|
|
instances = [
|
|
{ name = "spi2", sys_instance = "Spi2", sclk = "HSPICLK", sio = ["HSPID", "HSPIQ", "HSPIWP", "HSPIHD"], cs = ["HSPICS0", "HSPICS1", "HSPICS2"] },
|
|
{ name = "spi3", sys_instance = "Spi3", sclk = "VSPICLK", sio = ["VSPID", "VSPIQ", "VSPIWP", "VSPIHD"], cs = ["VSPICS0", "VSPICS1", "VSPICS2"] },
|
|
]
|
|
|
|
[device.spi_slave]
|
|
support_status = "partial"
|
|
instances = [
|
|
{ name = "spi2", sys_instance = "Spi2", sclk = "HSPICLK", mosi = "HSPID", miso = "HSPIQ", cs = "HSPICS0" },
|
|
{ name = "spi3", sys_instance = "Spi3", sclk = "VSPICLK", mosi = "VSPID", miso = "VSPIQ", cs = "VSPICS0" },
|
|
]
|
|
|
|
[device.timergroup]
|
|
support_status = "partial"
|
|
timg_has_timer1 = true
|
|
timg_has_divcnt_rst = false
|
|
instances = [{ name = "timg0" }, { name = "timg1" }]
|
|
|
|
[device.uart]
|
|
support_status = "supported"
|
|
instances = [
|
|
{ name = "uart0", sys_instance = "Uart0", tx = "U0TXD", rx = "U0RXD", cts = "U0CTS", rts = "U0RTS" },
|
|
{ name = "uart1", sys_instance = "Uart1", tx = "U1TXD", rx = "U1RXD", cts = "U1CTS", rts = "U1RTS" },
|
|
{ name = "uart2", sys_instance = "Uart2", tx = "U2TXD", rx = "U2RXD", cts = "U2CTS", rts = "U2RTS" },
|
|
]
|
|
ram_size = 128
|
|
|
|
[device.ethernet]
|
|
support_status = "not_supported"
|
|
|
|
[device.camera]
|
|
support_status = "not_supported"
|
|
[device.rgb_display]
|
|
support_status = "partial"
|
|
|
|
[device.rng]
|
|
support_status = "partial"
|
|
apb_cycle_wait_num = 16 # TODO
|
|
|
|
# Other drivers which are partially supported but have no other configuration:
|
|
|
|
## Interfaces
|
|
[device.i2s]
|
|
[device.ledc]
|
|
[device.mcpwm]
|
|
[device.pcnt]
|
|
[device.sd_host]
|
|
[device.sd_slave]
|
|
[device.touch]
|
|
[device.twai]
|
|
|
|
## Miscellaneous
|
|
[device.dma]
|
|
[device.io_mux]
|
|
[device.psram]
|
|
[device.temp_sensor]
|
|
[device.sleep]
|
|
|
|
[device.ulp_fsm]
|
|
|
|
## Radio
|
|
[device.wifi]
|
|
[device.bt]
|