Lines Matching refs:uccf
31 void ucc_fast_dump_regs(struct ucc_fast_private * uccf)
33 printk(KERN_INFO "UCC%u Fast registers:\n", uccf->uf_info->ucc_num);
34 printk(KERN_INFO "Base address: 0x%p\n", uccf->uf_regs);
37 &uccf->uf_regs->gumr, in_be32(&uccf->uf_regs->gumr));
39 &uccf->uf_regs->upsmr, in_be32(&uccf->uf_regs->upsmr));
41 &uccf->uf_regs->utodr, in_be16(&uccf->uf_regs->utodr));
43 &uccf->uf_regs->udsr, in_be16(&uccf->uf_regs->udsr));
45 &uccf->uf_regs->ucce, in_be32(&uccf->uf_regs->ucce));
47 &uccf->uf_regs->uccm, in_be32(&uccf->uf_regs->uccm));
49 &uccf->uf_regs->uccs, in_8(&uccf->uf_regs->uccs));
51 &uccf->uf_regs->urfb, in_be32(&uccf->uf_regs->urfb));
53 &uccf->uf_regs->urfs, in_be16(&uccf->uf_regs->urfs));
55 &uccf->uf_regs->urfet, in_be16(&uccf->uf_regs->urfet));
57 &uccf->uf_regs->urfset, in_be16(&uccf->uf_regs->urfset));
59 &uccf->uf_regs->utfb, in_be32(&uccf->uf_regs->utfb));
61 &uccf->uf_regs->utfs, in_be16(&uccf->uf_regs->utfs));
63 &uccf->uf_regs->utfet, in_be16(&uccf->uf_regs->utfet));
65 &uccf->uf_regs->utftt, in_be16(&uccf->uf_regs->utftt));
67 &uccf->uf_regs->utpt, in_be16(&uccf->uf_regs->utpt));
69 &uccf->uf_regs->urtry, in_be32(&uccf->uf_regs->urtry));
71 &uccf->uf_regs->guemr, in_8(&uccf->uf_regs->guemr));
91 void ucc_fast_transmit_on_demand(struct ucc_fast_private * uccf)
93 out_be16(&uccf->uf_regs->utodr, UCC_FAST_TOD);
97 void ucc_fast_enable(struct ucc_fast_private * uccf, enum comm_dir mode)
102 uf_regs = uccf->uf_regs;
108 uccf->enabled_tx = 1;
112 uccf->enabled_rx = 1;
118 void ucc_fast_disable(struct ucc_fast_private * uccf, enum comm_dir mode)
123 uf_regs = uccf->uf_regs;
129 uccf->enabled_tx = 0;
133 uccf->enabled_rx = 0;
141 struct ucc_fast_private *uccf;
198 uccf = kzalloc(sizeof(struct ucc_fast_private), GFP_KERNEL);
199 if (!uccf) {
206 uccf->uf_info = uf_info;
208 uccf->uf_regs = ioremap(uf_info->regs, sizeof(struct ucc_fast));
209 if (uccf->uf_regs == NULL) {
211 kfree(uccf);
215 uccf->enabled_tx = 0;
216 uccf->enabled_rx = 0;
217 uccf->stopped_tx = 0;
218 uccf->stopped_rx = 0;
219 uf_regs = uccf->uf_regs;
220 uccf->p_ucce = &uf_regs->ucce;
221 uccf->p_uccm = &uf_regs->uccm;
223 uccf->p_utodr = &uf_regs->utodr;
226 uccf->tx_frames = 0;
227 uccf->rx_frames = 0;
228 uccf->rx_discarded = 0;
235 ucc_fast_free(uccf);
239 uccf->mrblr = uf_info->max_rx_buf_length;
270 uccf->ucc_fast_tx_virtual_fifo_base_offset =
272 if (IS_ERR_VALUE(uccf->ucc_fast_tx_virtual_fifo_base_offset)) {
275 uccf->ucc_fast_tx_virtual_fifo_base_offset = 0;
276 ucc_fast_free(uccf);
281 uccf->ucc_fast_rx_virtual_fifo_base_offset =
285 if (IS_ERR_VALUE(uccf->ucc_fast_rx_virtual_fifo_base_offset)) {
288 uccf->ucc_fast_rx_virtual_fifo_base_offset = 0;
289 ucc_fast_free(uccf);
301 out_be32(&uf_regs->utfb, uccf->ucc_fast_tx_virtual_fifo_base_offset);
302 out_be32(&uf_regs->urfb, uccf->ucc_fast_rx_virtual_fifo_base_offset);
319 ucc_fast_free(uccf);
328 ucc_fast_free(uccf);
343 *uccf_ret = uccf;
348 void ucc_fast_free(struct ucc_fast_private * uccf)
350 if (!uccf)
353 if (uccf->ucc_fast_tx_virtual_fifo_base_offset)
354 qe_muram_free(uccf->ucc_fast_tx_virtual_fifo_base_offset);
356 if (uccf->ucc_fast_rx_virtual_fifo_base_offset)
357 qe_muram_free(uccf->ucc_fast_rx_virtual_fifo_base_offset);
359 if (uccf->uf_regs)
360 iounmap(uccf->uf_regs);
362 kfree(uccf);