USBCSwitchPro

Class

class aUSBCSwitchPro : public Acroname::BrainStem::Module

Concrete Module implementation of a USBCSwitchPro Allows a user to connect to and control an attached switch.

Public Types

enum PORT_ID

Port ID

Values:

enumerator kPORT_ID_0
enumerator kPORT_ID_1
enumerator kPORT_ID_2
enumerator kPORT_ID_3
enumerator kPORT_ID_COMMON
enumerator kPORT_ID_CONTROL
enum EQUALIZER_3P0_TRANSMITTER_CONFIGS

Equalizer 3P0 transmitter configs

Values:

enumerator MUX_1db_COM_0db_900mV
enumerator MUX_0db_COM_1db_900mV
enumerator MUX_1db_COM_1db_900mV
enumerator MUX_0db_COM_0db_900mV
enumerator MUX_0db_COM_0db_1100mV
enumerator MUX_1db_COM_0db_1100mV
enumerator MUX_0db_COM_1db_1100mV
enumerator MUX_2db_COM_2db_1100mV
enumerator MUX_0db_COM_0db_1300mV
enum EQUALIZER_3P0_RECEIVER_CONFIGS

Equalizer 3P0 receiver configs

Values:

enumerator LEVEL_1_3P0
enumerator LEVEL_2_3P0
enumerator LEVEL_3_3P0
enumerator LEVEL_4_3P0
enumerator LEVEL_5_3P0
enumerator LEVEL_6_3P0
enumerator LEVEL_7_3P0
enumerator LEVEL_8_3P0
enumerator LEVEL_9_3P0
enumerator LEVEL_10_3P0
enumerator LEVEL_11_3P0
enumerator LEVEL_12_3P0
enumerator LEVEL_13_3P0
enumerator LEVEL_14_3P0
enumerator LEVEL_15_3P0
enumerator LEVEL_16_3P0
enum EQUALIZER_2P0_TRANSMITTER_CONFIGS

Equalizer 2P0 transmitter configs

Values:

enumerator TRANSMITTER_2P0_40mV
enumerator TRANSMITTER_2P0_60mV
enumerator TRANSMITTER_2P0_80mV
enumerator TRANSMITTER_2P0_0mV
enum EQUALIZER_2P0_RECEIVER_CONFIGS

Equalizer 3P0 receiver configs

Values:

enumerator LEVEL_1_2P0
enumerator LEVEL_2_2P0
enum EQUALIZER_CHANNELS

Equalizer channels

Values:

enumerator BOTH
enumerator MUX
enumerator COMMON
typedef enum aUSBCSwitchPro::PORT_ID PORT_ID_t

Port ID

Public Members

Acroname::BrainStem::AppClass app[aUSBCSWITCHPRO_NUM_APPS]

App Class

Acroname::BrainStem::PointerClass pointer[aUSBCSWITCHPRO_NUM_POINTERS]

Pointer Class

Acroname::BrainStem::RailClass rail[aUSBCSWITCHPRO_NUM_RAILS]

Rail Class

Acroname::BrainStem::StoreClass store[aUSBCSWITCHPRO_NUM_STORES]

Store Class

Acroname::BrainStem::SystemClass system

System Class

Acroname::BrainStem::TemperatureClass temperature[aUSBCSWITCHPRO_NUM_TEMPERATURES]

Temperature Class

Acroname::BrainStem::TimerClass timer[aUSBCSWITCHPRO_NUM_TIMERS]

Timer Class

Acroname::BrainStem::I2CClass i2c[aUSBCSWITCHPRO_NUM_I2C]

I2C Class

Acroname::BrainStem::USBClass usb

USB Class

Acroname::BrainStem::UARTClass uart[aUSBCSWITCHPRO_NUM_UART]

UART Class

Acroname::BrainStem::MuxClass mux

Mux Class

Acroname::BrainStem::EqualizerClass equalizer[aUSBCSWITCHPRO_NUM_EQ]

Equalizer Class

Defines

aUSBCSWITCHPRO_MODULE 16

USBCSwitchPro module number

aUSBCSWITCHPRO_NUM_APPS 4

Number of App instances available

aUSBCSWITCHPRO_NUM_POINTERS 4

Number of Pointer instances available

aUSBCSWITCHPRO_NUM_STORES 3

Number of Store instances available

aUSBCSWITCHPRO_NUM_INTERNAL_SLOTS 12

Store: Number of internal slots instances available

aUSBCSWITCHPRO_NUM_RAM_SLOTS 1

Store: Number of RAM slot instances available

aUSBCSWITCHPRO_NUM_EEPROM_SLOTS 8

Store: Number of EEPROM slot instances available

aUSBCSWITCHPRO_STORE_INTERNAL_INDEX 0

Store: Array index for internal store

aUSBCSWITCHPRO_STORE_RAM_INDEX 1

Store: Array index for RAM store

aUSBCSWITCHPRO_STORE_EEPROM_INDEX 2

Store: Array index for EEPROM store

aUSBCSWITCHPRO_NUM_TEMPERATURES 5

Number of Temperature instances available

aUSBCSWITCHPRO_NUM_TIMERS 8

Number of Timer instances available

aUSBCSWITCHPRO_NUM_USB 1

Number of USB instances available

aUSBCSWITCHPRO_NUM_USB_PORTS 6

Number of USB ports available

aUSBCSWITCHPRO_NUM_PORTS 6

Number of Ports available

aUSBCSWITCHPRO_NUM_PD_PORTS 6

Number of PD compatible ports available

aUSBCSWITCHPRO_NUM_PD_RULES_PER_PORT 7

Number of PD Rules per port available

aUSBCSWITCHPRO_NUM_RAILS 1

Number of Rail instances available

aUSBCSWITCHPRO_NUM_I2C 1

Number of I2C instances available

aUSBCSWITCHPRO_NUM_UART 2

Number of UART instances available

aUSBCSWITCHPRO_NUM_MUX 1

Number of Mux instances available

aUSBCSWITCHPRO_NUM_MUX_CHANNELS 4

Number of Mux channels available

aUSBCSWITCHPRO_NUM_EQ 2

Number of Equalizer instances available

Port State Defines

usbPortStateVBUS 0

USB VBUS current state

usbPortStateUSB2A 1

USB2 side A current state

usbPortStateUSB2B 2

USB2 side B current state

usbPortStateSBU 3

SBU current state

usbPortStateSS1 4

SS1 current state

usbPortStateSS2 5

SS2 A current state

usbPortStateCC1 6

CC1 current state

usbPortStateCC2 7

CC2 A current state

set_usbPortStateCOM_ORIENT_STATUS(var, state) ((var & ~(3 << 8 )) | (state << 8))

Common side orientation status

get_usbPortStateCOM_ORIENT_STATUS(var) ((var &  (3 << 8 )) >> 8)

Common side orientation status

set_usbPortStateMUX_ORIENT_STATUS(var, state) ((var & ~(3 << 10 )) | (state << 10))

Mux side orientation status

get_usbPortStateMUX_ORIENT_STATUS(var) ((var &  (3 << 10 )) >> 10)

Mux side orientation status

set_usbPortStateSPEED_STATUS(var, state) ((var & ~(3 << 12)) | (state << 12))

USB speed status

get_usbPortStateSPEED_STATUS(var) ((var &  (3 << 12)) >> 12)

USB speed status

usbPortStateCCFlip 14

CC flip status

usbPortStateSSFlip 15

SS flip status

usbPortStateSBUFlip 16

SBU flip status

usbPortStateUSB2Flip 17

USB2 flip status

get_usbPortStateDaughterCard(var) ((var & (3 << 18)) >> 18)

Daughter card status

usbPortStateErrorFlag 20

Error indicator for this port

usbPortStateUSB2Boost 21

USB2 boost current state

usbPortStateUSB3Boost 22

USB3 boost current state

usbPortStateConnectionEstablished 23

Connection established state

usbPortStateCC1Inject 26

CC1 inject current state

usbPortStateCC2Inject 27

CC2 inject current state

usbPortStateCC1Detect 28

CC1 detect current state

usbPortStateCC2Detect 29

CC2 detect current state

usbPortStateCC1LogicState 30

CC1 logic current state

usbPortStateCC2LogicState 31

CC2 logic current state

Port State Error Defines

usbPortStateOff 0

Indicator for port state off

usbPortStateSideA 1

Indicator for port side A

usbPortStateSideB 2

Indicator for port side B

usbPortStateSideUndefined 3

Indicator for port side undefined