class DisplayPllDcoDividersTigerLake
Defined at line 855 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
DPLL_CFGCR1 (Display PLL Configuration and Control Register 1?)
This register configures the frequency dividers between the DCO
(Digitally-Controlled Oscillator) in the DPLL and the DPLL's AFE (Analog
Front-End) clock output, which goes to connected DDIs. The frequency output
by the DPLL to DDIs, also called AFE clock frequency, is the DCO frequency
configured in DPLL_CFGCR1 divided by the product of all the dividers (P * Q *
K, also documented as P0 * P1 * P2) in this register.
Unfortunately, Intel's documentation refers to the DCO frequency dividers
both as (P0, P1, P2) and as (P, Q, K). Fortunately, both variations use short
names, so we can use both variations in our names below. This facilitates
checking our code against documents that use either naming variation.
This register's reserved fields are all MBZ (must be zero). So, this register
can be safely written without reading it first.
The Kaby Lake and Skylake equivalent of this register is
`DisplayPllDcoDividersTigerLake` (DPLL_CFGCR2).
Tiger Lake: IHD-OS-TGL-Vol 2c-1.22-Rev2.0 Part 1 pages 651-652
DG1: IHD-OS-DG1-Vol 2c-2.21 Part 1 pages 615-616
Ice Lake: IHD-OS-ICLLP-Vol 2c-1.22-Rev2.0 Part 1 pages 473-474
Public Members
field_RsvdZ_858
field_q_p1_divider_select_862
field_q_p1_divider_select_enabled_866
field_k_p2_divider_select_899
field_p_p0_divider_select_949
field_reference_clock_select_1006
Public Methods
template <, >
typename SelfType::ValueType q_p1_divider_select ()
This field has a non-trivial representation and should be accessed via the
`q_p1_divider() and `set_q_p1_divider()` helpers.
Defined at line 862 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
template <, >
SelfType & set_q_p1_divider_select (typename SelfType::ValueType val)
This field has a non-trivial representation and should be accessed via the
`q_p1_divider() and `set_q_p1_divider()` helpers.
Defined at line 862 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
template <, >
typename SelfType::ValueType q_p1_divider_select_enabled ()
This field has a non-trivial representation and should be accessed via the
`q_p1_divider() and `set_q_p1_divider()` helpers.
Defined at line 866 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
template <, >
SelfType & set_q_p1_divider_select_enabled (typename SelfType::ValueType val)
This field has a non-trivial representation and should be accessed via the
`q_p1_divider() and `set_q_p1_divider()` helpers.
Defined at line 866 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
uint8_t q_p1_divider ()
The value of the Q (P1) divider.
This field must not be zero. Any other value (1-255) is acceptable.
The Q divider must be 1 (disabled) if the K divider is not 2. This
requirement is also stated as ensuring a 50% duty cycle for this divider.
Defined at line 874 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
DisplayPllDcoDividersTigerLake & set_q_p1_divider (uint8_t q_p1_divider)
See `q_p1_divider()` for details.
Defined at line 885 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
template <, >
KP2DividerSelect k_p2_divider_select ()
This field has a non-trivial representation and should be accessed via the
`k_p2_divider() and `set_k_p2_divider()` helpers.
Defined at line 899 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
template <, >
SelfType & set_k_p2_divider_select (KP2DividerSelect val)
This field has a non-trivial representation and should be accessed via the
`k_p2_divider() and `set_k_p2_divider()` helpers.
Defined at line 899 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
uint8_t k_p2_divider ()
The K (P2) divider.
The preferred value is 2. If the K divider is not 2, this constrains both
the Q (P1) divider and the P (P0) divider.
This helper returns 0 if the field is set to an undocumented value.
Defined at line 907 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
DisplayPllDcoDividersTigerLake & set_k_p2_divider (uint8_t k_p2_divider)
See `k_p2_divider()` for details.
Defined at line 920 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
template <, >
PP0DividerSelect p_p0_divider_select ()
This field has a non-trivial representation and should be accessed via the
`k_p2_divider() and `set_k_p2_divider()` helpers.
Defined at line 949 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
template <, >
SelfType & set_p_p0_divider_select (PP0DividerSelect val)
This field has a non-trivial representation and should be accessed via the
`k_p2_divider() and `set_k_p2_divider()` helpers.
Defined at line 949 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
uint8_t p_p0_divider ()
The P (P0) divider.
The P (P0) divider can only be 1 if the Q (P1) divider is also 1.
This helper returns 0 if the field is set to an undocumented value.
Defined at line 956 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
DisplayPllDcoDividersTigerLake & set_p_p0_divider (uint8_t p_p0_divider)
See `p_p0_divider()` for details.
Defined at line 971 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
template <, >
ReferenceClockSelect reference_clock_select ()
The reference clock source for the DCO.
In most cases, this should be set to `kDisplayReference`, the XTAL (crystal
oscillator) that serves as the display engine reference frequency. The
display controller sets this for genlocked transcoders.
Defined at line 1006 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
template <, >
SelfType & set_reference_clock_select (ReferenceClockSelect val)
The reference clock source for the DCO.
In most cases, this should be set to `kDisplayReference`, the XTAL (crystal
oscillator) that serves as the display engine reference frequency. The
display controller sets this for genlocked transcoders.
Defined at line 1006 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
hwreg::RegisterAddr<DisplayPllDcoDividersTigerLake> GetForDpll (intel_display::PllId pll_id)
Defined at line 1008 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
Enumerations
enum KP2DividerSelect
| Name | Value |
|---|---|
| k1 | 0b001 |
| k2 | 0b010 |
| k3 | 0b100 |
Possible values for the `k_p2_divider_select` field.
Defined at line 891 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
enum PP0DividerSelect
| Name | Value |
|---|---|
| k2 | 0b0001 |
| k3 | 0b0010 |
| k5 | 0b0100 |
| k7 | 0b1000 |
Documented values for the `p_p0_divider_select` field.
Defined at line 940 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h
enum ReferenceClockSelect
| Name | Value |
|---|---|
| kDisplayReference | 0b00 |
| kUnfilteredGenlock | 0b01 |
| kInvalid | 0b10 |
| kFilteredGenlock | 0b11 |
Possible values for the `reference_clock_select` field.
Defined at line 994 of file ../../src/graphics/display/drivers/intel-display/registers-dpll.h