Files
esp-idf/components/esp_hal_emac/esp32p4/emac_clk.c
T
Ondrej Kosta edbf8856ae feat(esp_eth): add ESP32-S31 EMAC support
Add internal EMAC support for ESP32-S31, including:
- HAL/LL layer: emac_ll, emac_hal, emac_clk, emac_periph for S31
- SOC layer: register structs, soc_caps, peripherals linker script,
  interrupt definitions
- MAC driver: clock source configuration via Kconfig, GPIO/DMA
  adaptations, PHY register defs for clause-45 MDIO
- Ethernet examples updated for S31 (basic, build-test-rules, PTP
  readme)
- Refactored existing ESP32/ESP32-P4 EMAC code for shared patterns
  (emac_clk extraction, struct alignment, periph descriptor cleanup)
2026-05-21 15:59:42 +08:00

34 lines
917 B
C

/*
* SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "hal/emac_clk.h"
/* MPLL VCO frequency step for targets that program MPLL from the 40 MHz XTAL (see clk_ll_mpll_set_*). */
#define EMAC_MPLL_GRID_STEP_HZ (20000000)
#define EMAC_MPLL_GRID_MAX_STEPS (32)
static const emac_clk_info_t emac_clk_mpll = {
.clk_id = SOC_MOD_CLK_MPLL,
.step_hz = EMAC_MPLL_GRID_STEP_HZ,
.max_steps = EMAC_MPLL_GRID_MAX_STEPS,
.clk_name = "MPLL",
};
const emac_clk_internal_info_t emac_clk_internal = {
.clk_count = 0,
.clk_src = NULL,
};
const emac_clk_info_t *emac_clk_phy_ref_src[] = {
&emac_clk_mpll,
};
const emac_clk_phy_ref_info_t emac_clk_phy_ref = {
.derived_clk_id = SOC_MOD_CLK_PLL_F50M,
.clk_count = sizeof(emac_clk_phy_ref_src) / sizeof(emac_clk_phy_ref_src[0]),
.clk_src = emac_clk_phy_ref_src,
};