m523x.c 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /***************************************************************************/
  2. /*
  3. * linux/arch/m68knommu/platform/523x/config.c
  4. *
  5. * Sub-architcture dependent initialization code for the Freescale
  6. * 523x CPUs.
  7. *
  8. * Copyright (C) 1999-2005, Greg Ungerer (gerg@snapgear.com)
  9. * Copyright (C) 2001-2003, SnapGear Inc. (www.snapgear.com)
  10. */
  11. /***************************************************************************/
  12. #include <linux/kernel.h>
  13. #include <linux/param.h>
  14. #include <linux/init.h>
  15. #include <linux/io.h>
  16. #include <asm/machdep.h>
  17. #include <asm/coldfire.h>
  18. #include <asm/mcfsim.h>
  19. /***************************************************************************/
  20. #if IS_ENABLED(CONFIG_SPI_COLDFIRE_QSPI)
  21. static void __init m523x_qspi_init(void)
  22. {
  23. u16 par;
  24. /* setup QSPS pins for QSPI with gpio CS control */
  25. writeb(0x1f, MCFGPIO_PAR_QSPI);
  26. /* and CS2 & CS3 as gpio */
  27. par = readw(MCFGPIO_PAR_TIMER);
  28. par &= 0x3f3f;
  29. writew(par, MCFGPIO_PAR_TIMER);
  30. }
  31. #endif /* IS_ENABLED(CONFIG_SPI_COLDFIRE_QSPI) */
  32. /***************************************************************************/
  33. static void __init m523x_fec_init(void)
  34. {
  35. u16 par;
  36. u8 v;
  37. /* Set multi-function pins to ethernet use */
  38. par = readw(MCF_IPSBAR + 0x100082);
  39. writew(par | 0xf00, MCF_IPSBAR + 0x100082);
  40. v = readb(MCF_IPSBAR + 0x100078);
  41. writeb(v | 0xc0, MCF_IPSBAR + 0x100078);
  42. }
  43. /***************************************************************************/
  44. void __init config_BSP(char *commandp, int size)
  45. {
  46. mach_sched_init = hw_timer_init;
  47. m523x_fec_init();
  48. #if IS_ENABLED(CONFIG_SPI_COLDFIRE_QSPI)
  49. m523x_qspi_init();
  50. #endif
  51. }
  52. /***************************************************************************/