feat(esp_eth): added PTP EMAC PPS0 support on ESP32P4v3

feat(esp_eth): added options to configure PTP module

feat(esp_eth): removed all PTP ioctl commands and created API
This commit is contained in:
Ondrej Kosta
2026-01-13 12:16:21 +01:00
parent b685c0e733
commit b27da510ff
23 changed files with 544 additions and 130 deletions
@@ -670,6 +670,11 @@ static inline void emac_ll_receive_poll_demand(emac_dma_dev_t *dma_regs, uint32_
dma_regs->dmarxpolldemand = val;
}
static inline uint32_t emac_ll_get_hw_feat(emac_dma_dev_t *dma_regs)
{
return dma_regs->hwfeat;
}
/*************** End of dma regs operation *********************/
/************** Start of ptp regs operation ********************/
@@ -699,6 +704,11 @@ static inline void emac_ll_ts_ptp_snap_type_sel(emac_ptp_dev_t *ptp_regs, uint8_
ptp_regs->timestamp_ctrl.sel_snap_type = sel;
}
static inline void emac_ll_ts_mac_addr_filter_enable(emac_ptp_dev_t *ptp_regs, bool enable)
{
ptp_regs->timestamp_ctrl.en_mac_addr_filter = enable;
}
static inline void emac_ll_ts_ptp_snap_master_only_enable(emac_ptp_dev_t *ptp_regs, bool enable)
{
ptp_regs->timestamp_ctrl.en_snap_msg_relevant_master = enable;
@@ -840,6 +850,11 @@ static inline void emac_ll_ts_target_int_trig_enable(emac_ptp_dev_t *ptp_regs)
ptp_regs->timestamp_ctrl.en_ts_int_trig = 1;
}
static inline void emac_ll_set_pps0_out_freq(emac_ptp_dev_t *ptp_regs, uint8_t freq_select)
{
ptp_regs->pps_ctrl.pps_cmd0 = freq_select;
}
/************** End of ptp regs operation ********************/
static inline soc_module_clk_t emac_ll_get_csr_clk_src(void)