mpc5121_ads.c 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // SPDX-License-Identifier: GPL-2.0-or-later
  2. /*
  3. * Copyright (C) 2007, 2008 Freescale Semiconductor, Inc. All rights reserved.
  4. *
  5. * Author: John Rigby, <jrigby@freescale.com>, Thur Mar 29 2007
  6. *
  7. * Description:
  8. * MPC5121 ADS board setup
  9. */
  10. #include <linux/kernel.h>
  11. #include <linux/io.h>
  12. #include <linux/of.h>
  13. #include <asm/machdep.h>
  14. #include <asm/ipic.h>
  15. #include <asm/time.h>
  16. #include <sysdev/fsl_pci.h>
  17. #include "mpc512x.h"
  18. #include "mpc5121_ads.h"
  19. static void __init mpc5121_ads_setup_arch(void)
  20. {
  21. printk(KERN_INFO "MPC5121 ADS board from Freescale Semiconductor\n");
  22. /*
  23. * cpld regs are needed early
  24. */
  25. mpc5121_ads_cpld_map();
  26. mpc512x_setup_arch();
  27. }
  28. static void __init mpc5121_ads_setup_pci(void)
  29. {
  30. #ifdef CONFIG_PCI
  31. struct device_node *np;
  32. for_each_compatible_node(np, "pci", "fsl,mpc5121-pci")
  33. mpc83xx_add_bridge(np);
  34. #endif
  35. }
  36. static void __init mpc5121_ads_init_IRQ(void)
  37. {
  38. mpc512x_init_IRQ();
  39. mpc5121_ads_cpld_pic_init();
  40. }
  41. /*
  42. * Called very early, MMU is off, device-tree isn't unflattened
  43. */
  44. static int __init mpc5121_ads_probe(void)
  45. {
  46. mpc512x_init_early();
  47. return 1;
  48. }
  49. define_machine(mpc5121_ads) {
  50. .name = "MPC5121 ADS",
  51. .compatible = "fsl,mpc5121ads",
  52. .probe = mpc5121_ads_probe,
  53. .setup_arch = mpc5121_ads_setup_arch,
  54. .discover_phbs = mpc5121_ads_setup_pci,
  55. .init = mpc512x_init,
  56. .init_IRQ = mpc5121_ads_init_IRQ,
  57. .get_irq = ipic_get_irq,
  58. .restart = mpc512x_restart,
  59. };