root/drivers/net/ethernet/qualcomm/emac/emac-sgmii.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
   3  */
   4 
   5 #ifndef _EMAC_SGMII_H_
   6 #define _EMAC_SGMII_H_
   7 
   8 struct emac_adapter;
   9 struct platform_device;
  10 
  11 /** emac_sgmii - internal emac phy
  12  * @init initialization function
  13  * @open called when the driver is opened
  14  * @close called when the driver is closed
  15  * @link_change called when the link state changes
  16  */
  17 struct sgmii_ops {
  18         int (*init)(struct emac_adapter *adpt);
  19         int (*open)(struct emac_adapter *adpt);
  20         void (*close)(struct emac_adapter *adpt);
  21         int (*link_change)(struct emac_adapter *adpt, bool link_state);
  22         void (*reset)(struct emac_adapter *adpt);
  23 };
  24 
  25 /** emac_sgmii - internal emac phy
  26  * @base base address
  27  * @digital per-lane digital block
  28  * @irq the interrupt number
  29  * @decode_error_count reference count of consecutive decode errors
  30  * @sgmii_ops sgmii ops
  31  */
  32 struct emac_sgmii {
  33         void __iomem            *base;
  34         void __iomem            *digital;
  35         unsigned int            irq;
  36         atomic_t                decode_error_count;
  37         struct  sgmii_ops       *sgmii_ops;
  38 };
  39 
  40 int emac_sgmii_config(struct platform_device *pdev, struct emac_adapter *adpt);
  41 
  42 int emac_sgmii_init_fsm9900(struct emac_adapter *adpt);
  43 int emac_sgmii_init_qdf2432(struct emac_adapter *adpt);
  44 int emac_sgmii_init_qdf2400(struct emac_adapter *adpt);
  45 
  46 int emac_sgmii_init(struct emac_adapter *adpt);
  47 int emac_sgmii_open(struct emac_adapter *adpt);
  48 void emac_sgmii_close(struct emac_adapter *adpt);
  49 int emac_sgmii_link_change(struct emac_adapter *adpt, bool link_state);
  50 void emac_sgmii_reset(struct emac_adapter *adpt);
  51 #endif

/* [<][>][^][v][top][bottom][index][help] */