Skip to content

Commit d7631a6

Browse files
erwangofabiobaltieri
authored andcommitted
drivers: interrupt_controller: stm32: Generate irq_table and isr from dt
This change takes advantage of line information coming from new properties to simplify exti_irq_table definition and isr routing related code. All __stm32_exti_isr_x routing functions are removed and instead, stm32_exti_isr is now taking a exti_range structure which provides, for each irq, start line and range length. This argument is provided by IRQ_CONNECT macro instead of previous dev info (which is constant and doesn't need to be provided as argument). line_range_x variables are generated at driver init thanks to a mix of dt magic and runtime implementation: DT_FOREACH_PROP_ELEM iterates over each irq line (counted as interrupt-names property) call a macro which instantiates populated line_range_x variables, and calls IRQ_CONNECT for each IRQ. Additionally, at each iteration stm32_fill_irq_table() is called to fill exti_irq_table. Since not required anymore, Kconfig symbols EXTI_STM32_EXTIX_Y_IRQ_PRI are removed. IRQ prio is now supposed to be configured in device tree. Signed-off-by: Erwan Gouriou <[email protected]>
1 parent ff231fa commit d7631a6

File tree

2 files changed

+47
-582
lines changed

2 files changed

+47
-582
lines changed

drivers/interrupt_controller/Kconfig.stm32

Lines changed: 0 additions & 202 deletions
Original file line numberDiff line numberDiff line change
@@ -12,206 +12,4 @@ config EXTI_STM32
1212
help
1313
Enable EXTI driver for STM32 line of MCUs
1414

15-
config EXTI_STM32_EXTI1_0_IRQ_PRI
16-
int "EXTI1:0 IRQ priority"
17-
depends on EXTI_STM32
18-
depends on SOC_SERIES_STM32F0X || SOC_SERIES_STM32L0X || SOC_SERIES_STM32G0X
19-
default 0
20-
help
21-
IRQ priority of EXTI1:0 interrupt
22-
23-
config EXTI_STM32_EXTI3_2_IRQ_PRI
24-
int "EXTI3:2 IRQ priority"
25-
depends on EXTI_STM32
26-
depends on SOC_SERIES_STM32F0X || SOC_SERIES_STM32L0X || SOC_SERIES_STM32G0X
27-
default 0
28-
help
29-
IRQ priority of EXTI3:2 interrupt
30-
31-
config EXTI_STM32_EXTI15_4_IRQ_PRI
32-
int "EXTI15:4 IRQ priority"
33-
depends on EXTI_STM32
34-
depends on SOC_SERIES_STM32F0X || SOC_SERIES_STM32L0X || SOC_SERIES_STM32G0X
35-
default 0
36-
help
37-
IRQ priority of EXTI15:4 interrupt
38-
39-
if SOC_SERIES_STM32F0X!=y && SOC_SERIES_STM32L0X!=y && SOC_SERIES_STM32G0X!=y
40-
41-
config EXTI_STM32_EXTI0_IRQ_PRI
42-
int "EXTI0 IRQ priority"
43-
depends on EXTI_STM32
44-
default 0
45-
help
46-
IRQ priority of EXTI0 interrupt
47-
48-
config EXTI_STM32_EXTI1_IRQ_PRI
49-
int "EXTI1 IRQ priority"
50-
depends on EXTI_STM32
51-
default 0
52-
help
53-
IRQ priority of EXTI1 interrupt
54-
55-
config EXTI_STM32_EXTI2_IRQ_PRI
56-
int "EXTI2 IRQ priority"
57-
depends on EXTI_STM32
58-
default 0
59-
help
60-
IRQ priority of EXTI2 interrupt
61-
62-
config EXTI_STM32_EXTI3_IRQ_PRI
63-
int "EXTI3 IRQ priority"
64-
depends on EXTI_STM32
65-
default 0
66-
help
67-
IRQ priority of EXTI3 interrupt
68-
69-
config EXTI_STM32_EXTI4_IRQ_PRI
70-
int "EXTI4 IRQ priority"
71-
depends on EXTI_STM32
72-
default 0
73-
help
74-
IRQ priority of EXTI4 interrupt
75-
76-
if SOC_SERIES_STM32MP1X || SOC_SERIES_STM32L5X || SOC_SERIES_STM32U5X
77-
78-
config EXTI_STM32_EXTI5_IRQ_PRI
79-
int "EXTI5 IRQ priority"
80-
depends on EXTI_STM32
81-
default 0
82-
help
83-
IRQ priority of EXTI5 interrupt
84-
85-
config EXTI_STM32_EXTI6_IRQ_PRI
86-
int "EXTI6 IRQ priority"
87-
depends on EXTI_STM32
88-
default 0
89-
help
90-
IRQ priority of EXTI6 interrupt
91-
92-
config EXTI_STM32_EXTI7_IRQ_PRI
93-
int "EXTI7 IRQ priority"
94-
depends on EXTI_STM32
95-
default 0
96-
help
97-
IRQ priority of EXTI7 interrupt
98-
99-
config EXTI_STM32_EXTI8_IRQ_PRI
100-
int "EXTI8 IRQ priority"
101-
depends on EXTI_STM32
102-
default 0
103-
help
104-
IRQ priority of EXTI8 interrupt
105-
106-
config EXTI_STM32_EXTI9_IRQ_PRI
107-
int "EXTI9 IRQ priority"
108-
depends on EXTI_STM32
109-
default 0
110-
help
111-
IRQ priority of EXTI9 interrupt
112-
113-
config EXTI_STM32_EXTI10_IRQ_PRI
114-
int "EXTI10 IRQ priority"
115-
depends on EXTI_STM32
116-
default 0
117-
help
118-
IRQ priority of EXTI10 interrupt
119-
120-
config EXTI_STM32_EXTI11_IRQ_PRI
121-
int "EXTI11 IRQ priority"
122-
depends on EXTI_STM32
123-
default 0
124-
help
125-
IRQ priority of EXTI11 interrupt
126-
127-
config EXTI_STM32_EXTI12_IRQ_PRI
128-
int "EXTI12 IRQ priority"
129-
depends on EXTI_STM32
130-
default 0
131-
help
132-
IRQ priority of EXTI12 interrupt
133-
134-
config EXTI_STM32_EXTI13_IRQ_PRI
135-
int "EXTI13 IRQ priority"
136-
depends on EXTI_STM32
137-
default 0
138-
help
139-
IRQ priority of EXTI13 interrupt
140-
141-
config EXTI_STM32_EXTI14_IRQ_PRI
142-
int "EXTI14 IRQ priority"
143-
depends on EXTI_STM32
144-
default 0
145-
help
146-
IRQ priority of EXTI14 interrupt
147-
148-
config EXTI_STM32_EXTI15_IRQ_PRI
149-
int "EXTI15 IRQ priority"
150-
depends on EXTI_STM32
151-
default 0
152-
help
153-
IRQ priority of EXTI15 interrupt
154-
155-
endif # SOC_SERIES_STM32MP1X
156-
157-
if SOC_SERIES_STM32MP1X!=y && SOC_SERIES_STM32L5X!=y && SOC_SERIES_STM32U5X!=y
158-
159-
config EXTI_STM32_EXTI9_5_IRQ_PRI
160-
int "EXTI9:5 IRQ priority"
161-
depends on EXTI_STM32
162-
default 0
163-
help
164-
IRQ priority of EXTI9:5 interrupt
165-
166-
config EXTI_STM32_EXTI15_10_IRQ_PRI
167-
int "EXTI15:10 IRQ priority"
168-
depends on EXTI_STM32
169-
default 0
170-
help
171-
IRQ priority of EXTI15:10 interrupt
172-
173-
endif # SOC_SERIES_STM32MP1X!=y && SOC_SERIES_STM32L5X!=y
174-
175-
endif # SOC_SERIES_STM32F0X!=y && SOC_SERIES_STM32L0X!=y && SOC_SERIES_STM32G0X!=y
176-
177-
config EXTI_STM32_PVD_IRQ_PRI
178-
int "RVD Through IRQ priority"
179-
depends on EXTI_STM32
180-
depends on SOC_SERIES_STM32F4X || SOC_SERIES_STM32F7X || SOC_SERIES_STM32F2X || SOC_SERIES_STM32G0X
181-
default 0
182-
help
183-
IRQ priority of RVD Through interrupt
184-
185-
config EXTI_STM32_OTG_FS_WKUP_IRQ_PRI
186-
int "USB OTG FS Wake Up IRQ priority"
187-
depends on EXTI_STM32
188-
depends on SOC_SERIES_STM32F4X || SOC_SERIES_STM32F7X || SOC_SERIES_STM32F2X
189-
default 0
190-
help
191-
IRQ priority of USB OTG FS Wake interrupt
192-
193-
config EXTI_STM32_TAMP_STAMP_IRQ_PRI
194-
int "Tamper and Timestamp IRQ priority"
195-
depends on EXTI_STM32
196-
depends on SOC_SERIES_STM32F4X || SOC_SERIES_STM32F7X || SOC_SERIES_STM32F2X
197-
default 0
198-
help
199-
IRQ priority of Tamper and Timestamp interrupt
200-
201-
config EXTI_STM32_RTC_WKUP_IRQ_PRI
202-
int "RTC Wake Up IRQ priority"
203-
depends on EXTI_STM32
204-
depends on SOC_SERIES_STM32F4X || SOC_SERIES_STM32F7X || SOC_SERIES_STM32F2X
205-
default 0
206-
help
207-
IRQ priority of RTC Wake Up interrupt
208-
209-
config EXTI_STM32_LPTIM1_IRQ_PRI
210-
int "LPTIM1 IRQ priority"
211-
depends on EXTI_STM32
212-
depends on SOC_SERIES_STM32F7X
213-
default 0
214-
help
215-
IRQ priority of LPTIM1 interrupt
216-
21715
endif # SOC_FAMILY_STM32

0 commit comments

Comments
 (0)