ice_debug.c 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /*
  2. * Copyright (c) 2015 MediaTek Inc.
  3. * Author: Maoguang Meng<maoguang.meng@mediatek.com>
  4. */
  5. #include <linux/module.h>
  6. #include <linux/platform_device.h>
  7. #include <linux/of.h>
  8. #include <linux/of_device.h>
  9. #include <linux/regmap.h>
  10. #include <linux/clk.h>
  11. #include <linux/of_address.h>
  12. #include <linux/clk.h>
  13. #include <linux/io.h>
  14. static const struct of_device_id mt8173_icedbg_match[] = {
  15. {.compatible = "mediatek,mt8173-ice_debug", },
  16. { }
  17. };
  18. MODULE_DEVICE_TABLE(of, mt8173_icedbg_match);
  19. static int mtk_ice_debug_probe(struct platform_device *pdev)
  20. {
  21. int ret = 0;
  22. struct clk *clk_icedbg;
  23. clk_icedbg = devm_clk_get(&pdev->dev, "ice_dbg");
  24. if (IS_ERR(clk_icedbg)) {
  25. dev_err(&pdev->dev, "get clock fail: %ld\n",
  26. PTR_ERR(clk_icedbg));
  27. return PTR_ERR(clk_icedbg);
  28. }
  29. ret = clk_prepare_enable(clk_icedbg);
  30. if (ret)
  31. return ret;
  32. return 0;
  33. }
  34. static struct platform_driver mtk_icedbg_driver = {
  35. .probe = mtk_ice_debug_probe,
  36. .driver = {
  37. .name = "mediatek,mt8173-ice_debug",
  38. .owner = THIS_MODULE,
  39. .of_match_table = mt8173_icedbg_match,
  40. },
  41. };
  42. static int __init mtk_ice_debug_init(void)
  43. {
  44. return platform_driver_register(&mtk_icedbg_driver);
  45. }
  46. module_init(mtk_ice_debug_init);
  47. MODULE_LICENSE("GPL v2");
  48. MODULE_DESCRIPTION("MediaTek MT8173 ICE_DEBUG Driver");
  49. MODULE_AUTHOR("Maoguang Meng <maoguang.meng@mediatek.com>");