diff --git a/arch/x86/soc/intel_quark/quark_d2000/dts.fixup b/arch/x86/soc/intel_quark/quark_d2000/dts.fixup index 4e9c6376934..3f5ea0f2c70 100644 --- a/arch/x86/soc/intel_quark/quark_d2000/dts.fixup +++ b/arch/x86/soc/intel_quark/quark_d2000/dts.fixup @@ -16,3 +16,7 @@ #define CONFIG_I2C_0_NAME INTEL_QMSI_I2C_B0002800_LABEL #define CONFIG_I2C_0_BITRATE INTEL_QMSI_I2C_B0002800_CLOCK_FREQUENCY + +#define CONFIG_GPIO_QMSI_0_NAME INTEL_QMSI_GPIO_B0000C00_LABEL +#define CONFIG_GPIO_QMSI_0_IRQ INTEL_QMSI_GPIO_B0000C00_IRQ_0 +#define CONFIG_GPIO_QMSI_0_IRQ_FLAGS INTEL_QMSI_GPIO_B0000C00_IRQ_0_SENSE diff --git a/arch/x86/soc/intel_quark/quark_se/Kconfig.defconfig.series b/arch/x86/soc/intel_quark/quark_se/Kconfig.defconfig.series index ba80e59ef31..2397f495e9b 100644 --- a/arch/x86/soc/intel_quark/quark_se/Kconfig.defconfig.series +++ b/arch/x86/soc/intel_quark/quark_se/Kconfig.defconfig.series @@ -51,13 +51,8 @@ config GPIO_QMSI config GPIO_QMSI_0 def_bool y -config GPIO_QMSI_0_IRQ_PRI - default 2 - config GPIO_QMSI_1 def_bool y -config GPIO_QMSI_1_IRQ_PRI - default 2 endif # GPIO if I2C diff --git a/arch/x86/soc/intel_quark/quark_se/dts.fixup b/arch/x86/soc/intel_quark/quark_se/dts.fixup index 9242f7725cf..6cbb68cf823 100644 --- a/arch/x86/soc/intel_quark/quark_se/dts.fixup +++ b/arch/x86/soc/intel_quark/quark_se/dts.fixup @@ -23,4 +23,13 @@ #define CONFIG_I2C_1_NAME INTEL_QMSI_I2C_B0002C00_LABEL #define CONFIG_I2C_1_BITRATE INTEL_QMSI_I2C_B0002C00_CLOCK_FREQUENCY +#define CONFIG_GPIO_QMSI_0_NAME INTEL_QMSI_GPIO_B0000C00_LABEL +#define CONFIG_GPIO_QMSI_0_IRQ INTEL_QMSI_GPIO_B0000C00_IRQ_0 +#define CONFIG_GPIO_QMSI_0_IRQ_PRI INTEL_QMSI_GPIO_B0000C00_IRQ_0_PRIORITY +#define CONFIG_GPIO_QMSI_0_IRQ_FLAGS INTEL_QMSI_GPIO_B0000C00_IRQ_0_SENSE +#define CONFIG_GPIO_QMSI_1_NAME INTEL_QMSI_GPIO_B0800B00_LABEL +#define CONFIG_GPIO_QMSI_1_IRQ INTEL_QMSI_GPIO_B0800B00_IRQ_0 +#define CONFIG_GPIO_QMSI_1_IRQ_PRI INTEL_QMSI_GPIO_B0800B00_IRQ_0_PRIORITY +#define CONFIG_GPIO_QMSI_1_IRQ_FLAGS INTEL_QMSI_GPIO_B0800B00_IRQ_0_SENSE + /* End of SoC Level DTS fixup file */ diff --git a/drivers/gpio/Kconfig.qmsi b/drivers/gpio/Kconfig.qmsi index 3d6e3586b33..4a9916db808 100644 --- a/drivers/gpio/Kconfig.qmsi +++ b/drivers/gpio/Kconfig.qmsi @@ -50,12 +50,12 @@ config GPIO_QMSI_0 config GPIO_QMSI_0_NAME string "Driver name" - depends on GPIO_QMSI_0 + depends on GPIO_QMSI_0 && !HAS_DTS default "GPIO_0" config GPIO_QMSI_0_IRQ_PRI int "Controller interrupt priority" - depends on GPIO_QMSI_0 + depends on GPIO_QMSI_0 && !HAS_DTS help IRQ priority @@ -67,12 +67,12 @@ config GPIO_QMSI_1 config GPIO_QMSI_1_NAME string "Driver name" - depends on GPIO_QMSI_1 + depends on GPIO_QMSI_1 && !HAS_DTS default "GPIO_1" config GPIO_QMSI_1_IRQ_PRI int "Controller interrupt priority" - depends on GPIO_QMSI_1 + depends on GPIO_QMSI_1 && !HAS_DTS help IRQ priority diff --git a/drivers/gpio/gpio_qmsi.c b/drivers/gpio/gpio_qmsi.c index 3b987e8a8b4..757a1b00769 100644 --- a/drivers/gpio/gpio_qmsi.c +++ b/drivers/gpio/gpio_qmsi.c @@ -378,18 +378,18 @@ static int gpio_qmsi_init(struct device *port) CLK_PERIPH_GPIO_INTERRUPT | CLK_PERIPH_GPIO_DB | CLK_PERIPH_CLK); - IRQ_CONNECT(IRQ_GET_NUMBER(QM_IRQ_GPIO_0_INT), + IRQ_CONNECT(CONFIG_GPIO_QMSI_0_IRQ, CONFIG_GPIO_QMSI_0_IRQ_PRI, qm_gpio_0_isr, 0, - IOAPIC_LEVEL | IOAPIC_HIGH); - irq_enable(IRQ_GET_NUMBER(QM_IRQ_GPIO_0_INT)); + CONFIG_GPIO_QMSI_0_IRQ_FLAGS); + irq_enable(CONFIG_GPIO_QMSI_0_IRQ); QM_IR_UNMASK_INTERRUPTS(QM_INTERRUPT_ROUTER->gpio_0_int_mask); break; #ifdef CONFIG_GPIO_QMSI_1 case QM_AON_GPIO_0: - IRQ_CONNECT(IRQ_GET_NUMBER(QM_IRQ_AON_GPIO_0_INT), + IRQ_CONNECT(CONFIG_GPIO_QMSI_1_IRQ, CONFIG_GPIO_QMSI_1_IRQ_PRI, qm_aon_gpio_0_isr, - 0, IOAPIC_LEVEL | IOAPIC_HIGH); - irq_enable(IRQ_GET_NUMBER(QM_IRQ_AON_GPIO_0_INT)); + 0, CONFIG_GPIO_QMSI_1_IRQ_FLAGS); + irq_enable(CONFIG_GPIO_QMSI_1_IRQ); QM_IR_UNMASK_INTERRUPTS( QM_INTERRUPT_ROUTER->aon_gpio_0_int_mask); break; diff --git a/dts/x86/intel_curie.dtsi b/dts/x86/intel_curie.dtsi index 4d318b365fb..5d3e25ec4e0 100644 --- a/dts/x86/intel_curie.dtsi +++ b/dts/x86/intel_curie.dtsi @@ -90,6 +90,7 @@ reg = <0xb0000c00 0x400>; interrupts = <8 IRQ_TYPE_LEVEL_HIGH 2>; interrupt-parent = <&intc>; + label = "GPIO_0"; gpio-controller; #gpio-cells = <2>; @@ -100,6 +101,7 @@ reg = <0xb0800b00 0x400>; interrupts = <31 IRQ_TYPE_LEVEL_HIGH 2>; interrupt-parent = <&intc>; + label = "GPIO_1"; gpio-controller; #gpio-cells = <2>; diff --git a/dts/x86/intel_quark_d2000.dtsi b/dts/x86/intel_quark_d2000.dtsi index e7b223dbbd7..7027825490d 100644 --- a/dts/x86/intel_quark_d2000.dtsi +++ b/dts/x86/intel_quark_d2000.dtsi @@ -80,6 +80,7 @@ reg = <0xb0000c00 0x400>; interrupts = <15 IRQ_TYPE_LEVEL_HIGH>; interrupt-parent = <&intc>; + label = "GPIO_0"; gpio-controller; #gpio-cells = <2>;