Lines Matching +full:fast +full:- +full:mode

7  * SPDX-License-Identifier:	GPL-2.0+
20 out_be16(&uccf->uf_regs->utodr, UCC_FAST_TOD); in ucc_fast_transmit_on_demand()
43 *p_cmxucr = &(qe_immr->qmx.cmxucr1); in ucc_get_cmxucr_reg()
48 *p_cmxucr = &(qe_immr->qmx.cmxucr1); in ucc_get_cmxucr_reg()
53 *p_cmxucr = &(qe_immr->qmx.cmxucr2); in ucc_get_cmxucr_reg()
58 *p_cmxucr = &(qe_immr->qmx.cmxucr2); in ucc_get_cmxucr_reg()
63 *p_cmxucr = &(qe_immr->qmx.cmxucr3); in ucc_get_cmxucr_reg()
68 *p_cmxucr = &(qe_immr->qmx.cmxucr3); in ucc_get_cmxucr_reg()
73 *p_cmxucr = &(qe_immr->qmx.cmxucr4); in ucc_get_cmxucr_reg()
78 *p_cmxucr = &(qe_immr->qmx.cmxucr4); in ucc_get_cmxucr_reg()
87 static int ucc_set_clk_src(int ucc_num, qe_clock_e clock, comm_dir_e mode) in ucc_set_clk_src() argument
94 int source = -1; in ucc_set_clk_src()
97 if ((ucc_num > UCC_MAX_NUM - 1) || (ucc_num < 0)) in ucc_set_clk_src()
98 return -EINVAL; in ucc_set_clk_src()
100 if (! ((mode == COMM_DIR_RX) || (mode == COMM_DIR_TX))) { in ucc_set_clk_src()
101 printf("%s: bad comm mode type passed\n", __FUNCTION__); in ucc_set_clk_src()
102 return -EINVAL; in ucc_set_clk_src()
120 default: source = -1; break; in ucc_set_clk_src()
135 default: source = -1; break; in ucc_set_clk_src()
151 default: source = -1; break; in ucc_set_clk_src()
167 default: source = -1; break; in ucc_set_clk_src()
171 source = -1; in ucc_set_clk_src()
175 if (source == -1) { in ucc_set_clk_src()
177 return -ENOENT; in ucc_set_clk_src()
182 if (mode == COMM_DIR_RX) { in ucc_set_clk_src()
199 if ((ucc_num > UCC_MAX_NUM - 1) || (ucc_num < 0)) { in ucc_get_reg_baseaddr()
220 void ucc_fast_enable(ucc_fast_private_t *uccf, comm_dir_e mode) in ucc_fast_enable() argument
225 uf_regs = uccf->uf_regs; in ucc_fast_enable()
228 gumr = in_be32(&uf_regs->gumr); in ucc_fast_enable()
229 if (mode & COMM_DIR_TX) { in ucc_fast_enable()
231 uccf->enabled_tx = 1; in ucc_fast_enable()
233 if (mode & COMM_DIR_RX) { in ucc_fast_enable()
235 uccf->enabled_rx = 1; in ucc_fast_enable()
237 out_be32(&uf_regs->gumr, gumr); in ucc_fast_enable()
240 void ucc_fast_disable(ucc_fast_private_t *uccf, comm_dir_e mode) in ucc_fast_disable() argument
245 uf_regs = uccf->uf_regs; in ucc_fast_disable()
248 gumr = in_be32(&uf_regs->gumr); in ucc_fast_disable()
249 if (mode & COMM_DIR_TX) { in ucc_fast_disable()
251 uccf->enabled_tx = 0; in ucc_fast_disable()
253 if (mode & COMM_DIR_RX) { in ucc_fast_disable()
255 uccf->enabled_rx = 0; in ucc_fast_disable()
257 out_be32(&uf_regs->gumr, gumr); in ucc_fast_disable()
266 return -EINVAL; in ucc_fast_init()
268 if ((uf_info->ucc_num < 0) || (uf_info->ucc_num > UCC_MAX_NUM - 1)) { in ucc_fast_init()
270 return -EINVAL; in ucc_fast_init()
275 printf("%s: No memory for UCC fast data structure!\n", in ucc_fast_init()
277 return -ENOMEM; in ucc_fast_init()
281 /* Save fast UCC structure */ in ucc_fast_init()
282 uccf->uf_info = uf_info; in ucc_fast_init()
283 uccf->uf_regs = (ucc_fast_t *)ucc_get_reg_baseaddr(uf_info->ucc_num); in ucc_fast_init()
285 if (uccf->uf_regs == NULL) { in ucc_fast_init()
286 printf("%s: No memory map for UCC fast controller!\n", in ucc_fast_init()
288 return -ENOMEM; in ucc_fast_init()
291 uccf->enabled_tx = 0; in ucc_fast_init()
292 uccf->enabled_rx = 0; in ucc_fast_init()
294 uf_regs = uccf->uf_regs; in ucc_fast_init()
295 uccf->p_ucce = (u32 *) &(uf_regs->ucce); in ucc_fast_init()
296 uccf->p_uccm = (u32 *) &(uf_regs->uccm); in ucc_fast_init()
298 /* Init GUEMR register, UCC both Rx and Tx is Fast protocol */ in ucc_fast_init()
299 out_8(&uf_regs->guemr, UCC_GUEMR_SET_RESERVED3 | UCC_GUEMR_MODE_FAST_RX in ucc_fast_init()
303 out_be32(&uf_regs->gumr, UCC_FAST_GUMR_ETH); in ucc_fast_init()
306 if (uf_info->eth_type == GIGA_ETH) { in ucc_fast_init()
308 uccf->ucc_fast_tx_virtual_fifo_base_offset = in ucc_fast_init()
313 uccf->ucc_fast_rx_virtual_fifo_base_offset = in ucc_fast_init()
319 out_be32(&uf_regs->utfb, in ucc_fast_init()
320 uccf->ucc_fast_tx_virtual_fifo_base_offset); in ucc_fast_init()
321 out_be32(&uf_regs->urfb, in ucc_fast_init()
322 uccf->ucc_fast_rx_virtual_fifo_base_offset); in ucc_fast_init()
325 out_be16(&uf_regs->urfs, UCC_GETH_URFS_GIGA_INIT); in ucc_fast_init()
326 out_be16(&uf_regs->urfet, UCC_GETH_URFET_GIGA_INIT); in ucc_fast_init()
327 out_be16(&uf_regs->urfset, UCC_GETH_URFSET_GIGA_INIT); in ucc_fast_init()
328 out_be16(&uf_regs->utfs, UCC_GETH_UTFS_GIGA_INIT); in ucc_fast_init()
329 out_be16(&uf_regs->utfet, UCC_GETH_UTFET_GIGA_INIT); in ucc_fast_init()
330 out_be16(&uf_regs->utftt, UCC_GETH_UTFTT_GIGA_INIT); in ucc_fast_init()
333 /* Set the Fast ethernet VFIFO stuff */ in ucc_fast_init()
334 if (uf_info->eth_type == FAST_ETH) { in ucc_fast_init()
336 uccf->ucc_fast_tx_virtual_fifo_base_offset = in ucc_fast_init()
341 uccf->ucc_fast_rx_virtual_fifo_base_offset = in ucc_fast_init()
347 out_be32(&uf_regs->utfb, in ucc_fast_init()
348 uccf->ucc_fast_tx_virtual_fifo_base_offset); in ucc_fast_init()
349 out_be32(&uf_regs->urfb, in ucc_fast_init()
350 uccf->ucc_fast_rx_virtual_fifo_base_offset); in ucc_fast_init()
353 out_be16(&uf_regs->urfs, UCC_GETH_URFS_INIT); in ucc_fast_init()
354 out_be16(&uf_regs->urfet, UCC_GETH_URFET_INIT); in ucc_fast_init()
355 out_be16(&uf_regs->urfset, UCC_GETH_URFSET_INIT); in ucc_fast_init()
356 out_be16(&uf_regs->utfs, UCC_GETH_UTFS_INIT); in ucc_fast_init()
357 out_be16(&uf_regs->utfet, UCC_GETH_UTFET_INIT); in ucc_fast_init()
358 out_be16(&uf_regs->utftt, UCC_GETH_UTFTT_INIT); in ucc_fast_init()
362 if (uf_info->rx_clock != QE_CLK_NONE) { in ucc_fast_init()
363 if (ucc_set_clk_src(uf_info->ucc_num, in ucc_fast_init()
364 uf_info->rx_clock, COMM_DIR_RX)) { in ucc_fast_init()
367 return -EINVAL; in ucc_fast_init()
372 if (uf_info->tx_clock != QE_CLK_NONE) { in ucc_fast_init()
373 if (ucc_set_clk_src(uf_info->ucc_num, in ucc_fast_init()
374 uf_info->tx_clock, COMM_DIR_TX)) { in ucc_fast_init()
377 return -EINVAL; in ucc_fast_init()
382 out_be32(&uf_regs->uccm, 0x0); in ucc_fast_init()
385 out_be32(&uf_regs->ucce, 0xffffffff); in ucc_fast_init()