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");