Shaveta Leekha | aa42cb7 | 2012-10-08 07:44:17 +0000 | [diff] [blame] | 1 | This file contains API information of the initialization code written for |
| 2 | Vitesse cross-point devices, VSC3316 and VSC3308 for board B4860QDS |
| 3 | |
| 4 | Author: Shaveta Leekha <shaveta@freescale.com> |
| 5 | |
| 6 | About Device: |
| 7 | ============= |
| 8 | VSC 3316/3308 is a low-power, low-cost asynchronous crosspoint switch capable of data rates upto 11.5Gbps. |
| 9 | |
| 10 | VSC3316 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 | |
| 12 | Initialization: |
| 13 | =============== |
| 14 | On reset, VSC devices are in low-power state with all inputs, outputs and connections in an off state. |
| 15 | First thing required is to program it to interface with either two-wire or four-wire interface. |
| 16 | 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. Also for crosspoint connections to be activated, 01.h value need to be written in 75.h (core configuration register). |
| 17 | |
| 18 | API 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. |