~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/driver-api/hsi.rst

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php