xref: /openbmc/u-boot/doc/README.VSC3316-3308 (revision bf48fcb6)
1This file contains API information of the initialization code written for
2Vitesse cross-point devices, VSC3316 and VSC3308 for board B4860QDS
3
4Author: Shaveta Leekha <shaveta@freescale.com>
5
6About Device:
7=============
8VSC 3316/3308 is a low-power, low-cost asynchronous crosspoint switch capable of data rates upto 11.5Gbps.
9
10VSC3316 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
12Initialization:
13===============
14On reset, VSC devices are in low-power state with all inputs, outputs and connections in an off state.
15First thing required is to program it to interface with either two-wire or four-wire interface.
16In 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
18API Overview:
19=============
20
21	vsc_if_enable(u8 vsc_addr):
22	--------------------------
23		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	Parameters:
25		vsc_addr - Address of the VSC device on board.
26
27
28	vsc3316_config(u8 vsc_addr, int con_arr[][2], u8 num_con):
29	---------------------------------------------------------
30	This API configures the VSC3316 device for required connections. Connection through the VSC device requires the inputs and outputs to be properly configured.
31	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	vsc3308_config(u8 vsc_addr, int con_arr[][2], u8 num_con) does the essential configurations for VSC3308.
33
34	Parameters:
35		vsc_addr - Address of the VSC device on board.
36		con_arr - connection array
37		num_con - number of connections to be configured
38
39	vsc_wp_config(u8 vsc_addr):
40	--------------------------
41		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	Parameters:
43		vsc_addr - Address of the VSC device on board.
44