summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/freescale/fman/inc
diff options
context:
space:
mode:
authorMandy Lavi <mandy.lavi@freescale.com>2014-02-24 14:32:47 (GMT)
committerJose Rivera <German.Rivera@freescale.com>2014-03-05 13:53:11 (GMT)
commit71fec8f799d4c5e5f5b4d96bb7e0ef6ffe912aae (patch)
tree3c210018f308d92f17f59b5e386ce25cbfe79fb6 /drivers/net/ethernet/freescale/fman/inc
parenta9f6a725ff63688481c9394ae5ef55ba55439e17 (diff)
downloadlinux-fsl-qoriq-71fec8f799d4c5e5f5b4d96bb7e0ef6ffe912aae.tar.xz
fmd: add wake-on-lan support
Change-Id: I1898186679983caccc4e51a8674ee7909955e346 Signed-off-by: Mandy Lavi <mandy.lavi@freescale.com> Reviewed-on: http://git.am.freescale.net:8181/9076 Reviewed-by: Igal Liberman <Igal.Liberman@freescale.com> Reviewed-by: Jose Rivera <German.Rivera@freescale.com> Tested-by: Jose Rivera <German.Rivera@freescale.com> (cherry picked from commit 19640982a1c57f9f81508f9fa15dcc6ec1841cb4) Change-Id: I1898186679983caccc4e51a8674ee7909955e346 Reviewed-on: http://git.am.freescale.net:8181/9385 Reviewed-by: Jose Rivera <German.Rivera@freescale.com> Tested-by: Jose Rivera <German.Rivera@freescale.com>
Diffstat (limited to 'drivers/net/ethernet/freescale/fman/inc')
-rw-r--r--drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_mac_ext.h17
-rw-r--r--drivers/net/ethernet/freescale/fman/inc/flib/fsl_fman_dtsec.h11
-rw-r--r--drivers/net/ethernet/freescale/fman/inc/flib/fsl_fman_memac.h6
3 files changed, 33 insertions, 1 deletions
diff --git a/drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_mac_ext.h b/drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_mac_ext.h
index 0411ec1..f90f2a7 100644
--- a/drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_mac_ext.h
+++ b/drivers/net/ethernet/freescale/fman/inc/Peripherals/fm_mac_ext.h
@@ -103,6 +103,8 @@ typedef enum e_FmMacExceptions {
,e_FM_MAC_EX_1G_RX_MIB_CNT_OVFL /**< dTSEC MIB counter overflow */
,e_FM_MAC_EX_TS_FIFO_ECC_ERR /**< mEMAC Time-stamp FIFO ECC error interrupt;
not supported on T4240/B4860 rev1 chips */
+ ,e_FM_MAC_EX_MAGIC_PACKET_INDICATION = e_FM_MAC_EX_1G_MAG_PCKT
+ /**< mEMAC Magic Packet Indication Interrupt */
} e_FmMacExceptions;
/**************************************************************************//**
@@ -560,6 +562,21 @@ t_Error FM_MAC_SetTxPauseFrames(t_Handle h_FmMac,
t_Error FM_MAC_SetRxIgnorePauseFrames(t_Handle h_FmMac, bool en);
/**************************************************************************//**
+ @Function FM_MAC_SetWakeOnLan
+
+ @Description Enable/Disable Wake On Lan support
+
+ @Param[in] h_FmMac - A handle to a FM MAC Module.
+ @Param[in] en - boolean indicates whether to enable Wake On Lan
+ support or not.
+
+ @Return E_OK on success; Error code otherwise.
+
+ @Cautions Allowed only following FM_MAC_Init().
+*//***************************************************************************/
+t_Error FM_MAC_SetWakeOnLan(t_Handle h_FmMac, bool en);
+
+/**************************************************************************//**
@Function FM_MAC_ResetCounters
@Description reset all statistics counters
diff --git a/drivers/net/ethernet/freescale/fman/inc/flib/fsl_fman_dtsec.h b/drivers/net/ethernet/freescale/fman/inc/flib/fsl_fman_dtsec.h
index 0419d74..6004e47 100644
--- a/drivers/net/ethernet/freescale/fman/inc/flib/fsl_fman_dtsec.h
+++ b/drivers/net/ethernet/freescale/fman/inc/flib/fsl_fman_dtsec.h
@@ -245,6 +245,7 @@
#define DEFAULT_BACK_TO_BACK_IPG 0x60
#define DEFAULT_MAXIMUM_FRAME 0x600
#define DEFAULT_TBI_PHY_ADDR 5
+#define DEFAULT_WAKE_ON_LAN FALSE
/* register related defines (bits, field offsets..) */
#define DTSEC_ID1_ID 0xffff0000
@@ -730,6 +731,7 @@ struct dtsec_cfg {
uint32_t non_back_to_back_ipg2;
uint32_t min_ifg_enforcement;
uint32_t back_to_back_ipg;
+ bool wake_on_lan;
};
@@ -833,6 +835,15 @@ void fman_dtsec_get_mac_address(struct dtsec_regs *regs, uint8_t *macaddr);
void fman_dtsec_set_uc_promisc(struct dtsec_regs *regs, bool enable);
/**
+ * fman_dtsec_set_wol() - Enable/Disable wake on lan
+ * (magic packet support)
+ * @regs: Pointer to dTSEC register block
+ * @en: Enable Wake On Lan support in dTSEC
+ *
+ */
+void fman_dtsec_set_wol(struct dtsec_regs *regs, bool en);
+
+/**
* fman_dtsec_adjust_link() - Adjust dTSEC speed/duplex settings
* @regs: Pointer to dTSEC register block
* @iface_mode: dTSEC interface mode
diff --git a/drivers/net/ethernet/freescale/fman/inc/flib/fsl_fman_memac.h b/drivers/net/ethernet/freescale/fman/inc/flib/fsl_fman_memac.h
index b83390c..69cb22a 100644
--- a/drivers/net/ethernet/freescale/fman/inc/flib/fsl_fman_memac.h
+++ b/drivers/net/ethernet/freescale/fman/inc/flib/fsl_fman_memac.h
@@ -100,7 +100,8 @@
#define MEMAC_ALL_ERRS_IMASK \
((uint32_t)(MEMAC_IMASK_TSECC_ER | \
MEMAC_IMASK_TECC_ER | \
- MEMAC_IMASK_RECC_ER))
+ MEMAC_IMASK_RECC_ER | \
+ MEMAC_IMASK_MGI))
#define MEMAC_IEVNT_PCS 0x80000000 /* PCS (XG). Link sync (G) */
#define MEMAC_IEVNT_AN 0x40000000 /* Auto-negotiation */
@@ -325,6 +326,7 @@ struct memac_cfg {
bool rx_pbl_fwd;
bool tx_pbl_fwd;
bool debug_mode;
+ bool wake_on_lan;
uint16_t max_frame_length;
uint16_t pause_quanta;
uint32_t tx_ipg_length;
@@ -384,6 +386,8 @@ void fman_memac_set_hash_table(struct memac_regs *regs, uint32_t val);
void fman_memac_set_rx_ignore_pause_frames(struct memac_regs *regs,
bool enable);
+void fman_memac_set_wol(struct memac_regs *regs, bool enable);
+
uint32_t fman_memac_get_event(struct memac_regs *regs, uint32_t ev_mask);
void fman_memac_ack_event(struct memac_regs *regs, uint32_t ev_mask);