diff --git a/arch/x86/soc/quark_se/Kconfig b/arch/x86/soc/quark_se/Kconfig index 3c20a00a838..e8317742dc6 100644 --- a/arch/x86/soc/quark_se/Kconfig +++ b/arch/x86/soc/quark_se/Kconfig @@ -234,6 +234,9 @@ config GPIO_DW_INIT_PRIORITY config I2C_INIT_PRIORITY default 60 +config SPI_DW_INIT_PRIORITY + default 70 # It might require GPIO to be ready first + if UART_NS16550 config UART_NS16550_PORT_0 diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig index 300b46a1938..5a0e75927a6 100644 --- a/drivers/spi/Kconfig +++ b/drivers/spi/Kconfig @@ -237,6 +237,12 @@ config SPI_DW_CS_GPIO depends on SPI_DW && GPIO default n +config SPI_DW_INIT_PRIORITY + int "Init priority" + default 60 + help + Device driver initialization priority. + choice depends on SPI_DW prompt "DesignWare SPI interrupt trigger condition" diff --git a/drivers/spi/spi_dw.c b/drivers/spi/spi_dw.c index a7c588d272d..2de97c0fd75 100644 --- a/drivers/spi/spi_dw.c +++ b/drivers/spi/spi_dw.c @@ -579,7 +579,7 @@ DECLARE_DEVICE_INIT_CONFIG(spi_dw_port_0, CONFIG_SPI_DW_PORT_0_DRV_NAME, spi_dw_init, &spi_dw_config_0); SYS_DEFINE_DEVICE(spi_dw_port_0, &spi_dw_data_port_0, SECONDARY, - CONFIG_KERNEL_INIT_PRIORITY_DEFAULT); + CONFIG_SPI_DW_INIT_PRIORITY); void spi_config_0_irq(void) { @@ -612,7 +612,7 @@ DECLARE_DEVICE_INIT_CONFIG(spi_dw_port_1, CONFIG_SPI_DW_PORT_1_DRV_NAME, spi_dw_init, &spi_dw_config_1); SYS_DEFINE_DEVICE(spi_dw_port_1, &spi_dw_data_port_1, SECONDARY, - CONFIG_KERNEL_INIT_PRIORITY_DEFAULT); + CONFIG_SPI_DW_INIT_PRIORITY); void spi_config_1_irq(void) {