class GMBusClockPortSelect
Defined at line 64 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
GMBUS0
(Graphic Management Bus Configuration Register 0 -- Clock / Port Select)
This register controls the clock rate of the serial bus and selects the
device pin pair the controller is connected to. This register must be
configured before the first data valid bit is set.
Some of this register's reserved fields are not MBZ (must be zero). So, the
register can only be updated safely via read-modify-write operations.
Tiger Lake: IHD-OS-TGL-Vol 2c-1.22-Rev 2.0 Part 1, Page 1020
Kaby Lake: IHD-OS-KBL-Vol 2c-1.17 Part 1, Page 728
Skylake: IHD-OS-SKL-Vol 2c-05.16 Part 1, Page 723
Public Members
field_RsvdZ_94
field_bus_rate_select_106
field_byte_count_overridden_117
field_pin_pair_select_135
Public Methods
template <, >
BusRate bus_rate_select ()
This selects the clock rate of the serial bus, i.e. the I2C protocol clock
when drivers use GMBUS for data transfer. It defines the AC timing
parameters used for different bus rates / I2C bus mode.
This field must only be changed when the `is_active` field in
`GMBusControllerStatus` (GMBUS2) register is false, i.e. the GMBUS is idle.
Note that this only changes the clock rate when transferring data using
GMBUS protocol. If drivers implements software-based bit banging using the
raw GPIO pins, they don't need to follow the bus rate.
Defined at line 106 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
template <, >
SelfType & set_bus_rate_select (BusRate val)
This selects the clock rate of the serial bus, i.e. the I2C protocol clock
when drivers use GMBUS for data transfer. It defines the AC timing
parameters used for different bus rates / I2C bus mode.
This field must only be changed when the `is_active` field in
`GMBusControllerStatus` (GMBUS2) register is false, i.e. the GMBUS is idle.
Note that this only changes the clock rate when transferring data using
GMBUS protocol. If drivers implements software-based bit banging using the
raw GPIO pins, they don't need to follow the bus rate.
Defined at line 106 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
template <, >
typename SelfType::ValueType byte_count_overridden ()
This field overrides the `total_byte_count` field on `GMBusCommand`
(GMBUS1) register. When this bit is enabled, the device will allow burst
reads greater than 511 bytes.
On Tiger Lake, this feature is supported.
On Skylake, this feature is not supported and the bit must be zero.
The underlying feature is not implemented on some PCH chipsets used with
Kaby Lake display engines. The models are listed in IHD-OS-KBL-Vol 12-1.17
section "Sequence for GMBUS Burst Reads Greater Than 511 Bytes", page 199.
Defined at line 117 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
template <, >
SelfType & set_byte_count_overridden (typename SelfType::ValueType val)
This field overrides the `total_byte_count` field on `GMBusCommand`
(GMBUS1) register. When this bit is enabled, the device will allow burst
reads greater than 511 bytes.
On Tiger Lake, this feature is supported.
On Skylake, this feature is not supported and the bit must be zero.
The underlying feature is not implemented on some PCH chipsets used with
Kaby Lake display engines. The models are listed in IHD-OS-KBL-Vol 12-1.17
section "Sequence for GMBUS Burst Reads Greater Than 511 Bytes", page 199.
Defined at line 117 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
template <, >
typename SelfType::ValueType pin_pair_select ()
In Intel Display Engine, every DDI is allocated a pair of numbered GPIO
pins for I2C / GMBUS communication.
This field selects a GMBUS pin pair for use in the GMBUS communication.
The DDI
<
-> pin pair mapping varies by platform. The mapping is available
at: Tiger Lake: IHD-OS-TGL-Vol 2c-1.22-Rev 2.0 Part 1, Page 1020 Kaby Lake:
IHD-OS-KBL-Vol 2c-1.17 Part 1, Page 728 Skylake: IHD-OS-SKL-Vol 2c-05.16
Part 1, Page 723
Note that the GMBUS pin pair ID may not be equal to the GPIO pin pair ID.
Note: On Skylake and Kaby Lake, only bits 2:0 are defined for this field
but bits 4:3 are reserved as "must be zero"; for compatibility we use the
same field definition across platforms, but the highest two bits on Skylake
and Kaby Lake will always be zero.
Defined at line 135 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
template <, >
SelfType & set_pin_pair_select (typename SelfType::ValueType val)
In Intel Display Engine, every DDI is allocated a pair of numbered GPIO
pins for I2C / GMBUS communication.
This field selects a GMBUS pin pair for use in the GMBUS communication.
The DDI
<
-> pin pair mapping varies by platform. The mapping is available
at: Tiger Lake: IHD-OS-TGL-Vol 2c-1.22-Rev 2.0 Part 1, Page 1020 Kaby Lake:
IHD-OS-KBL-Vol 2c-1.17 Part 1, Page 728 Skylake: IHD-OS-SKL-Vol 2c-05.16
Part 1, Page 723
Note that the GMBUS pin pair ID may not be equal to the GPIO pin pair ID.
Note: On Skylake and Kaby Lake, only bits 2:0 are defined for this field
but bits 4:3 are reserved as "must be zero"; for compatibility we use the
same field definition across platforms, but the highest two bits on Skylake
and Kaby Lake will always be zero.
Defined at line 135 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
GMBusClockPortSelect & SetPinPair (const intel_display::GMBusPinPair & pin_pair)
Helper to select typed `pin_pair` for GMBUS communication.
Defined at line 138 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
hwreg::RegisterAddr<GMBusClockPortSelect> Get ()
Defined at line 142 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h
Enumerations
enum BusRate
| Name | Value |
|---|---|
| k100Khz | 0b000 |
| k50Khz | 0b001 |
| k400KhzUnsupported | 0b010 |
| k1MhzUnsupported | 0b011 |
Defined at line 66 of file ../../src/graphics/display/drivers/intel-display/registers-gmbus.h