kmi.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. * linux/include/asm-arm/hardware/amba_kmi.h
  4. *
  5. * Internal header file for AMBA KMI ports
  6. *
  7. * Copyright (C) 2000 Deep Blue Solutions Ltd.
  8. *
  9. * ---------------------------------------------------------------------------
  10. * From ARM PrimeCell(tm) PS2 Keyboard/Mouse Interface (PL050) Technical
  11. * Reference Manual - ARM DDI 0143B - see http://www.arm.com/
  12. * ---------------------------------------------------------------------------
  13. */
  14. #ifndef ASM_ARM_HARDWARE_AMBA_KMI_H
  15. #define ASM_ARM_HARDWARE_AMBA_KMI_H
  16. /*
  17. * KMI control register:
  18. * KMICR_TYPE 0 = PS2/AT mode, 1 = No line control bit mode
  19. * KMICR_RXINTREN 1 = enable RX interrupts
  20. * KMICR_TXINTREN 1 = enable TX interrupts
  21. * KMICR_EN 1 = enable KMI
  22. * KMICR_FD 1 = force KMI data low
  23. * KMICR_FC 1 = force KMI clock low
  24. */
  25. #define KMICR (KMI_BASE + 0x00)
  26. #define KMICR_TYPE (1 << 5)
  27. #define KMICR_RXINTREN (1 << 4)
  28. #define KMICR_TXINTREN (1 << 3)
  29. #define KMICR_EN (1 << 2)
  30. #define KMICR_FD (1 << 1)
  31. #define KMICR_FC (1 << 0)
  32. /*
  33. * KMI status register:
  34. * KMISTAT_TXEMPTY 1 = transmitter register empty
  35. * KMISTAT_TXBUSY 1 = currently sending data
  36. * KMISTAT_RXFULL 1 = receiver register ready to be read
  37. * KMISTAT_RXBUSY 1 = currently receiving data
  38. * KMISTAT_RXPARITY parity of last databyte received
  39. * KMISTAT_IC current level of KMI clock input
  40. * KMISTAT_ID current level of KMI data input
  41. */
  42. #define KMISTAT (KMI_BASE + 0x04)
  43. #define KMISTAT_TXEMPTY (1 << 6)
  44. #define KMISTAT_TXBUSY (1 << 5)
  45. #define KMISTAT_RXFULL (1 << 4)
  46. #define KMISTAT_RXBUSY (1 << 3)
  47. #define KMISTAT_RXPARITY (1 << 2)
  48. #define KMISTAT_IC (1 << 1)
  49. #define KMISTAT_ID (1 << 0)
  50. /*
  51. * KMI data register
  52. */
  53. #define KMIDATA (KMI_BASE + 0x08)
  54. /*
  55. * KMI clock divisor: to generate 8MHz internal clock
  56. * div = (ref / 8MHz) - 1; 0 <= div <= 15
  57. */
  58. #define KMICLKDIV (KMI_BASE + 0x0c)
  59. /*
  60. * KMI interrupt register:
  61. * KMIIR_TXINTR 1 = transmit interrupt asserted
  62. * KMIIR_RXINTR 1 = receive interrupt asserted
  63. */
  64. #define KMIIR (KMI_BASE + 0x10)
  65. #define KMIIR_TXINTR (1 << 1)
  66. #define KMIIR_RXINTR (1 << 0)
  67. /*
  68. * The size of the KMI primecell
  69. */
  70. #define KMI_SIZE (0x100)
  71. #endif