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

Records