@@ -148,7 +148,27 @@ void ETHClass::setTaskStackSize(size_t size) {
148
148
_task_stack_size = size;
149
149
}
150
150
151
- #if (CONFIG_ETH_USE_ESP32_EMAC && !defined(CONFIG_IDF_TARGET_ESP32P4))
151
+ #if CONFIG_ETH_USE_ESP32_EMAC
152
+ #if CONFIG_IDF_TARGET_ESP32
153
+ #define ETH_EMAC_DEFAULT_CONFIG () ETH_ESP32_EMAC_DEFAULT_CONFIG()
154
+ #elif CONFIG_IDF_TARGET_ESP32P4
155
+ #define ETH_EMAC_DEFAULT_CONFIG () \
156
+ { \
157
+ .smi_gpio = {.mdc_num = 31 , .mdio_num = 52 }, .interface = EMAC_DATA_INTERFACE_RMII, \
158
+ .clock_config = {.rmii = {.clock_mode = EMAC_CLK_EXT_IN, .clock_gpio = (emac_rmii_clock_gpio_t )ETH_RMII_CLK}}, .dma_burst_len = ETH_DMA_BURST_LEN_32, \
159
+ .intr_priority = 0 , \
160
+ .emac_dataif_gpio = \
161
+ {.rmii = \
162
+ {.tx_en_num = ETH_RMII_TX_EN, \
163
+ .txd0_num = ETH_RMII_TX0, \
164
+ .txd1_num = ETH_RMII_TX1, \
165
+ .crs_dv_num = ETH_RMII_CRS_DV, \
166
+ .rxd0_num = ETH_RMII_RX0, \
167
+ .rxd1_num = ETH_RMII_RX1_EN}}, \
168
+ .clock_config_out_in = {.rmii = {.clock_mode = EMAC_CLK_EXT_IN, .clock_gpio = (emac_rmii_clock_gpio_t ) - 1 }}, \
169
+ }
170
+ #endif
171
+
152
172
bool ETHClass::begin (eth_phy_type_t type, int32_t phy_addr, int mdc, int mdio, int power, eth_clock_mode_t clock_mode) {
153
173
esp_err_t ret = ESP_OK;
154
174
if (_eth_index > 2 ) {
@@ -177,12 +197,16 @@ bool ETHClass::begin(eth_phy_type_t type, int32_t phy_addr, int mdc, int mdio, i
177
197
#define DEFAULT_RMII_CLK_GPIO (emac_rmii_clock_gpio_t )(CONFIG_ETH_RMII_CLK_IN_GPIO)
178
198
#endif
179
199
180
- eth_esp32_emac_config_t mac_config = ETH_ESP32_EMAC_DEFAULT_CONFIG ();
200
+ eth_esp32_emac_config_t mac_config = ETH_EMAC_DEFAULT_CONFIG ();
201
+ #if CONFIG_IDF_TARGET_ESP32
181
202
mac_config.clock_config .rmii .clock_mode = (clock_mode) ? EMAC_CLK_OUT : EMAC_CLK_EXT_IN;
182
203
mac_config.clock_config .rmii .clock_gpio = (1 == clock_mode) ? EMAC_APPL_CLK_OUT_GPIO
183
204
: (2 == clock_mode) ? EMAC_CLK_OUT_GPIO
184
205
: (3 == clock_mode) ? EMAC_CLK_OUT_180_GPIO
185
206
: EMAC_CLK_IN_GPIO;
207
+ #elif CONFIG_IDF_TARGET_ESP32P4
208
+ mac_config.clock_config .rmii .clock_mode = (emac_rmii_clock_mode_t )clock_mode;
209
+ #endif
186
210
mac_config.smi_gpio .mdc_num = digitalPinToGPIONumber (mdc);
187
211
mac_config.smi_gpio .mdio_num = digitalPinToGPIONumber (mdio);
188
212
0 commit comments