uart_base.c 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*
  2. * Copyright (C) 2009 Lemote Inc.
  3. * Author: Wu Zhangjin, wuzj@lemote.com
  4. *
  5. * This program is free software; you can redistribute it and/or modify it
  6. * under the terms of the GNU General Public License as published by the
  7. * Free Software Foundation; either version 2 of the License, or (at your
  8. * option) any later version.
  9. */
  10. #include <linux/module.h>
  11. #include <asm/bootinfo.h>
  12. #include <loongson.h>
  13. /* ioremapped */
  14. unsigned long _loongson_uart_base;
  15. EXPORT_SYMBOL(_loongson_uart_base);
  16. /* raw */
  17. unsigned long loongson_uart_base;
  18. EXPORT_SYMBOL(loongson_uart_base);
  19. void prom_init_loongson_uart_base(void)
  20. {
  21. switch (mips_machtype) {
  22. case MACH_LEMOTE_FL2E:
  23. loongson_uart_base = LOONGSON_PCIIO_BASE + 0x3f8;
  24. break;
  25. case MACH_LEMOTE_FL2F:
  26. case MACH_LEMOTE_LL2F:
  27. loongson_uart_base = LOONGSON_PCIIO_BASE + 0x2f8;
  28. break;
  29. case MACH_LEMOTE_ML2F7:
  30. case MACH_LEMOTE_YL2F89:
  31. case MACH_DEXXON_GDIUM2F10:
  32. case MACH_LEMOTE_NAS:
  33. default:
  34. /* The CPU provided serial port */
  35. loongson_uart_base = LOONGSON_LIO1_BASE + 0x3f8;
  36. break;
  37. }
  38. _loongson_uart_base =
  39. (unsigned long)ioremap_nocache(loongson_uart_base, 8);
  40. }