linux/Documentation/hsi.txt
<<
>>
Prefs
   1HSI - High-speed Synchronous Serial Interface
   2
   31. Introduction
   4~~~~~~~~~~~~~~~
   5
   6High Speed Syncronous Interface (HSI) is a fullduplex, low latency protocol,
   7that is optimized for die-level interconnect between an Application Processor
   8and a Baseband chipset. It has been specified by the MIPI alliance in 2003 and
   9implemented by multiple vendors since then.
  10
  11The HSI interface supports full duplex communication over multiple channels
  12(typically 8) and is capable of reaching speeds up to 200 Mbit/s.
  13
  14The serial protocol uses two signals, DATA and FLAG as combined data and clock
  15signals and an additional READY signal for flow control. An additional WAKE
  16signal can be used to wakeup the chips from standby modes. The signals are
  17commonly prefixed by AC for signals going from the application die to the
  18cellular die and CA for signals going the other way around.
  19
  20+------------+                                 +---------------+
  21|  Cellular  |                                 |  Application  |
  22|    Die     |                                 |      Die      |
  23|            | - - - - - - CAWAKE - - - - - - >|               |
  24|           T|------------ CADATA ------------>|R              |
  25|           X|------------ CAFLAG ------------>|X              |
  26|            |<----------- ACREADY ------------|               |
  27|            |                                 |               |
  28|            |                                 |               |
  29|            |< - - - - -  ACWAKE - - - - - - -|               |
  30|           R|<----------- ACDATA -------------|T              |
  31|           X|<----------- ACFLAG -------------|X              |
  32|            |------------ CAREADY ----------->|               |
  33|            |                                 |               |
  34|            |                                 |               |
  35+------------+                                 +---------------+
  36
  372. HSI Subsystem in Linux
  38~~~~~~~~~~~~~~~~~~~~~~~~~
  39
  40In the Linux kernel the hsi subsystem is supposed to be used for HSI devices.
  41The hsi subsystem contains drivers for hsi controllers including support for
  42multi-port controllers and provides a generic API for using the HSI ports.
  43
  44It also contains HSI client drivers, which make use of the generic API to
  45implement a protocol used on the HSI interface. These client drivers can
  46use an arbitrary number of channels.
  47
  483. hsi-char Device
  49~~~~~~~~~~~~~~~~~~
  50
  51Each port automatically registers a generic client driver called hsi_char,
  52which provides a charecter device for userspace representing the HSI port.
  53It can be used to communicate via HSI from userspace. Userspace may
  54configure the hsi_char device using the following ioctl commands:
  55
  56* HSC_RESET:
  57 - flush the HSI port
  58
  59* HSC_SET_PM
  60 - enable or disable the client.
  61
  62* HSC_SEND_BREAK
  63 - send break
  64
  65* HSC_SET_RX
  66 - set RX configuration
  67
  68* HSC_GET_RX
  69 - get RX configuration
  70
  71* HSC_SET_TX
  72 - set TX configuration
  73
  74* HSC_GET_TX
  75 - get TX configuration
  76