openbcm

Git mirror of https://github.com/Broadcom-Network-Switching-Software/OpenBCM
git clone git://git.finwo.net/mirror/broadcom/openbcm
Log | Files | Refs | README

synce.h (2366B)


      1 /** \file bcm_int/dnx/synce/synce.h
      2  *
      3  * Functions for handling synce init sequences.
      4  */
      5 /*
      6  * This license is set out in https://raw.githubusercontent.com/Broadcom-Network-Switching-Software/OpenBCM/master/Legal/LICENSE file.
      7  * 
      8  * Copyright 2007-2020 Broadcom Inc. All rights reserved.
      9  */
     10 
     11 #ifndef _SYNCE_INCLUDED__
     12 /*
     13  * {
     14  */
     15 
     16 #define _SYNCE_INCLUDED__
     17 
     18 /*************
     19  * INCLUDES  *
     20  */
     21 /*
     22  * {
     23  */
     24 
     25 /*
     26  * }
     27  */
     28 
     29 /*************
     30  * DEFINES   *
     31  */
     32 /*
     33  * {
     34  */
     35 
     36 /*
     37  * }
     38  */
     39 /*************
     40  * MACROS    *
     41  */
     42 /*
     43  * {
     44  */
     45 /*
     46  * }
     47  */
     48 
     49 /*************
     50  * ENUMS     *
     51  */
     52 /*
     53  * {
     54  */
     55 
     56 /*
     57  * }
     58  */
     59 
     60 /*************
     61  * TYPE DEFS *
     62  */
     63 /*
     64  * {
     65  */
     66 typedef enum
     67 {
     68     /**
     69      *  Synchronous Ethernet signal - differential (two signals
     70      *  per clock) recovered clock, two differential outputs
     71      */
     72     DNX_NIF_SYNCE_MODE_TWO_DIFF_CLK = 0,
     73     /**
     74      *  Synchronous Ethernet signal - recovered clock accompanied
     75      *  by a valid indication, two clk+valid outputs
     76      */
     77     DNX_NIF_SYNCE_MODE_TWO_CLK_AND_VALID = 1,
     78     /**
     79      *  Number of types in ARAD_NIF_SYNCE_MODE
     80      */
     81     DNX_NIF_SYNCE_NOF_MODES = 2
     82 } SOC_DNX_PLL_NIF_SYNCE_MODE;
     83 
     84 typedef enum
     85 {
     86     /**
     87      *  SyncE reference clock PM divider 1
     88      */
     89     DNX_NIF_SYNCE_PM_DIV_1 = 0,
     90     /**
     91      *  SyncE reference clock PM divider 7
     92      */
     93     DNX_NIF_SYNCE_PM_DIV_7 = 1,
     94     /**
     95      *  SyncE reference clock PM divider 11
     96      */
     97     DNX_NIF_SYNCE_PM_DIV_11 = 2,
     98 
     99     DNX_NIF_SYNCE_NOF_PM_DIVIDERS = 3
    100 } DNX_SYNCE_PM_DIVIDER;
    101 /*
    102  * }
    103  */
    104 
    105 /*************
    106  * GLOBALS   *
    107  */
    108 /*
    109  * {
    110  */
    111 /*
    112  * }
    113  */
    114 /*************
    115  * FUNCTIONS *
    116  */
    117 /*
    118  * {
    119  */
    120 shr_error_e dnx_synce_init(
    121     int unit);
    122 
    123 shr_error_e dnx_synce_deinit(
    124     int unit);
    125 
    126 int dnx_synce_port_set(
    127     int unit,
    128     uint32 synce_index,
    129     bcm_port_t port);
    130 
    131 int dnx_synce_port_get(
    132     int unit,
    133     uint32 synce_index,
    134     bcm_port_t * port);
    135 
    136 int dnx_synce_divider_set(
    137     int unit,
    138     uint32 synce_index,
    139     int divider);
    140 
    141 int dnx_synce_divider_get(
    142     int unit,
    143     uint32 synce_index,
    144     int *divider);
    145 
    146 int dnx_nif_synce_enable_get(
    147     int unit,
    148     int core,
    149     int *enable);
    150 
    151 int dnx_nif_synce_enable_set(
    152     int unit,
    153     int core,
    154     int enable);
    155 
    156 int dnx_nif_synce_ref_clk_div_get(
    157     int unit,
    158     bcm_port_t port,
    159     int *pm_synce_div,
    160     int *nif_synce_div);
    161 /*
    162  * }
    163  */
    164 #endif /* __SYNCE_INCLUDED__ */