class GMBusData
Defined at line 400 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
GMBUS3
(Graphic Management Bus Configuration Register 3 -- Data)
This register stores data bits staged for the GMBUS controller to write, or
data bits retrieved by the GMBUS controller.
This register must be accessed only when `is_ready` bit of
`GMBusControllerStatus` register is true. Otherwise the behavior is
undefined. The value of this register is double-buffered on the `is_ready`
bit.
- During write cycles, the data bits staged to this register will be copied
into an internal I2C write buffer and written onto the I2C bus by GMBUS
controller, during which `is_ready` bit will become false. Writing data to
this register triggers this procedure.
- During read cycles, the data bits read from the I2C bus by GMBUS controller
are copied from the internal I2C write buffer to this register. Reading
this register causes `is_ready` bit to become false and triggers a new read
cycle.
- The least significant bit (bit 0) is first to read / write in I2C
transaction and the most significant bit (bit 31) is the last bit to read /
write.
This register doesn't contain any reserved fields / bits. So, the register
can be safely updated without reading it first.
This register is written protected when `software_clear_interrupt` in
`GMBusCommand` (GMBUS1) register is enabled.
Tiger Lake: IHD-OS-TGL-Vol 2c-1.22-Rev 2.0 Part 1, Page 1028
Kaby Lake: IHD-OS-KBL-Vol 2c-1.17 Part 1, Page 736
Skylake: IHD-OS-SKL-Vol 2c-05.16 Part 1, Page 730
Public Members
field_data_byte_3_405
field_data_byte_2_410
field_data_byte_1_415
field_data_byte_0_420
Public Methods
template <, >
typename SelfType::ValueType data_byte_3 ()
Data byte #3 (most significant byte).
The helpers `data()` and `set_data()` should be preferred to accessing the
field directly.
Defined at line 405 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
template <, >
SelfType & set_data_byte_3 (typename SelfType::ValueType val)
Data byte #3 (most significant byte).
The helpers `data()` and `set_data()` should be preferred to accessing the
field directly.
Defined at line 405 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
template <, >
typename SelfType::ValueType data_byte_2 ()
Data byte #2.
The helpers `data()` and `set_data()` should be preferred to accessing the
field directly.
Defined at line 410 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
template <, >
SelfType & set_data_byte_2 (typename SelfType::ValueType val)
Data byte #2.
The helpers `data()` and `set_data()` should be preferred to accessing the
field directly.
Defined at line 410 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
template <, >
typename SelfType::ValueType data_byte_1 ()
Data byte #1.
The helpers `data()` and `set_data()` should be preferred to accessing the
field directly.
Defined at line 415 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
template <, >
SelfType & set_data_byte_1 (typename SelfType::ValueType val)
Data byte #1.
The helpers `data()` and `set_data()` should be preferred to accessing the
field directly.
Defined at line 415 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
template <, >
typename SelfType::ValueType data_byte_0 ()
Data byte #0 (least significant byte).
The helpers `data()` and `set_data()` should be preferred to accessing the
field directly.
Defined at line 420 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
template <, >
SelfType & set_data_byte_0 (typename SelfType::ValueType val)
Data byte #0 (least significant byte).
The helpers `data()` and `set_data()` should be preferred to accessing the
field directly.
Defined at line 420 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
std::array<const uint8_t, 4> data ()
Helper method getting `data_byte_3`, `data_byte_2`, `data_byte_1` and
`data_byte_0` fields read from the data register.
This always returns all four bytes. The caller must only use the bytes
within `total_byte_count` range.
Defined at line 427 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
GMBusData & set_data (cpp20::span<const uint8_t> data)
Helper method setting `data_byte_3`, `data_byte_2`, `data_byte_1` and
`data_byte_0` fields to write to the data register.
`data` must have at most 4 elements.
Defined at line 440 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
hwreg::RegisterAddr<GMBusData> Get ()
Defined at line 457 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h