Skip to content

LPSS Private Space

alexandred edited this page Oct 9, 2015 · 6 revisions

As well as having registers related to its own functionality, each LPSS device exposes a private register space which gives access to more lower-level aspects of the hardware. Each LPSS device has its private registry at a certain offset in its memory space. These are listed below:

  • LPT - 0x800 (TODO: what is LPT?)
  • I2C
    • Lynxpoint - 0x800
    • Baytrail - 0x800
  • UART
    • Lynxpoint - 0x800
    • Baytrail - 0x800
  • SDIO
    • Lynxpoint - 0x1000
  • SPI - 0x400
    • Baytrail - 0x400
    • Braswell - 0x400

The following is the list of general private space registers:

  • 0x00 - Clock Gate

    • This bit needs to be set to 1 on initialisation in order for the host controller to communicate with slave devices
  • 0x04 - Rests

  • 0x20 - Transaction Interrupt Mask

    • The LPSS UART device has an extra transaction complete interrupt. This register used to mask the interrupts to prevent an interrupt flood. Its value should be set to
#define LPSS_TX_INT_MASK		BIT(1)

More information can be found in this datasheet: http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/4th-gen-core-family-mobile-i-o-datasheet.pdf

Clone this wiki locally