soc/intel/common: prepare for lpss clock split

Apparently Intel had decided to use different clock speeds for
some of its IP blocks in some of its designs. The i2c designware driver
has already been moved into common code allowing for its own Kconfig
value. That currently leaves SPI (UART isn't using the clock currently).
Therefore, remove SOC_INTEL_COMMON_LPSS_CLOCK_MHZ and add
SOC_INTEL_COMMON_BLOCK_GSPI_CLOCK_MHZ to allow for the different clock
speeds present in the system for the various IP blocks.

BUG=b:75306520

Change-Id: I6cb8c2de0ff446b6006bc37645fca64f2b70bf17
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/25608
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Hannah Williams <hannah.williams@intel.com>
Reviewed-by: Subrata Banik <subrata.banik@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Aaron Durbin 2018-04-10 09:24:54 -06:00
parent 6d61db0d2c
commit 551e4be730
7 changed files with 18 additions and 16 deletions

View File

@ -159,13 +159,13 @@ config CPU_ADDR_BITS
int int
default 36 default 36
config SOC_INTEL_COMMON_LPSS_CLOCK_MHZ config SOC_INTEL_COMMON_BLOCK_GSPI_CLOCK_MHZ
int int
default 133 default 133
config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
int int
default SOC_INTEL_COMMON_LPSS_CLOCK_MHZ default SOC_INTEL_COMMON_BLOCK_GSPI_CLOCK_MHZ
config CONSOLE_UART_BASE_ADDRESS config CONSOLE_UART_BASE_ADDRESS
depends on CONSOLE_SERIAL depends on CONSOLE_SERIAL

View File

@ -186,13 +186,13 @@ config SOC_INTEL_CANNONLAKE_LPDDR4_INIT
bool bool
default n default n
config SOC_INTEL_COMMON_LPSS_CLOCK_MHZ config SOC_INTEL_COMMON_BLOCK_GSPI_CLOCK_MHZ
int int
default 120 default 120
config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
int int
default SOC_INTEL_COMMON_LPSS_CLOCK_MHZ default SOC_INTEL_COMMON_BLOCK_GSPI_CLOCK_MHZ
config SOC_INTEL_COMMON_BLOCK_GSPI_MAX config SOC_INTEL_COMMON_BLOCK_GSPI_MAX
int int

View File

@ -30,13 +30,6 @@ config ACPI_CONSOLE
help help
Provide a mechanism for serial console based ACPI debug. Provide a mechanism for serial console based ACPI debug.
config SOC_INTEL_COMMON_LPSS_CLOCK_MHZ
int
help
The clock speed that the controllers in LPSS(GSPI, I2C) are running
at, in MHz. No default is set here as this is an SOC-specific value
and must be provided by the SOC.
config MMA config MMA
bool "Enable MMA (Memory Margin Analysis) support for Intel Core" bool "Enable MMA (Memory Margin Analysis) support for Intel Core"
default n default n

View File

@ -3,6 +3,14 @@ config SOC_INTEL_COMMON_BLOCK_GSPI
help help
Intel Processor Common GSPI support Intel Processor Common GSPI support
config SOC_INTEL_COMMON_BLOCK_GSPI_CLOCK_MHZ
int
depends on SOC_INTEL_COMMON_BLOCK_GSPI
help
The input clock speed into the SPI controller IP block, in MHz.
No default is set here as this is an SOC-specific value
and must be provided by the SOC.
config SOC_INTEL_COMMON_BLOCK_GSPI_MAX config SOC_INTEL_COMMON_BLOCK_GSPI_MAX
int int
depends on SOC_INTEL_COMMON_BLOCK_GSPI depends on SOC_INTEL_COMMON_BLOCK_GSPI

View File

@ -380,7 +380,8 @@ static void gspi_cs_deassert(const struct spi_slave *dev)
static uint32_t gspi_get_clk_div(unsigned int gspi_bus) static uint32_t gspi_get_clk_div(unsigned int gspi_bus)
{ {
const uint32_t ref_clk_mhz = CONFIG_SOC_INTEL_COMMON_LPSS_CLOCK_MHZ; const uint32_t ref_clk_mhz =
CONFIG_SOC_INTEL_COMMON_BLOCK_GSPI_CLOCK_MHZ;
const uint32_t gspi_clk_mhz = gspi_get_bus_clk_mhz(gspi_bus); const uint32_t gspi_clk_mhz = gspi_get_bus_clk_mhz(gspi_bus);
assert(gspi_clk_mhz != 0); assert(gspi_clk_mhz != 0);

View File

@ -22,8 +22,8 @@
void lpss_reset_release(uintptr_t base); void lpss_reset_release(uintptr_t base);
/* /*
* Update clock divider parameters. Clock frequency is * Update clock divider parameters. Clock frequency is dependent on source
* configured as SOC_INTEL_COMMON_LPSS_CLOCK_MHZ * (M / N) * clock frequency of each IP block. Resulting clock will be src_freq * (M / N).
*/ */
void lpss_clk_update(uintptr_t base, uint32_t clk_m_val, uint32_t clk_n_val); void lpss_clk_update(uintptr_t base, uint32_t clk_m_val, uint32_t clk_n_val);

View File

@ -338,13 +338,13 @@ config NO_FADT_8042
help help
Choose this option if you want to disable 8042 Keyboard Choose this option if you want to disable 8042 Keyboard
config SOC_INTEL_COMMON_LPSS_CLOCK_MHZ config SOC_INTEL_COMMON_BLOCK_GSPI_CLOCK_MHZ
int int
default 120 default 120
config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ config DRIVERS_I2C_DESIGNWARE_CLOCK_MHZ
int int
default SOC_INTEL_COMMON_LPSS_CLOCK_MHZ default SOC_INTEL_COMMON_BLOCK_GSPI_CLOCK_MHZ
config SOC_INTEL_COMMON_BLOCK_GSPI_MAX config SOC_INTEL_COMMON_BLOCK_GSPI_MAX
int int