stm32_rcc.c 941 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. * Copyright (C) STMicroelectronics SA 2017
  3. * Author(s): Patrice CHOTARD, <patrice.chotard@st.com> for STMicroelectronics.
  4. *
  5. * SPDX-License-Identifier: GPL-2.0+
  6. */
  7. #include <common.h>
  8. #include <dm.h>
  9. #include <misc.h>
  10. #include <dm/lists.h>
  11. static int stm32_rcc_bind(struct udevice *dev)
  12. {
  13. int ret;
  14. struct udevice *child;
  15. debug("%s(dev=%p)\n", __func__, dev);
  16. ret = device_bind_driver_to_node(dev, "stm32h7_rcc_clock",
  17. "stm32h7_rcc_clock",
  18. dev_ofnode(dev), &child);
  19. if (ret)
  20. return ret;
  21. return device_bind_driver_to_node(dev, "stm32_rcc_reset",
  22. "stm32_rcc_reset",
  23. dev_ofnode(dev), &child);
  24. }
  25. static const struct misc_ops stm32_rcc_ops = {
  26. };
  27. static const struct udevice_id stm32_rcc_ids[] = {
  28. {.compatible = "st,stm32h743-rcc"},
  29. { }
  30. };
  31. U_BOOT_DRIVER(stm32_rcc) = {
  32. .name = "stm32-rcc",
  33. .id = UCLASS_MISC,
  34. .of_match = stm32_rcc_ids,
  35. .bind = stm32_rcc_bind,
  36. .ops = &stm32_rcc_ops,
  37. };