/* 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; unsignedint 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
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.