blob: 6e86261e4dae4b58d518c84298f513eb674fb029 [file] [log] [blame]
/*
* Copyright (c) 2018, The Linux Foundation. All rights reserved.
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all copies.
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/**
* @defgroup
* @{
*/
#include "sw.h"
#include "adpt.h"
#include "hsl.h"
#include "hsl_dev.h"
#include "hsl_port_prop.h"
#include "hsl_phy.h"
sw_error_t
adpt_hppe_ptp_config_set(a_uint32_t dev_id, a_uint32_t port_id, fal_ptp_config_t *config)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(config);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_config_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_config_set(dev_id, phy_id, config);
return rv;
}
sw_error_t
adpt_hppe_ptp_config_get(a_uint32_t dev_id, a_uint32_t port_id, fal_ptp_config_t *config)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(config);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_config_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_config_get(dev_id, phy_id, config);
return rv;
}
sw_error_t
adpt_hppe_ptp_reference_clock_set(a_uint32_t dev_id, a_uint32_t port_id, fal_ptp_reference_clock_t ref_clock)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_reference_clock_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_reference_clock_set(dev_id, phy_id, ref_clock);
return rv;
}
sw_error_t
adpt_hppe_ptp_reference_clock_get(a_uint32_t dev_id, a_uint32_t port_id, fal_ptp_reference_clock_t *ref_clock)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(ref_clock);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_reference_clock_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_reference_clock_get(dev_id, phy_id, ref_clock);
return rv;
}
sw_error_t
adpt_hppe_ptp_rx_timestamp_mode_set(a_uint32_t dev_id,
a_uint32_t port_id,
fal_ptp_rx_timestamp_mode_t ts_mode)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_rx_timestamp_mode_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_rx_timestamp_mode_set(dev_id, phy_id, ts_mode);
return rv;
}
sw_error_t
adpt_hppe_ptp_rx_timestamp_mode_get(a_uint32_t dev_id,
a_uint32_t port_id,
fal_ptp_rx_timestamp_mode_t *ts_mode)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(ts_mode);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_rx_timestamp_mode_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_rx_timestamp_mode_get(dev_id, phy_id, ts_mode);
return rv;
}
sw_error_t
adpt_hppe_ptp_timestamp_get(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_direction_t direction,
fal_ptp_pkt_info_t *pkt_info,
fal_ptp_time_t *time)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(time);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_timestamp_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_timestamp_get(dev_id, phy_id, direction, pkt_info, time);
return rv;
}
sw_error_t
adpt_hppe_ptp_pkt_timestamp_set(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_time_t *time)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(time);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_pkt_timestamp_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_pkt_timestamp_set(dev_id, phy_id, time);
return rv;
}
sw_error_t
adpt_hppe_ptp_pkt_timestamp_get(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_time_t *time)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(time);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_pkt_timestamp_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_pkt_timestamp_get(dev_id, phy_id, time);
return rv;
}
sw_error_t
adpt_hppe_ptp_grandmaster_mode_set(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_grandmaster_mode_t *gm_mode)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(gm_mode);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_grandmaster_mode_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_grandmaster_mode_set(dev_id, phy_id, gm_mode);
return rv;
}
sw_error_t
adpt_hppe_ptp_grandmaster_mode_get(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_grandmaster_mode_t *gm_mode)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(gm_mode);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_grandmaster_mode_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_grandmaster_mode_get(dev_id, phy_id, gm_mode);
return rv;
}
sw_error_t
adpt_hppe_ptp_rtc_time_get(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_time_t *time)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(time);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_rtc_time_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_rtc_time_get(dev_id, phy_id, time);
return rv;
}
sw_error_t
adpt_hppe_ptp_rtc_time_set(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_time_t *time)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(time);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_rtc_time_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_rtc_time_set(dev_id, phy_id, time);
return rv;
}
sw_error_t
adpt_hppe_ptp_rtc_time_clear(a_uint32_t dev_id, a_uint32_t port_id)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_rtc_time_clear)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_rtc_time_clear(dev_id, phy_id);
return rv;
}
sw_error_t
adpt_hppe_ptp_rtc_adjtime_set(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_time_t *time)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(time);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_rtc_adjtime_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_rtc_adjtime_set(dev_id, phy_id, time);
return rv;
}
sw_error_t
adpt_hppe_ptp_rtc_adjfreq_set(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_time_t *time)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(time);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_rtc_adjfreq_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_rtc_adjfreq_set(dev_id, phy_id, time);
return rv;
}
sw_error_t
adpt_hppe_ptp_rtc_adjfreq_get(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_time_t *time)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(time);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_rtc_adjfreq_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_rtc_adjfreq_get(dev_id, phy_id, time);
return rv;
}
sw_error_t
adpt_hppe_ptp_link_delay_set(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_time_t *time)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(time);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_link_delay_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_link_delay_set(dev_id, phy_id, time);
return rv;
}
sw_error_t
adpt_hppe_ptp_link_delay_get(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_time_t *time)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(time);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_link_delay_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_link_delay_get(dev_id, phy_id, time);
return rv;
}
sw_error_t
adpt_hppe_ptp_security_set(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_security_t *sec)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(sec);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_security_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_security_set(dev_id, phy_id, sec);
return rv;
}
sw_error_t
adpt_hppe_ptp_security_get(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_security_t *sec)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(sec);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_security_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_security_get(dev_id, phy_id, sec);
return rv;
}
sw_error_t
adpt_hppe_ptp_pps_signal_control_set(a_uint32_t dev_id,
a_uint32_t port_id,
fal_ptp_pps_signal_control_t *sig_control)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(sig_control);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_pps_signal_control_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_pps_signal_control_set(dev_id, phy_id, sig_control);
return rv;
}
sw_error_t
adpt_hppe_ptp_pps_signal_control_get(a_uint32_t dev_id,
a_uint32_t port_id,
fal_ptp_pps_signal_control_t *sig_control)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(sig_control);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_pps_signal_control_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_pps_signal_control_get(dev_id, phy_id, sig_control);
return rv;
}
sw_error_t
adpt_hppe_ptp_rx_crc_recalc_enable(a_uint32_t dev_id, a_uint32_t port_id,
a_bool_t status)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_rx_crc_recalc_enable)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_rx_crc_recalc_enable(dev_id, phy_id, status);
return rv;
}
sw_error_t
adpt_hppe_ptp_rx_crc_recalc_status_get(a_uint32_t dev_id,
a_uint32_t port_id, a_bool_t *status)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(status);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_rx_crc_recalc_status_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_rx_crc_recalc_status_get(dev_id, phy_id, status);
return rv;
}
sw_error_t
adpt_hppe_ptp_asym_correction_set(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_asym_correction_t *asym_cf)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(asym_cf);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_asym_correction_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_asym_correction_set(dev_id, phy_id, asym_cf);
return rv;
}
sw_error_t
adpt_hppe_ptp_asym_correction_get(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_asym_correction_t* asym_cf)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(asym_cf);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_asym_correction_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_asym_correction_get(dev_id, phy_id, asym_cf);
return rv;
}
sw_error_t
adpt_hppe_ptp_output_waveform_set(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_output_waveform_t *waveform)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(waveform);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_output_waveform_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_output_waveform_set(dev_id, phy_id, waveform);
return rv;
}
sw_error_t
adpt_hppe_ptp_output_waveform_get(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_output_waveform_t *waveform)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(waveform);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_output_waveform_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_output_waveform_get(dev_id, phy_id, waveform);
return rv;
}
sw_error_t
adpt_hppe_ptp_rtc_time_snapshot_enable(a_uint32_t dev_id,
a_uint32_t port_id, a_bool_t status)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_rtc_time_snapshot_enable)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_rtc_time_snapshot_enable(dev_id, phy_id, status);
return rv;
}
sw_error_t
adpt_hppe_ptp_rtc_time_snapshot_status_get(a_uint32_t dev_id,
a_uint32_t port_id, a_bool_t *status)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(status);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_rtc_time_snapshot_status_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_rtc_time_snapshot_status_get(dev_id, phy_id, status);
return rv;
}
sw_error_t
adpt_hppe_ptp_increment_sync_from_clock_enable(a_uint32_t dev_id,
a_uint32_t port_id, a_bool_t status)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_increment_sync_from_clock_enable)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_increment_sync_from_clock_enable(dev_id, phy_id, status);
return rv;
}
sw_error_t
adpt_hppe_ptp_increment_sync_from_clock_status_get(a_uint32_t dev_id,
a_uint32_t port_id, a_bool_t *status)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(status);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_increment_sync_from_clock_status_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_increment_sync_from_clock_status_get(dev_id,
phy_id, status);
return rv;
}
sw_error_t
adpt_hppe_ptp_tod_uart_set(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_tod_uart_t *tod_uart)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(tod_uart);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_tod_uart_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_tod_uart_set(dev_id, phy_id, tod_uart);
return rv;
}
sw_error_t
adpt_hppe_ptp_tod_uart_get(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_tod_uart_t *tod_uart)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(tod_uart);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_tod_uart_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_tod_uart_get(dev_id, phy_id, tod_uart);
return rv;
}
sw_error_t
adpt_hppe_ptp_enhanced_timestamp_engine_set(a_uint32_t dev_id,
a_uint32_t port_id, fal_ptp_direction_t direction,
fal_ptp_enhanced_ts_engine_t *ts_engine)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(ts_engine);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_enhanced_timestamp_engine_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_enhanced_timestamp_engine_set(dev_id,
phy_id, direction, ts_engine);
return rv;
}
sw_error_t
adpt_hppe_ptp_enhanced_timestamp_engine_get(a_uint32_t dev_id,
a_uint32_t port_id, fal_ptp_direction_t direction,
fal_ptp_enhanced_ts_engine_t *ts_engine)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(ts_engine);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_enhanced_timestamp_engine_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_enhanced_timestamp_engine_get(dev_id,
phy_id, direction, ts_engine);
return rv;
}
sw_error_t
adpt_hppe_ptp_trigger_set(a_uint32_t dev_id, a_uint32_t port_id,
a_uint32_t trigger_id, fal_ptp_trigger_t *triger)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(triger);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_trigger_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_trigger_set(dev_id, phy_id, trigger_id, triger);
return rv;
}
sw_error_t
adpt_hppe_ptp_trigger_get(a_uint32_t dev_id, a_uint32_t port_id,
a_uint32_t trigger_id, fal_ptp_trigger_t *triger)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(triger);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_trigger_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_trigger_get(dev_id, phy_id, trigger_id, triger);
return rv;
}
sw_error_t
adpt_hppe_ptp_capture_set(a_uint32_t dev_id, a_uint32_t port_id,
a_uint32_t capture_id, fal_ptp_capture_t *capture)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(capture);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_capture_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_capture_set(dev_id, phy_id, capture_id, capture);
return rv;
}
sw_error_t
adpt_hppe_ptp_capture_get(a_uint32_t dev_id, a_uint32_t port_id,
a_uint32_t capture_id, fal_ptp_capture_t *capture)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(capture);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_capture_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_capture_get(dev_id, phy_id, capture_id, capture);
return rv;
}
sw_error_t
adpt_hppe_ptp_interrupt_set(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_interrupt_t *interrupt)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(interrupt);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_interrupt_set)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_interrupt_set(dev_id, phy_id, interrupt);
return rv;
}
sw_error_t
adpt_hppe_ptp_interrupt_get(a_uint32_t dev_id, a_uint32_t port_id,
fal_ptp_interrupt_t *interrupt)
{
sw_error_t rv = 0;
a_uint32_t phy_id = 0;
hsl_phy_ops_t *phy_drv;
ADPT_DEV_ID_CHECK(dev_id);
ADPT_NULL_POINT_CHECK(interrupt);
if (A_TRUE != hsl_port_prop_check (dev_id, port_id, HSL_PP_PHY))
{
return SW_BAD_PARAM;
}
SW_RTN_ON_NULL (phy_drv = hsl_phy_api_ops_get (dev_id, port_id));
if (NULL == phy_drv->phy_ptp_ops.phy_ptp_interrupt_get)
{
return SW_NOT_SUPPORTED;
}
rv = hsl_port_prop_get_phyid (dev_id, port_id, &phy_id);
SW_RTN_ON_ERROR (rv);
rv = phy_drv->phy_ptp_ops.phy_ptp_interrupt_get(dev_id, phy_id, interrupt);
return rv;
}
sw_error_t adpt_hppe_ptp_init(a_uint32_t dev_id)
{
adpt_api_t *p_adpt_api = NULL;
p_adpt_api = adpt_api_ptr_get(dev_id);
if(p_adpt_api == NULL)
{
return SW_FAIL;
}
p_adpt_api->adpt_ptp_config_set = adpt_hppe_ptp_config_set;
p_adpt_api->adpt_ptp_config_get = adpt_hppe_ptp_config_get;
p_adpt_api->adpt_ptp_reference_clock_set = adpt_hppe_ptp_reference_clock_set;
p_adpt_api->adpt_ptp_reference_clock_get = adpt_hppe_ptp_reference_clock_get;
p_adpt_api->adpt_ptp_rx_timestamp_mode_set = adpt_hppe_ptp_rx_timestamp_mode_set;
p_adpt_api->adpt_ptp_rx_timestamp_mode_get = adpt_hppe_ptp_rx_timestamp_mode_get;
p_adpt_api->adpt_ptp_timestamp_get = adpt_hppe_ptp_timestamp_get;
p_adpt_api->adpt_ptp_pkt_timestamp_set = adpt_hppe_ptp_pkt_timestamp_set;
p_adpt_api->adpt_ptp_pkt_timestamp_get = adpt_hppe_ptp_pkt_timestamp_get;
p_adpt_api->adpt_ptp_grandmaster_mode_set = adpt_hppe_ptp_grandmaster_mode_set;
p_adpt_api->adpt_ptp_grandmaster_mode_get = adpt_hppe_ptp_grandmaster_mode_get;
p_adpt_api->adpt_ptp_rtc_time_set = adpt_hppe_ptp_rtc_time_set;
p_adpt_api->adpt_ptp_rtc_time_get = adpt_hppe_ptp_rtc_time_get;
p_adpt_api->adpt_ptp_rtc_time_clear = adpt_hppe_ptp_rtc_time_clear;
p_adpt_api->adpt_ptp_rtc_adjtime_set = adpt_hppe_ptp_rtc_adjtime_set;
p_adpt_api->adpt_ptp_rtc_adjfreq_set = adpt_hppe_ptp_rtc_adjfreq_set;
p_adpt_api->adpt_ptp_rtc_adjfreq_get = adpt_hppe_ptp_rtc_adjfreq_get;
p_adpt_api->adpt_ptp_link_delay_set = adpt_hppe_ptp_link_delay_set;
p_adpt_api->adpt_ptp_link_delay_get = adpt_hppe_ptp_link_delay_get;
p_adpt_api->adpt_ptp_security_set = adpt_hppe_ptp_security_set;
p_adpt_api->adpt_ptp_security_get = adpt_hppe_ptp_security_get;
p_adpt_api->adpt_ptp_pps_signal_control_set = adpt_hppe_ptp_pps_signal_control_set;
p_adpt_api->adpt_ptp_pps_signal_control_get = adpt_hppe_ptp_pps_signal_control_get;
p_adpt_api->adpt_ptp_rx_crc_recalc_enable = adpt_hppe_ptp_rx_crc_recalc_enable;
p_adpt_api->adpt_ptp_rx_crc_recalc_status_get = adpt_hppe_ptp_rx_crc_recalc_status_get;
p_adpt_api->adpt_ptp_asym_correction_set = adpt_hppe_ptp_asym_correction_set;
p_adpt_api->adpt_ptp_asym_correction_get = adpt_hppe_ptp_asym_correction_get;
p_adpt_api->adpt_ptp_output_waveform_set = adpt_hppe_ptp_output_waveform_set;
p_adpt_api->adpt_ptp_output_waveform_get = adpt_hppe_ptp_output_waveform_get;
p_adpt_api->adpt_ptp_rtc_time_snapshot_enable = adpt_hppe_ptp_rtc_time_snapshot_enable;
p_adpt_api->adpt_ptp_tod_uart_set = adpt_hppe_ptp_tod_uart_set;
p_adpt_api->adpt_ptp_tod_uart_get = adpt_hppe_ptp_tod_uart_get;
p_adpt_api->adpt_ptp_trigger_set = adpt_hppe_ptp_trigger_set;
p_adpt_api->adpt_ptp_trigger_get = adpt_hppe_ptp_trigger_get;
p_adpt_api->adpt_ptp_capture_set = adpt_hppe_ptp_capture_set;
p_adpt_api->adpt_ptp_capture_get = adpt_hppe_ptp_capture_get;
p_adpt_api->adpt_ptp_interrupt_set = adpt_hppe_ptp_interrupt_set;
p_adpt_api->adpt_ptp_interrupt_get = adpt_hppe_ptp_interrupt_get;
p_adpt_api->adpt_ptp_rtc_time_snapshot_status_get =
adpt_hppe_ptp_rtc_time_snapshot_status_get;
p_adpt_api->adpt_ptp_increment_sync_from_clock_enable =
adpt_hppe_ptp_increment_sync_from_clock_enable;
p_adpt_api->adpt_ptp_increment_sync_from_clock_status_get =
adpt_hppe_ptp_increment_sync_from_clock_status_get;
p_adpt_api->adpt_ptp_enhanced_timestamp_engine_set =
adpt_hppe_ptp_enhanced_timestamp_engine_set;
p_adpt_api->adpt_ptp_enhanced_timestamp_engine_get =
adpt_hppe_ptp_enhanced_timestamp_engine_get;
return SW_OK;
}
/**
* @}
*/