mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.5 KiB
51 lines
1.5 KiB
/* 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
|
|
|