axg-pdm.c (976e3645923bdd2fe7893aae33fd7a21098bfb28) | axg-pdm.c (2ff4e003e8e105fb65c682c876a5cb0e00f854bf) |
---|---|
1// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2// 3// Copyright (c) 2018 BayLibre, SAS. 4// Author: Jerome Brunet <jbrunet@baylibre.com> 5 6#include <linux/clk.h> 7#include <linux/module.h> 8#include <linux/of_irq.h> --- 572 unchanged lines hidden (view full) --- 581}; 582MODULE_DEVICE_TABLE(of, axg_pdm_of_match); 583 584static int axg_pdm_probe(struct platform_device *pdev) 585{ 586 struct device *dev = &pdev->dev; 587 struct axg_pdm *priv; 588 void __iomem *regs; | 1// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2// 3// Copyright (c) 2018 BayLibre, SAS. 4// Author: Jerome Brunet <jbrunet@baylibre.com> 5 6#include <linux/clk.h> 7#include <linux/module.h> 8#include <linux/of_irq.h> --- 572 unchanged lines hidden (view full) --- 581}; 582MODULE_DEVICE_TABLE(of, axg_pdm_of_match); 583 584static int axg_pdm_probe(struct platform_device *pdev) 585{ 586 struct device *dev = &pdev->dev; 587 struct axg_pdm *priv; 588 void __iomem *regs; |
589 int ret; | |
590 591 priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); 592 if (!priv) 593 return -ENOMEM; 594 platform_set_drvdata(pdev, priv); 595 596 priv->cfg = of_device_get_match_data(dev); 597 if (!priv->cfg) { --- 8 unchanged lines hidden (view full) --- 606 priv->map = devm_regmap_init_mmio(dev, regs, &axg_pdm_regmap_cfg); 607 if (IS_ERR(priv->map)) { 608 dev_err(dev, "failed to init regmap: %ld\n", 609 PTR_ERR(priv->map)); 610 return PTR_ERR(priv->map); 611 } 612 613 priv->pclk = devm_clk_get(dev, "pclk"); | 589 590 priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); 591 if (!priv) 592 return -ENOMEM; 593 platform_set_drvdata(pdev, priv); 594 595 priv->cfg = of_device_get_match_data(dev); 596 if (!priv->cfg) { --- 8 unchanged lines hidden (view full) --- 605 priv->map = devm_regmap_init_mmio(dev, regs, &axg_pdm_regmap_cfg); 606 if (IS_ERR(priv->map)) { 607 dev_err(dev, "failed to init regmap: %ld\n", 608 PTR_ERR(priv->map)); 609 return PTR_ERR(priv->map); 610 } 611 612 priv->pclk = devm_clk_get(dev, "pclk"); |
614 if (IS_ERR(priv->pclk)) { 615 ret = PTR_ERR(priv->pclk); 616 if (ret != -EPROBE_DEFER) 617 dev_err(dev, "failed to get pclk: %d\n", ret); 618 return ret; 619 } | 613 if (IS_ERR(priv->pclk)) 614 return dev_err_probe(dev, PTR_ERR(priv->pclk), "failed to get pclk\n"); |
620 621 priv->dclk = devm_clk_get(dev, "dclk"); | 615 616 priv->dclk = devm_clk_get(dev, "dclk"); |
622 if (IS_ERR(priv->dclk)) { 623 ret = PTR_ERR(priv->dclk); 624 if (ret != -EPROBE_DEFER) 625 dev_err(dev, "failed to get dclk: %d\n", ret); 626 return ret; 627 } | 617 if (IS_ERR(priv->dclk)) 618 return dev_err_probe(dev, PTR_ERR(priv->dclk), "failed to get dclk\n"); |
628 629 priv->sysclk = devm_clk_get(dev, "sysclk"); | 619 620 priv->sysclk = devm_clk_get(dev, "sysclk"); |
630 if (IS_ERR(priv->sysclk)) { 631 ret = PTR_ERR(priv->sysclk); 632 if (ret != -EPROBE_DEFER) 633 dev_err(dev, "failed to get dclk: %d\n", ret); 634 return ret; 635 } | 621 if (IS_ERR(priv->sysclk)) 622 return dev_err_probe(dev, PTR_ERR(priv->sysclk), "failed to get dclk\n"); |
636 637 return devm_snd_soc_register_component(dev, &axg_pdm_component_drv, 638 &axg_pdm_dai_drv, 1); 639} 640 641static struct platform_driver axg_pdm_pdrv = { 642 .probe = axg_pdm_probe, 643 .driver = { 644 .name = "axg-pdm", 645 .of_match_table = axg_pdm_of_match, 646 }, 647}; 648module_platform_driver(axg_pdm_pdrv); 649 650MODULE_DESCRIPTION("Amlogic AXG PDM Input driver"); 651MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>"); 652MODULE_LICENSE("GPL v2"); | 623 624 return devm_snd_soc_register_component(dev, &axg_pdm_component_drv, 625 &axg_pdm_dai_drv, 1); 626} 627 628static struct platform_driver axg_pdm_pdrv = { 629 .probe = axg_pdm_probe, 630 .driver = { 631 .name = "axg-pdm", 632 .of_match_table = axg_pdm_of_match, 633 }, 634}; 635module_platform_driver(axg_pdm_pdrv); 636 637MODULE_DESCRIPTION("Amlogic AXG PDM Input driver"); 638MODULE_AUTHOR("Jerome Brunet <jbrunet@baylibre.com>"); 639MODULE_LICENSE("GPL v2"); |