Lines Matching refs:tdev
331 struct mmp_tdma_device *tdev = dev_id;
336 struct mmp_tdma_chan *tdmac = tdev->tdmac[i];
563 static int mmp_tdma_chan_init(struct mmp_tdma_device *tdev,
570 dev_err(tdev->dev, "too many channels for device!\n");
575 tdmac = devm_kzalloc(tdev->dev, sizeof(*tdmac), GFP_KERNEL);
581 tdmac->dev = tdev->dev;
582 tdmac->chan.device = &tdev->device;
585 tdmac->reg_base = tdev->base + idx * 4;
588 tdev->tdmac[tdmac->idx] = tdmac;
593 &tdev->device.channels);
614 struct mmp_tdma_device *tdev = ofdma->of_dma_data;
615 dma_cap_mask_t mask = tdev->device.cap_mask;
641 struct mmp_tdma_device *tdev;
654 tdev = devm_kzalloc(&pdev->dev, sizeof(*tdev), GFP_KERNEL);
655 if (!tdev)
658 tdev->dev = &pdev->dev;
665 tdev->base = devm_platform_ioremap_resource(pdev, 0);
666 if (IS_ERR(tdev->base))
667 return PTR_ERR(tdev->base);
669 INIT_LIST_HEAD(&tdev->device.channels);
680 mmp_tdma_int_handler, IRQF_SHARED, "tdma", tdev);
688 ret = mmp_tdma_chan_init(tdev, i, irq, type, pool);
693 dma_cap_set(DMA_SLAVE, tdev->device.cap_mask);
694 dma_cap_set(DMA_CYCLIC, tdev->device.cap_mask);
695 tdev->device.dev = &pdev->dev;
696 tdev->device.device_alloc_chan_resources =
698 tdev->device.device_free_chan_resources =
700 tdev->device.device_prep_dma_cyclic = mmp_tdma_prep_dma_cyclic;
701 tdev->device.device_tx_status = mmp_tdma_tx_status;
702 tdev->device.device_issue_pending = mmp_tdma_issue_pending;
703 tdev->device.device_config = mmp_tdma_config;
704 tdev->device.device_pause = mmp_tdma_pause_chan;
705 tdev->device.device_resume = mmp_tdma_resume_chan;
706 tdev->device.device_terminate_all = mmp_tdma_terminate_all;
707 tdev->device.copy_align = DMAENGINE_ALIGN_8_BYTES;
709 tdev->device.directions = BIT(DMA_DEV_TO_MEM) | BIT(DMA_MEM_TO_DEV);
711 tdev->device.max_burst = SZ_128;
712 tdev->device.src_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_4_BYTES);
713 tdev->device.dst_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_4_BYTES);
715 tdev->device.max_burst = SZ_32;
717 tdev->device.residue_granularity = DMA_RESIDUE_GRANULARITY_BURST;
718 tdev->device.descriptor_reuse = true;
721 platform_set_drvdata(pdev, tdev);
723 ret = dmaenginem_async_device_register(&tdev->device);
725 dev_err(tdev->device.dev, "unable to register\n");
731 mmp_tdma_xlate, tdev);
733 dev_err(tdev->device.dev,
739 dev_info(tdev->device.dev, "initialized\n");