Lines Matching +full:mac +full:- +full:base
1 // SPDX-License-Identifier: GPL-2.0+
3 * Copyright 2009-2011 Freescale Semiconductor, Inc.
23 /* MAXFRM - maximum frame length register */
26 static void dtsec_init_mac(struct fsl_enet_mac *mac) in dtsec_init_mac() argument
28 struct dtsec *regs = mac->base; in dtsec_init_mac()
31 out_be32(®s->maccfg1, MACCFG1_SOFT_RST); in dtsec_init_mac()
34 /* clear soft reset, Rx/Tx MAC disable */ in dtsec_init_mac()
35 out_be32(®s->maccfg1, 0); in dtsec_init_mac()
38 out_be32(®s->rctrl, RCTRL_INIT); in dtsec_init_mac()
42 out_be32(®s->tctrl, TCTRL_INIT); in dtsec_init_mac()
46 out_be32(®s->imask, IMASK_MASK_ALL); in dtsec_init_mac()
49 out_be32(®s->ievent, IEVENT_CLEAR_ALL); in dtsec_init_mac()
52 out_be32(®s->maxfrm, mac->max_rx_len & MAXFRM_MASK); in dtsec_init_mac()
55 out_be32(®s->ecntrl, ECNTRL_DEFAULT); in dtsec_init_mac()
61 out_be32(®s->maccfg2, MACCFG2_INIT); in dtsec_init_mac()
64 static void dtsec_enable_mac(struct fsl_enet_mac *mac) in dtsec_enable_mac() argument
66 struct dtsec *regs = mac->base; in dtsec_enable_mac()
68 /* enable Rx/Tx MAC */ in dtsec_enable_mac()
69 setbits_be32(®s->maccfg1, MACCFG1_RXTX_EN); in dtsec_enable_mac()
72 clrbits_be32(®s->rctrl, RCTRL_GRS); in dtsec_enable_mac()
75 clrbits_be32(®s->tctrl, TCTRL_GTS); in dtsec_enable_mac()
78 static void dtsec_disable_mac(struct fsl_enet_mac *mac) in dtsec_disable_mac() argument
80 struct dtsec *regs = mac->base; in dtsec_disable_mac()
83 setbits_be32(®s->rctrl, RCTRL_GRS); in dtsec_disable_mac()
86 setbits_be32(®s->tctrl, TCTRL_GTS); in dtsec_disable_mac()
88 /* disable Rx/Tx MAC */ in dtsec_disable_mac()
89 clrbits_be32(®s->maccfg1, MACCFG1_RXTX_EN); in dtsec_disable_mac()
92 static void dtsec_set_mac_addr(struct fsl_enet_mac *mac, u8 *mac_addr) in dtsec_set_mac_addr() argument
94 struct dtsec *regs = mac->base; in dtsec_set_mac_addr()
103 out_be32(®s->macstnaddr1, mac_addr1); in dtsec_set_mac_addr()
106 out_be32(®s->macstnaddr2, mac_addr2); in dtsec_set_mac_addr()
109 static void dtsec_set_interface_mode(struct fsl_enet_mac *mac, in dtsec_set_interface_mode() argument
112 struct dtsec *regs = mac->base; in dtsec_set_interface_mode()
116 ecntrl = in_be32(®s->ecntrl); in dtsec_set_interface_mode()
120 maccfg2 = in_be32(®s->maccfg2); in dtsec_set_interface_mode()
151 out_be32(®s->ecntrl, ecntrl); in dtsec_set_interface_mode()
152 out_be32(®s->maccfg2, maccfg2); in dtsec_set_interface_mode()
155 void init_dtsec(struct fsl_enet_mac *mac, void *base, in init_dtsec() argument
158 mac->base = base; in init_dtsec()
159 mac->phyregs = phyregs; in init_dtsec()
160 mac->max_rx_len = max_rx_len; in init_dtsec()
161 mac->init_mac = dtsec_init_mac; in init_dtsec()
162 mac->enable_mac = dtsec_enable_mac; in init_dtsec()
163 mac->disable_mac = dtsec_disable_mac; in init_dtsec()
164 mac->set_mac_addr = dtsec_set_mac_addr; in init_dtsec()
165 mac->set_if_mode = dtsec_set_interface_mode; in init_dtsec()