mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-28 11:18:45 +07:00
97fb5e8d9b
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 and only version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 294 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Reviewed-by: Alexios Zavras <alexios.zavras@intel.com> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141900.825281744@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
52 lines
1.5 KiB
C
52 lines
1.5 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
|
|
*/
|
|
|
|
#ifndef _EMAC_SGMII_H_
|
|
#define _EMAC_SGMII_H_
|
|
|
|
struct emac_adapter;
|
|
struct platform_device;
|
|
|
|
/** emac_sgmii - internal emac phy
|
|
* @init initialization function
|
|
* @open called when the driver is opened
|
|
* @close called when the driver is closed
|
|
* @link_change called when the link state changes
|
|
*/
|
|
struct sgmii_ops {
|
|
int (*init)(struct emac_adapter *adpt);
|
|
int (*open)(struct emac_adapter *adpt);
|
|
void (*close)(struct emac_adapter *adpt);
|
|
int (*link_change)(struct emac_adapter *adpt, bool link_state);
|
|
void (*reset)(struct emac_adapter *adpt);
|
|
};
|
|
|
|
/** emac_sgmii - internal emac phy
|
|
* @base base address
|
|
* @digital per-lane digital block
|
|
* @irq the interrupt number
|
|
* @decode_error_count reference count of consecutive decode errors
|
|
* @sgmii_ops sgmii ops
|
|
*/
|
|
struct emac_sgmii {
|
|
void __iomem *base;
|
|
void __iomem *digital;
|
|
unsigned int irq;
|
|
atomic_t decode_error_count;
|
|
struct sgmii_ops *sgmii_ops;
|
|
};
|
|
|
|
int emac_sgmii_config(struct platform_device *pdev, struct emac_adapter *adpt);
|
|
|
|
int emac_sgmii_init_fsm9900(struct emac_adapter *adpt);
|
|
int emac_sgmii_init_qdf2432(struct emac_adapter *adpt);
|
|
int emac_sgmii_init_qdf2400(struct emac_adapter *adpt);
|
|
|
|
int emac_sgmii_init(struct emac_adapter *adpt);
|
|
int emac_sgmii_open(struct emac_adapter *adpt);
|
|
void emac_sgmii_close(struct emac_adapter *adpt);
|
|
int emac_sgmii_link_change(struct emac_adapter *adpt, bool link_state);
|
|
void emac_sgmii_reset(struct emac_adapter *adpt);
|
|
#endif
|