1*4882a593SmuzhiyunThis file contains API information of the initialization code written for 2*4882a593SmuzhiyunVitesse cross-point devices, VSC3316 and VSC3308 for board B4860QDS 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunAuthor: Shaveta Leekha <shaveta@freescale.com> 5*4882a593Smuzhiyun 6*4882a593SmuzhiyunAbout Device: 7*4882a593Smuzhiyun============= 8*4882a593SmuzhiyunVSC 3316/3308 is a low-power, low-cost asynchronous crosspoint switch capable of data rates upto 11.5Gbps. 9*4882a593Smuzhiyun 10*4882a593SmuzhiyunVSC3316 has 16 input and 16 output ports whereas VSC3308 has 8 input and 8 output ports. Programming of these devices are performed by two-wire or four-wire serial interface. 11*4882a593Smuzhiyun 12*4882a593SmuzhiyunInitialization: 13*4882a593Smuzhiyun=============== 14*4882a593SmuzhiyunOn reset, VSC devices are in low-power state with all inputs, outputs and connections in an off state. 15*4882a593SmuzhiyunFirst thing required is to program it to interface with either two-wire or four-wire interface. 16*4882a593SmuzhiyunIn our case the interface is two-wire I2C serial interface. So the value in Interface mode register at address 79.h to be written is 0x02 for two-wire interface. Also for crosspoint connections to be activated, 01.h value need to be written in 75.h (core configuration register). 17*4882a593Smuzhiyun 18*4882a593SmuzhiyunAPI Overview: 19*4882a593Smuzhiyun============= 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun vsc_if_enable(u8 vsc_addr): 22*4882a593Smuzhiyun -------------------------- 23*4882a593Smuzhiyun This API programs VSC to interface with either two-wire or four-wire interface. In our case the interface is two-wire I2C serial interface. So the value in Interface mode register at address 79.h to be written is 0x02 for two-wire interface. 24*4882a593Smuzhiyun Parameters: 25*4882a593Smuzhiyun vsc_addr - Address of the VSC device on board. 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun vsc3316_config(u8 vsc_addr, int con_arr[][2], u8 num_con): 29*4882a593Smuzhiyun --------------------------------------------------------- 30*4882a593Smuzhiyun This API configures the VSC3316 device for required connections. Connection through the VSC device requires the inputs and outputs to be properly configured. 31*4882a593Smuzhiyun Connection registers are on page 00. It Configures the selected input and output correctly and join them to make a connection. It also program Input state register, Global input ISE, Global input LOS, Global core control, Output mode register and core control registers etc. 32*4882a593Smuzhiyun vsc3308_config(u8 vsc_addr, int con_arr[][2], u8 num_con) does the essential configurations for VSC3308. 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun Parameters: 35*4882a593Smuzhiyun vsc_addr - Address of the VSC device on board. 36*4882a593Smuzhiyun con_arr - connection array 37*4882a593Smuzhiyun num_con - number of connections to be configured 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun vsc_wp_config(u8 vsc_addr): 40*4882a593Smuzhiyun -------------------------- 41*4882a593Smuzhiyun For crosspoint connections to be activated, 01.h value need to be written in 75.h (core configuration register), which is done by this API. 42*4882a593Smuzhiyun Parameters: 43*4882a593Smuzhiyun vsc_addr - Address of the VSC device on board. 44