class Switches1Reg
Defined at line 203 of file ../../src/devices/power/drivers/fusb302/registers.h
SWITCHES1 - Configures the BMC PHY.
This register has reserved/undocumented bits. It can only be safely updated
via read/modify/write operations.
After reset, the GoodCRC header bits will be set to (Sink, PD Rev 2.0, UFP).
Rev 5 datasheet: Table 19 on page 20, Figure 12 "USB BMC Power Delivery
Blocks" on page 11, Figure 3 "Functional Block Diagram" on page 3
Public Members
field_power_role_209
field_spec_rev_217
field_data_role_224
field_auto_crc_238
field_txcc2_241
field_txcc1_242
Public Methods
template <, >
usb_pd::PowerRole power_role ()
The "Port Power Role" bit in the header of auto-generated GoodCRC messages.
The datasheet values match the values in usbpd3.1 6.2.1.1.4 "Port Power
Role".
Defined at line 209 of file ../../src/devices/power/drivers/fusb302/registers.h
template <, >
SelfType & set_power_role (usb_pd::PowerRole val)
The "Port Power Role" bit in the header of auto-generated GoodCRC messages.
The datasheet values match the values in usbpd3.1 6.2.1.1.4 "Port Power
Role".
Defined at line 209 of file ../../src/devices/power/drivers/fusb302/registers.h
template <, >
SelfType & set_spec_rev (usb_pd::SpecRevision val)
The "Spec Revision" bits in the header of auto-generated GoodCRC messages.
The datasheet values match the values in usbpd3.1 6.2.1.1.5 "Specification
Revision". While the Rev 5 datasheet marks 0b10 (Revision 3.0) as "Do Not
Use", experiments with a FUSB302BMPX did not encounter any issue using the
Revision 3.0 value.
Defined at line 217 of file ../../src/devices/power/drivers/fusb302/registers.h
template <, >
usb_pd::SpecRevision spec_rev ()
The "Spec Revision" bits in the header of auto-generated GoodCRC messages.
The datasheet values match the values in usbpd3.1 6.2.1.1.5 "Specification
Revision". While the Rev 5 datasheet marks 0b10 (Revision 3.0) as "Do Not
Use", experiments with a FUSB302BMPX did not encounter any issue using the
Revision 3.0 value.
Defined at line 217 of file ../../src/devices/power/drivers/fusb302/registers.h
template <, >
usb_pd::DataRole data_role ()
The "Port Data Role" bit in the header of auto-generated GoodCRC messages.
The datasheet values are intended to match the values in usbpd3.1 6.2.1.1.6
"Port Data Role". The datasheet conflates the power roles Sink/Source with
the data roles UFP/DFP.
Defined at line 224 of file ../../src/devices/power/drivers/fusb302/registers.h
template <, >
SelfType & set_data_role (usb_pd::DataRole val)
The "Port Data Role" bit in the header of auto-generated GoodCRC messages.
The datasheet values are intended to match the values in usbpd3.1 6.2.1.1.6
"Port Data Role". The datasheet conflates the power roles Sink/Source with
the data roles UFP/DFP.
Defined at line 224 of file ../../src/devices/power/drivers/fusb302/registers.h
template <, >
typename SelfType::ValueType auto_crc ()
If true, the PD Protocol Layer generates and sends GoodCRC messages.
This bit enables the hardware implementation of usbpd3.1 6.3.1 "GoodCRC
Message".
Delegating GoodCRC generation to the hardware relieves the application
processor from having to react to every USB PD message in 195 us (tTransmit
in usbpd3.1). On the flip side, having the PD Protocol Layer acknowledge
all received messages leads to tighter timing requirements in some cases.
For example, a Sink has 5 seconds (tNoResponse) to generate a Request in
response to a Source_Capabilities, but that time is cut down to 30
milliseconds (tSenderResponse) after the Sink sends GoodCRC.
Defined at line 238 of file ../../src/devices/power/drivers/fusb302/registers.h
template <, >
SelfType & set_auto_crc (typename SelfType::ValueType val)
If true, the PD Protocol Layer generates and sends GoodCRC messages.
This bit enables the hardware implementation of usbpd3.1 6.3.1 "GoodCRC
Message".
Delegating GoodCRC generation to the hardware relieves the application
processor from having to react to every USB PD message in 195 us (tTransmit
in usbpd3.1). On the flip side, having the PD Protocol Layer acknowledge
all received messages leads to tighter timing requirements in some cases.
For example, a Sink has 5 seconds (tNoResponse) to generate a Request in
response to a Source_Capabilities, but that time is cut down to 30
milliseconds (tSenderResponse) after the Sink sends GoodCRC.
Defined at line 238 of file ../../src/devices/power/drivers/fusb302/registers.h
template <, >
SelfType & set_txcc2 (typename SelfType::ValueType val)
Read/written by {Set}BmcPhyConnection().
Defined at line 241 of file ../../src/devices/power/drivers/fusb302/registers.h
template <, >
typename SelfType::ValueType txcc2 ()
Read/written by {Set}BmcPhyConnection().
Defined at line 241 of file ../../src/devices/power/drivers/fusb302/registers.h
template <, >
SelfType & set_txcc1 (typename SelfType::ValueType val)
Defined at line 242 of file ../../src/devices/power/drivers/fusb302/registers.h
template <, >
typename SelfType::ValueType txcc1 ()
NOLINTEND(misc-non-private-member-variables-in-classes)
Defined at line 242 of file ../../src/devices/power/drivers/fusb302/registers.h
hwreg::I2cRegisterAddr<Switches1Reg> Get ()
Defined at line 247 of file ../../src/devices/power/drivers/fusb302/registers.h
usb_pd::ConfigChannelPinSwitch BmcPhyConnection ()
Defined at line 1307 of file ../../src/devices/power/drivers/fusb302/registers.h
Switches1Reg & SetBmcPhyConnection (usb_pd::ConfigChannelPinSwitch connection)
Defined at line 1317 of file ../../src/devices/power/drivers/fusb302/registers.h