uncompress.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /*
  2. * Copyright (C) 2007 Google, Inc.
  3. * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
  4. *
  5. * This software is licensed under the terms of the GNU General Public
  6. * License version 2, as published by the Free Software Foundation, and
  7. * may be copied, distributed, and modified under those terms.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. *
  14. */
  15. #ifndef __ASM_ARCH_MSM_UNCOMPRESS_H
  16. #define __ASM_ARCH_MSM_UNCOMPRESS_H
  17. #include <asm/barrier.h>
  18. #include <asm/processor.h>
  19. #include <mach/msm_iomap.h>
  20. #define UART_CSR (*(volatile uint32_t *)(MSM_DEBUG_UART_PHYS + 0x08))
  21. #define UART_TF (*(volatile uint32_t *)(MSM_DEBUG_UART_PHYS + 0x0c))
  22. #define UART_DM_SR (*((volatile uint32_t *)(MSM_DEBUG_UART_PHYS + 0x08)))
  23. #define UART_DM_CR (*((volatile uint32_t *)(MSM_DEBUG_UART_PHYS + 0x10)))
  24. #define UART_DM_ISR (*((volatile uint32_t *)(MSM_DEBUG_UART_PHYS + 0x14)))
  25. #define UART_DM_NCHAR (*((volatile uint32_t *)(MSM_DEBUG_UART_PHYS + 0x40)))
  26. #define UART_DM_TF (*((volatile uint32_t *)(MSM_DEBUG_UART_PHYS + 0x70)))
  27. static void putc(int c)
  28. {
  29. #if defined(MSM_DEBUG_UART_PHYS)
  30. #ifdef CONFIG_MSM_HAS_DEBUG_UART_HS
  31. /*
  32. * Wait for TX_READY to be set; but skip it if we have a
  33. * TX underrun.
  34. */
  35. if (UART_DM_SR & 0x08)
  36. while (!(UART_DM_ISR & 0x80))
  37. cpu_relax();
  38. UART_DM_CR = 0x300;
  39. UART_DM_NCHAR = 0x1;
  40. UART_DM_TF = c;
  41. #else
  42. while (!(UART_CSR & 0x04))
  43. cpu_relax();
  44. UART_TF = c;
  45. #endif
  46. #endif
  47. }
  48. static inline void flush(void)
  49. {
  50. }
  51. static inline void arch_decomp_setup(void)
  52. {
  53. }
  54. static inline void arch_decomp_wdog(void)
  55. {
  56. }
  57. #endif