Lines Matching refs:pdev
486 static int s3c_pcm_dev_probe(struct platform_device *pdev) in s3c_pcm_dev_probe() argument
495 if ((pdev->id < 0) || pdev->id >= ARRAY_SIZE(s3c_pcm)) { in s3c_pcm_dev_probe()
496 dev_err(&pdev->dev, "id %d out of range\n", pdev->id); in s3c_pcm_dev_probe()
500 pcm_pdata = pdev->dev.platform_data; in s3c_pcm_dev_probe()
502 if (pcm_pdata && pcm_pdata->cfg_gpio && pcm_pdata->cfg_gpio(pdev)) { in s3c_pcm_dev_probe()
503 dev_err(&pdev->dev, "Unable to configure gpio\n"); in s3c_pcm_dev_probe()
507 pcm = &s3c_pcm[pdev->id]; in s3c_pcm_dev_probe()
508 pcm->dev = &pdev->dev; in s3c_pcm_dev_probe()
515 pcm->regs = devm_platform_get_and_ioremap_resource(pdev, 0, &mem_res); in s3c_pcm_dev_probe()
519 pcm->cclk = devm_clk_get(&pdev->dev, "audio-bus"); in s3c_pcm_dev_probe()
521 dev_err(&pdev->dev, "failed to get audio-bus clock\n"); in s3c_pcm_dev_probe()
529 dev_set_drvdata(&pdev->dev, pcm); in s3c_pcm_dev_probe()
531 pcm->pclk = devm_clk_get(&pdev->dev, "pcm"); in s3c_pcm_dev_probe()
533 dev_err(&pdev->dev, "failed to get pcm clock\n"); in s3c_pcm_dev_probe()
541 s3c_pcm_stereo_in[pdev->id].addr = mem_res->start + S3C_PCM_RXFIFO; in s3c_pcm_dev_probe()
542 s3c_pcm_stereo_out[pdev->id].addr = mem_res->start + S3C_PCM_TXFIFO; in s3c_pcm_dev_probe()
546 s3c_pcm_stereo_in[pdev->id].filter_data = pcm_pdata->dma_capture; in s3c_pcm_dev_probe()
547 s3c_pcm_stereo_out[pdev->id].filter_data = pcm_pdata->dma_playback; in s3c_pcm_dev_probe()
551 pcm->dma_capture = &s3c_pcm_stereo_in[pdev->id]; in s3c_pcm_dev_probe()
552 pcm->dma_playback = &s3c_pcm_stereo_out[pdev->id]; in s3c_pcm_dev_probe()
554 ret = samsung_asoc_dma_platform_register(&pdev->dev, filter, in s3c_pcm_dev_probe()
557 dev_err(&pdev->dev, "failed to get register DMA: %d\n", ret); in s3c_pcm_dev_probe()
561 pm_runtime_enable(&pdev->dev); in s3c_pcm_dev_probe()
563 ret = devm_snd_soc_register_component(&pdev->dev, &s3c_pcm_component, in s3c_pcm_dev_probe()
564 &s3c_pcm_dai[pdev->id], 1); in s3c_pcm_dev_probe()
566 dev_err(&pdev->dev, "failed to get register DAI: %d\n", ret); in s3c_pcm_dev_probe()
573 pm_runtime_disable(&pdev->dev); in s3c_pcm_dev_probe()
581 static int s3c_pcm_dev_remove(struct platform_device *pdev) in s3c_pcm_dev_remove() argument
583 struct s3c_pcm_info *pcm = &s3c_pcm[pdev->id]; in s3c_pcm_dev_remove()
585 pm_runtime_disable(&pdev->dev); in s3c_pcm_dev_remove()