Lines Matching refs:pdev
377 static int tegra30_i2s_platform_probe(struct platform_device *pdev) in tegra30_i2s_platform_probe() argument
386 i2s = devm_kzalloc(&pdev->dev, sizeof(struct tegra30_i2s), GFP_KERNEL); in tegra30_i2s_platform_probe()
388 dev_err(&pdev->dev, "Can't allocate tegra30_i2s\n"); in tegra30_i2s_platform_probe()
392 dev_set_drvdata(&pdev->dev, i2s); in tegra30_i2s_platform_probe()
394 match = of_match_device(tegra30_i2s_of_match, &pdev->dev); in tegra30_i2s_platform_probe()
396 dev_err(&pdev->dev, "Error: No device match found\n"); in tegra30_i2s_platform_probe()
403 i2s->dai.name = dev_name(&pdev->dev); in tegra30_i2s_platform_probe()
405 ret = of_property_read_u32_array(pdev->dev.of_node, in tegra30_i2s_platform_probe()
414 i2s->clk_i2s = clk_get(&pdev->dev, NULL); in tegra30_i2s_platform_probe()
416 dev_err(&pdev->dev, "Can't retrieve i2s clock\n"); in tegra30_i2s_platform_probe()
421 mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); in tegra30_i2s_platform_probe()
423 dev_err(&pdev->dev, "No memory resource\n"); in tegra30_i2s_platform_probe()
428 memregion = devm_request_mem_region(&pdev->dev, mem->start, in tegra30_i2s_platform_probe()
431 dev_err(&pdev->dev, "Memory region already claimed\n"); in tegra30_i2s_platform_probe()
436 regs = devm_ioremap(&pdev->dev, mem->start, resource_size(mem)); in tegra30_i2s_platform_probe()
438 dev_err(&pdev->dev, "ioremap failed\n"); in tegra30_i2s_platform_probe()
443 i2s->regmap = devm_regmap_init_mmio(&pdev->dev, regs, in tegra30_i2s_platform_probe()
446 dev_err(&pdev->dev, "regmap init failed\n"); in tegra30_i2s_platform_probe()
452 pm_runtime_enable(&pdev->dev); in tegra30_i2s_platform_probe()
453 if (!pm_runtime_enabled(&pdev->dev)) { in tegra30_i2s_platform_probe()
454 ret = tegra30_i2s_runtime_resume(&pdev->dev); in tegra30_i2s_platform_probe()
466 dev_err(&pdev->dev, "Could not alloc TX FIFO: %d\n", ret); in tegra30_i2s_platform_probe()
472 dev_err(&pdev->dev, "Could not route TX FIFO: %d\n", ret); in tegra30_i2s_platform_probe()
483 dev_err(&pdev->dev, "Could not alloc RX FIFO: %d\n", ret); in tegra30_i2s_platform_probe()
489 dev_err(&pdev->dev, "Could not route TX FIFO: %d\n", ret); in tegra30_i2s_platform_probe()
493 ret = snd_soc_register_component(&pdev->dev, &tegra30_i2s_component, in tegra30_i2s_platform_probe()
496 dev_err(&pdev->dev, "Could not register DAI: %d\n", ret); in tegra30_i2s_platform_probe()
501 ret = tegra_pcm_platform_register_with_chan_names(&pdev->dev, in tegra30_i2s_platform_probe()
505 dev_err(&pdev->dev, "Could not register PCM: %d\n", ret); in tegra30_i2s_platform_probe()
512 snd_soc_unregister_component(&pdev->dev); in tegra30_i2s_platform_probe()
522 if (!pm_runtime_status_suspended(&pdev->dev)) in tegra30_i2s_platform_probe()
523 tegra30_i2s_runtime_suspend(&pdev->dev); in tegra30_i2s_platform_probe()
525 pm_runtime_disable(&pdev->dev); in tegra30_i2s_platform_probe()
532 static int tegra30_i2s_platform_remove(struct platform_device *pdev) in tegra30_i2s_platform_remove() argument
534 struct tegra30_i2s *i2s = dev_get_drvdata(&pdev->dev); in tegra30_i2s_platform_remove()
536 pm_runtime_disable(&pdev->dev); in tegra30_i2s_platform_remove()
537 if (!pm_runtime_status_suspended(&pdev->dev)) in tegra30_i2s_platform_remove()
538 tegra30_i2s_runtime_suspend(&pdev->dev); in tegra30_i2s_platform_remove()
540 tegra_pcm_platform_unregister(&pdev->dev); in tegra30_i2s_platform_remove()
541 snd_soc_unregister_component(&pdev->dev); in tegra30_i2s_platform_remove()