mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	Documentation: HSI: Add some general description for the HSI subsystem
Add a document, which gives a rough introduction about what HSI is and how its handled by the Linux kernel. Signed-off-by: Sebastian Reichel <sre@kernel.org> Reviewed-by: Pavel Machek <pavel@ucw.cz>
This commit is contained in:
		
							parent
							
								
									d1db0eea85
								
							
						
					
					
						commit
						3a8ab8af08
					
				
					 1 changed files with 75 additions and 0 deletions
				
			
		
							
								
								
									
										75
									
								
								Documentation/hsi.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								Documentation/hsi.txt
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,75 @@
 | 
				
			||||||
 | 
					HSI - High-speed Synchronous Serial Interface
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Introduction
 | 
				
			||||||
 | 
					~~~~~~~~~~~~~~~
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					High Speed Syncronous Interface (HSI) is a fullduplex, low latency protocol,
 | 
				
			||||||
 | 
					that is optimized for die-level interconnect between an Application Processor
 | 
				
			||||||
 | 
					and a Baseband chipset. It has been specified by the MIPI alliance in 2003 and
 | 
				
			||||||
 | 
					implemented by multiple vendors since then.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The HSI interface supports full duplex communication over multiple channels
 | 
				
			||||||
 | 
					(typically 8) and is capable of reaching speeds up to 200 Mbit/s.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The serial protocol uses two signals, DATA and FLAG as combined data and clock
 | 
				
			||||||
 | 
					signals and an additional READY signal for flow control. An additional WAKE
 | 
				
			||||||
 | 
					signal can be used to wakeup the chips from standby modes. The signals are
 | 
				
			||||||
 | 
					commonly prefixed by AC for signals going from the application die to the
 | 
				
			||||||
 | 
					cellular die and CA for signals going the other way around.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					+------------+                                 +---------------+
 | 
				
			||||||
 | 
					|  Cellular  |                                 |  Application  |
 | 
				
			||||||
 | 
					|    Die     |                                 |      Die      |
 | 
				
			||||||
 | 
					|            | - - - - - - CAWAKE - - - - - - >|               |
 | 
				
			||||||
 | 
					|           T|------------ CADATA ------------>|R              |
 | 
				
			||||||
 | 
					|           X|------------ CAFLAG ------------>|X              |
 | 
				
			||||||
 | 
					|            |<----------- ACREADY ------------|               |
 | 
				
			||||||
 | 
					|            |                                 |               |
 | 
				
			||||||
 | 
					|            |                                 |               |
 | 
				
			||||||
 | 
					|            |< - - - - -  ACWAKE - - - - - - -|               |
 | 
				
			||||||
 | 
					|           R|<----------- ACDATA -------------|T              |
 | 
				
			||||||
 | 
					|           X|<----------- ACFLAG -------------|X              |
 | 
				
			||||||
 | 
					|            |------------ CAREADY ----------->|               |
 | 
				
			||||||
 | 
					|            |                                 |               |
 | 
				
			||||||
 | 
					|            |                                 |               |
 | 
				
			||||||
 | 
					+------------+                                 +---------------+
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2. HSI Subsystem in Linux
 | 
				
			||||||
 | 
					~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In the Linux kernel the hsi subsystem is supposed to be used for HSI devices.
 | 
				
			||||||
 | 
					The hsi subsystem contains drivers for hsi controllers including support for
 | 
				
			||||||
 | 
					multi-port controllers and provides a generic API for using the HSI ports.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It also contains HSI client drivers, which make use of the generic API to
 | 
				
			||||||
 | 
					implement a protocol used on the HSI interface. These client drivers can
 | 
				
			||||||
 | 
					use an arbitrary number of channels.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					3. hsi-char Device
 | 
				
			||||||
 | 
					~~~~~~~~~~~~~~~~~~
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Each port automatically registers a generic client driver called hsi_char,
 | 
				
			||||||
 | 
					which provides a charecter device for userspace representing the HSI port.
 | 
				
			||||||
 | 
					It can be used to communicate via HSI from userspace. Userspace may
 | 
				
			||||||
 | 
					configure the hsi_char device using the following ioctl commands:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* HSC_RESET:
 | 
				
			||||||
 | 
					 - flush the HSI port
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* HSC_SET_PM
 | 
				
			||||||
 | 
					 - enable or disable the client.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* HSC_SEND_BREAK
 | 
				
			||||||
 | 
					 - send break
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* HSC_SET_RX
 | 
				
			||||||
 | 
					 - set RX configuration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* HSC_GET_RX
 | 
				
			||||||
 | 
					 - get RX configuration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* HSC_SET_TX
 | 
				
			||||||
 | 
					 - set TX configuration
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* HSC_GET_TX
 | 
				
			||||||
 | 
					 - get TX configuration
 | 
				
			||||||
		Loading…
	
		Reference in a new issue