rcar-gen2-cpg.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * R-Car Gen2 Clock Pulse Generator
  4. *
  5. * Copyright (C) 2016 Cogent Embedded Inc.
  6. */
  7. #ifndef __CLK_RENESAS_RCAR_GEN2_CPG_H__
  8. #define __CLK_RENESAS_RCAR_GEN2_CPG_H__
  9. enum rcar_gen2_clk_types {
  10. CLK_TYPE_GEN2_MAIN = CLK_TYPE_CUSTOM,
  11. CLK_TYPE_GEN2_PLL0,
  12. CLK_TYPE_GEN2_PLL1,
  13. CLK_TYPE_GEN2_PLL3,
  14. CLK_TYPE_GEN2_Z,
  15. CLK_TYPE_GEN2_LB,
  16. CLK_TYPE_GEN2_ADSP,
  17. CLK_TYPE_GEN2_SDH,
  18. CLK_TYPE_GEN2_SD0,
  19. CLK_TYPE_GEN2_SD1,
  20. CLK_TYPE_GEN2_QSPI,
  21. CLK_TYPE_GEN2_RCAN,
  22. };
  23. struct rcar_gen2_cpg_pll_config {
  24. unsigned int extal_div;
  25. unsigned int pll1_mult;
  26. unsigned int pll3_mult;
  27. unsigned int pll0_mult; /* leave as zero if PLL0CR exists */
  28. };
  29. #define CPG_RST_MODEMR 0x060
  30. struct gen2_clk_priv {
  31. void __iomem *base;
  32. struct cpg_mssr_info *info;
  33. struct clk clk_extal;
  34. struct clk clk_extal_usb;
  35. const struct rcar_gen2_cpg_pll_config *cpg_pll_config;
  36. };
  37. int gen2_clk_probe(struct udevice *dev);
  38. int gen2_clk_remove(struct udevice *dev);
  39. extern const struct clk_ops gen2_clk_ops;
  40. #endif