From 6021c64844b97c42767b6c1c96d575e66bd1b560 Mon Sep 17 00:00:00 2001 From: Tomasz Bursztyka Date: Fri, 22 Jan 2016 14:47:11 +0100 Subject: [PATCH] spi: dw: Add an initialization priority Kconfig option On Quark SE, SPI might require GPIO to be ready before hand, to emulate CS, thus providing an option to tweak the intialization priority for SPI DW driver. Change-Id: Ifa373948ac8227bf6e4ed1113bcb4dc9139b6663 Signed-off-by: Tomasz Bursztyka --- arch/x86/soc/quark_se/Kconfig | 3 +++ drivers/spi/Kconfig | 6 ++++++ drivers/spi/spi_dw.c | 4 ++-- 3 files changed, 11 insertions(+), 2 deletions(-) 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) {