1/*
2 * Copyright (c) 2021 Nuvoton Technology Corporation.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7/ {
8	/* Mapping between MIWU wui bits and source device */
9	npcx-miwus-wui-map {
10		compatible = "nuvoton,npcx-miwu-wui-map";
11
12		/* MIWU table 0 */
13		/* MIWU group A */
14		wui_io80: wui0-1-0 {
15			miwus = <&miwu0 0 0>; /* GPIO80 */
16		};
17		wui_io81: wui0-1-1 {
18			miwus = <&miwu0 0 1>; /* GPIO81 */
19		};
20		wui_io82: wui0-1-2 {
21			miwus = <&miwu0 0 2>; /* GPIO82 */
22		};
23		wui_io83: wui0-1-3 {
24			miwus = <&miwu0 0 3>; /* GPIO83 */
25		};
26		wui_io87: wui0-1-7 {
27			miwus = <&miwu0 0 7>; /* GPIO87 */
28		};
29
30		/* MIWU group B */
31		wui_io90: wui0-2-0 {
32			miwus = <&miwu0 1 0>; /* GPIO90 */
33		};
34		wui_io91: wui0-2-1 {
35			miwus = <&miwu0 1 1>; /* GPIO91 */
36		};
37		wui_io92: wui0-2-2 {
38			miwus = <&miwu0 1 2>; /* GPIO92 */
39		};
40		wui_io93: wui0-2-3 {
41			miwus = <&miwu0 1 3>; /* GPIO93 */
42		};
43		wui_io94: wui0-2-4 {
44			miwus = <&miwu0 1 4>; /* GPIO94 */
45		};
46		wui_io95: wui0-2-5 {
47			miwus = <&miwu0 1 5>; /* GPIO95 */
48		};
49		wui_mswc: wui0-2-6 {
50			miwus = <&miwu0 1 6>; /* MSWC */
51		};
52		wui_t0out: wui0-2-7 {
53			miwus = <&miwu0 1 7>; /* T0OUT */
54		};
55
56		/* MIWU group C */
57		wui_io96: wui0-3-0 {
58			miwus = <&miwu0 2 0>; /* GPIO96 */
59		};
60		wui_io97: wui0-3-1 {
61			miwus = <&miwu0 2 1>; /* GPIO97 */
62		};
63		wui_ioa0: wui0-3-2 {
64			miwus = <&miwu0 2 2>; /* GPIOA0 */
65		};
66		wui_ioa1: wui0-3-3 {
67			miwus = <&miwu0 2 3>; /* GPIOA1 */
68		};
69		wui_ioa2: wui0-3-4 {
70			miwus = <&miwu0 2 4>; /* GPIOA2 */
71		};
72		wui_ioa3: wui0-3-5 {
73			miwus = <&miwu0 2 5>; /* GPIOA3 */
74		};
75		wui_ioa4: wui0-3-6 {
76			miwus = <&miwu0 2 6>; /* GPIOA4 */
77		};
78		wui_ioa5: wui0-3-7 {
79			miwus = <&miwu0 2 7>; /* GPIOA5 */
80		};
81
82		/* MIWU group D */
83		wui_ioa6: wui0-4-0 {
84			miwus = <&miwu0 3 0>; /* GPIOA6 */
85		};
86		wui_ioa7: wui0-4-1 {
87			miwus = <&miwu0 3 1>; /* GPIOA7 */
88		};
89		wui_iob0: wui0-4-2 {
90			miwus = <&miwu0 3 2>; /* GPIOB0 */
91		};
92		wui_smb0_2: wui0-4-3 {
93			miwus = <&miwu0 3 3>; /* SMB0/2 */
94		};
95		wui_smb1_3: wui0-4-4 {
96			miwus = <&miwu0 3 4>; /* SMB1/3 */
97		};
98		wui_iob1: wui0-4-5 {
99			miwus = <&miwu0 3 5>; /* GPIOB1 */
100		};
101		wui_iob2: wui0-4-6 {
102			miwus = <&miwu0 3 6>; /* GPIOB2 */
103		};
104		wui_mtc: wui0-4-7 {
105			miwus = <&miwu0 3 7>; /* MTC */
106		};
107
108		/* MIWU group E */
109		wui_iob3: wui0-5-0 {
110			miwus = <&miwu0 4 0>; /* GPIOB3 */
111		};
112		wui_iob4: wui0-5-1 {
113			miwus = <&miwu0 4 1>; /* GPIOB4 */
114		};
115		wui_iob5: wui0-5-2 {
116			miwus = <&miwu0 4 2>; /* GPIOB5 */
117		};
118		wui_smb4: wui0-5-3 {
119			miwus = <&miwu0 4 3>; /* SMB4 */
120		};
121		wui_iob7: wui0-5-4 {
122			miwus = <&miwu0 4 4>; /* GPIOB7 */
123		};
124		wui_espi_rst: wui0-5-5 {
125			miwus = <&miwu0 4 5>; /* ESPI_RST */
126		};
127		wui_host_acc: wui0-5-6 {
128			miwus = <&miwu0 4 6>; /* HOST_ACC */
129		};
130		wui_plt_rst: wui0-5-7 {
131			miwus = <&miwu0 4 7>; /* PLT_RST */
132		};
133
134		/* MIWU group F */
135		wui_ioc0: wui0-6-0 {
136			miwus = <&miwu0 5 0>; /* GPIOC0 */
137		};
138		wui_ioc1: wui0-6-1 {
139			miwus = <&miwu0 5 1>; /* GPIOC1 */
140		};
141		wui_ioc2: wui0-6-2 {
142			miwus = <&miwu0 5 2>; /* GPIOC2 */
143		};
144		wui_ioc3: wui0-6-3 {
145			miwus = <&miwu0 5 3>; /* GPIOC3 */
146		};
147		wui_ioc4: wui0-6-4 {
148			miwus = <&miwu0 5 4>; /* GPIOC4 */
149		};
150		wui_ioc5: wui0-6-5 {
151			miwus = <&miwu0 5 5>; /* GPIOC5 */
152		};
153		wui_ioc6: wui0-6-6 {
154			miwus = <&miwu0 5 6>; /* GPIOC6 */
155		};
156		wui_ioc7: wui0-6-7 {
157			miwus = <&miwu0 5 7>; /* GPIOC7 */
158		};
159
160		/* MIWU group G */
161		wui_iod0: wui0-7-0 {
162			miwus = <&miwu0 6 0>; /* GPIOD0 */
163		};
164		wui_iod1: wui0-7-1 {
165			miwus = <&miwu0 6 1>; /* GPIOD1 */
166		};
167		wui_iod2: wui0-7-2 {
168			miwus = <&miwu0 6 2>; /* GPIOD2 */
169		};
170		wui_iod3: wui0-7-3 {
171			miwus = <&miwu0 6 3>; /* GPIOD3 */
172		};
173		wui_iod4: wui0-7-4 {
174			miwus = <&miwu0 6 4>; /* GPIOD4 */
175		};
176		wui_iod5: wui0-7-5 {
177			miwus = <&miwu0 6 5>; /* GPIOD5 */
178		};
179		wui_ioe0: wui0-7-7 {
180			miwus = <&miwu0 6 7>; /* GPIOE0 */
181		};
182
183		/* MIWU group H */
184		wui_ioe1: wui0-8-0 {
185			miwus = <&miwu0 7 0>; /* GPIOE1 */
186		};
187		wui_ioe2: wui0-8-1 {
188			miwus = <&miwu0 7 1>; /* GPIOE2 */
189		};
190		wui_ioe3: wui0-8-2 {
191			miwus = <&miwu0 7 2>; /* GPIOE3 */
192		};
193		wui_ioe4: wui0-8-3 {
194			miwus = <&miwu0 7 3>; /* GPIOE4 */
195		};
196		wui_ioe5: wui0-8-4 {
197			miwus = <&miwu0 7 4>; /* GPIOE5 */
198		};
199		wui_iof0: wui0-8-5 {
200			miwus = <&miwu0 7 5>; /* GPIOF0 */
201		};
202		wui_iof3: wui0-8-6 {
203			miwus = <&miwu0 7 6>; /* GPIOF3 */
204		};
205
206		/* MIWU table 1 */
207		/* MIWU group A */
208		wui_io00: wui1-1-0 {
209			miwus = <&miwu1 0 0>; /* GPIO00 */
210		};
211		wui_io01: wui1-1-1 {
212			miwus = <&miwu1 0 1>; /* GPIO01 */
213		};
214		wui_io02: wui1-1-2 {
215			miwus = <&miwu1 0 2>; /* GPIO02 */
216		};
217		wui_io03: wui1-1-3 {
218			miwus = <&miwu1 0 3>; /* GPIO03 */
219		};
220		wui_io04: wui1-1-4 {
221			miwus = <&miwu1 0 4>; /* GPIO04 */
222		};
223		wui_io05: wui1-1-5 {
224			miwus = <&miwu1 0 5>; /* GPIO05 */
225		};
226		wui_io06: wui1-1-6 {
227			miwus = <&miwu1 0 6>; /* GPIO06 */
228		};
229		wui_io07: wui1-1-7 {
230			miwus = <&miwu1 0 7>; /* GPIO07 */
231		};
232
233		/* MIWU group B */
234		wui_io10: wui1-2-0 {
235			miwus = <&miwu1 1 0>; /* GPIO10 */
236		};
237		wui_io11: wui1-2-1 {
238			miwus = <&miwu1 1 1>; /* GPIO11 */
239		};
240		wui_iof4: wui1-2-2 {
241			miwus = <&miwu1 1 2>; /* GPIOF4 */
242		};
243		wui_io14: wui1-2-4 {
244			miwus = <&miwu1 1 4>; /* GPIO14 */
245		};
246		wui_io15: wui1-2-5 {
247			miwus = <&miwu1 1 5>; /* GPIO15 */
248		};
249		wui_io16: wui1-2-6 {
250			miwus = <&miwu1 1 6>; /* GPIO16 */
251		};
252		wui_io17: wui1-2-7 {
253			miwus = <&miwu1 1 7>; /* GPIO17 */
254		};
255
256		/* MIWU group C */
257		wui_io31: wui1-3-0 {
258			miwus = <&miwu1 2 0>; /* GPIO31 */
259		};
260		wui_io30: wui1-3-1 {
261			miwus = <&miwu1 2 1>; /* GPIO30 */
262		};
263		wui_io27: wui1-3-2 {
264			miwus = <&miwu1 2 2>; /* GPIO27 */
265		};
266		wui_io26: wui1-3-3 {
267			miwus = <&miwu1 2 3>; /* GPIO26 */
268		};
269		wui_io25: wui1-3-4 {
270			miwus = <&miwu1 2 4>; /* GPIO25 */
271		};
272		wui_io24: wui1-3-5 {
273			miwus = <&miwu1 2 5>; /* GPIO24 */
274		};
275		wui_io23: wui1-3-6 {
276			miwus = <&miwu1 2 6>; /* GPIO23 */
277		};
278		wui_io22: wui1-3-7 {
279			miwus = <&miwu1 2 7>; /* GPIO22 */
280		};
281
282		/* MIWU group D */
283		wui_io20: wui1-4-0 {
284			miwus = <&miwu1 3 0>; /* GPIO20 */
285		};
286		wui_io21: wui1-4-1 {
287			miwus = <&miwu1 3 1>; /* GPIO21 */
288		};
289		wui_iof5: wui1-4-2 {
290			miwus = <&miwu1 3 2>; /* GPIOF5 */
291		};
292		wui_io33: wui1-4-3 {
293			miwus = <&miwu1 3 3>; /* GPIO33 */
294		};
295		wui_io34: wui1-4-4 {
296			miwus = <&miwu1 3 4>; /* GPIO34 */
297		};
298		wui_io36: wui1-4-6 {
299			miwus = <&miwu1 3 6>; /* GPIO36 */
300		};
301		wui_io37: wui1-4-7 {
302			miwus = <&miwu1 3 7>; /* GPIO37 */
303		};
304
305		/* MIWU group E */
306		wui_io40: wui1-5-0 {
307			miwus = <&miwu1 4 0>; /* GPIO40 */
308		};
309		wui_io41: wui1-5-1 {
310			miwus = <&miwu1 4 1>; /* GPIO41 */
311		};
312		wui_io42: wui1-5-2 {
313			miwus = <&miwu1 4 2>; /* GPIO42 */
314		};
315		wui_io43: wui1-5-3 {
316			miwus = <&miwu1 4 3>; /* GPIO43 */
317		};
318		wui_io44: wui1-5-4 {
319			miwus = <&miwu1 4 4>; /* GPIO44 */
320		};
321		wui_io45: wui1-5-5 {
322			miwus = <&miwu1 4 5>; /* GPIO45 */
323		};
324		wui_io46: wui1-5-6 {
325			miwus = <&miwu1 4 6>; /* GPIO46 */
326		};
327		wui_io47: wui1-5-7 {
328			miwus = <&miwu1 4 7>; /* GPIO47 */
329		};
330
331		/* MIWU group F */
332		wui_io50: wui1-6-0 {
333			miwus = <&miwu1 5 0>; /* GPIO50 */
334		};
335		wui_io51: wui1-6-1 {
336			miwus = <&miwu1 5 1>; /* GPIO51 */
337		};
338		wui_io52: wui1-6-2 {
339			miwus = <&miwu1 5 2>; /* GPIO52 */
340		};
341		wui_io53: wui1-6-3 {
342			miwus = <&miwu1 5 3>; /* GPIO53 */
343		};
344		wui_io54: wui1-6-4 {
345			miwus = <&miwu1 5 4>; /* GPIO54 */
346		};
347		wui_io55: wui1-6-5 {
348			miwus = <&miwu1 5 5>; /* GPIO55 */
349		};
350		wui_io56: wui1-6-6 {
351			miwus = <&miwu1 5 6>; /* GPIO56 */
352		};
353		wui_io57: wui1-6-7 {
354			miwus = <&miwu1 5 7>; /* GPIO57 */
355		};
356
357		/* MIWU group G */
358		wui_io60: wui1-7-0 {
359			miwus = <&miwu1 6 0>; /* GPIO60 */
360		};
361		wui_io61: wui1-7-1 {
362			miwus = <&miwu1 6 1>; /* GPIO61 */
363		};
364		wui_io62: wui1-7-2 {
365			miwus = <&miwu1 6 2>; /* GPIO62 */
366		};
367		wui_io63: wui1-7-3 {
368			miwus = <&miwu1 6 3>; /* GPIO63 */
369		};
370		wui_io64: wui1-7-4 {
371			miwus = <&miwu1 6 4>; /* GPIO64 */
372		};
373
374		/* MIWU group H */
375		wui_io70: wui1-8-0 {
376			miwus = <&miwu1 7 0>; /* GPIO70 */
377		};
378		wui_io67: wui1-8-1 {
379			miwus = <&miwu1 7 1>; /* GPIO67 */
380		};
381		wui_io72: wui1-8-2 {
382			miwus = <&miwu1 7 2>; /* GPIO72 */
383		};
384		wui_io73: wui1-8-3 {
385			miwus = <&miwu1 7 3>; /* GPIO73 */
386		};
387		wui_io74: wui1-8-4 {
388			miwus = <&miwu1 7 4>; /* GPIO74 */
389		};
390		wui_io75: wui1-8-5 {
391			miwus = <&miwu1 7 5>; /* GPIO75 */
392		};
393		wui_io76: wui1-8-6 {
394			miwus = <&miwu1 7 6>; /* GPIO76 */
395		};
396		wui_cr_sin1: wui1-8-7 {
397			miwus = <&miwu1 7 7>; /* CR_SIN1 */
398		};
399
400		/* MIWU table 2 */
401		/* MIWU group A */
402		/* eSPI VW Events */
403		wui_vw_slp_s3: wui2-1-0 {
404			miwus = <&miwu2 0 0>; /* SLP_S3_L */
405		};
406		wui_vw_slp_s4: wui2-1-1 {
407			miwus = <&miwu2 0 1>; /* SLP_S4_L */
408		};
409		wui_vw_slp_s5: wui2-1-2 {
410			miwus = <&miwu2 0 2>; /* SLP_S5_L */
411		};
412		wui_vw_sus_stat: wui2-1-4 {
413			miwus = <&miwu2 0 4>; /* SUS_STAT_L */
414		};
415		wui_vw_plt_rst: wui2-1-5 {
416			miwus = <&miwu2 0 5>; /* PLTRST_L */
417		};
418		wui_vw_oob_rst_warn: wui2-1-6 {
419			miwus = <&miwu2 0 6>; /* OOB_RST_WARN */
420		};
421
422		/* MIWU group B */
423		wui_vw_host_rst_warn: wui2-2-0 {
424			miwus = <&miwu2 1 0>; /* HOST_RST_WARN */
425		};
426		wui_vw_sus_warn: wui2-2-4 {
427			miwus = <&miwu2 1 4>; /* SUS_WARN_L */
428		};
429		wui_vw_sus_pwrdn_ack: wui2-2-5 {
430			miwus = <&miwu2 1 5>; /* SUS_PWRDN_ACK */
431		};
432		wui_vw_slp_a: wui2-2-7 {
433			miwus = <&miwu2 1 7>; /* SLP_A_L */
434		};
435
436		/* MIWU group C */
437		/* eSPI VW Events */
438		wui_vw_slp_lan: wui2-3-0 {
439			miwus = <&miwu2 2 0>; /* SLP_LAN_L */
440		};
441		wui_vw_slp_wlan: wui2-3-1 {
442			miwus = <&miwu2 2 1>; /* SLP_WLAN_L) */
443		};
444		wui_vw_fl_ack: wui2-3-4 {
445			miwus = <&miwu2 2 4>; /* FL_ACK */
446		};
447		wui_vw_pch_to_ec_gen_1: wui2-3-5 {
448			miwus = <&miwu2 2 5>; /* PCH_TO_EC_GENERIC_1 */
449		};
450		wui_vw_pch_to_ec_gen_2: wui2-3-6 {
451			miwus = <&miwu2 2 6>; /* PCH_TO_EC_GENERIC_2 */
452		};
453		wui_vw_pch_to_ec_gen_3: wui2-3-7 {
454			miwus = <&miwu2 2 7>; /* PCH_TO_EC_GENERIC_3 */
455		};
456
457		/* MIWU group D */
458		wui_vw_pch_to_ec_gen_4: wui2-4-0 {
459			miwus = <&miwu2 3 0>; /* PCH_TO_EC_GENERIC_4 */
460		};
461		wui_vw_pch_to_ec_gen_5: wui2-4-1 {
462			miwus = <&miwu2 3 1>; /* PCH_TO_EC_GENERIC_5 */
463		};
464		wui_vw_pch_to_ec_gen_6: wui2-4-2 {
465			miwus = <&miwu2 3 2>; /* PCH_TO_EC_GENERIC_6 */
466		};
467		wui_vw_pch_to_ec_gen_7: wui2-4-3 {
468			miwus = <&miwu2 3 3>; /* PCH_TO_EC_GENERIC_7 */
469		};
470		wui_vw_host_c10: wui2-4-4 {
471			miwus = <&miwu2 3 4>; /* HOST_C10 */
472		};
473
474		/* MIWU group F */
475		wui_iof1: wui2-6-1 {
476			miwus = <&miwu2 5 1>; /* GPIOF1 */
477		};
478		wui_iof2: wui2-6-2 {
479			miwus = <&miwu2 5 2>; /* GPIOF2 */
480		};
481
482		/* MIWU group G */
483		wui_smb5: wui2-7-0 {
484			miwus = <&miwu2 6 0>; /* SMB5 */
485		};
486		wui_smb6: wui2-7-1 {
487			miwus = <&miwu2 6 1>; /* SMB6 */
488		};
489		wui_smb7: wui2-7-2 {
490			miwus = <&miwu2 6 2>; /* SMB7 */
491		};
492
493		/* Pseudo wui item means no mapping between source and wui */
494		wui_none: wui-pseudo {
495			miwus = <&miwu_none 7 7>;
496		};
497	};
498
499	/* Pseudo MIWU device to present no mapping relationship */
500	miwu_none: miwu-pseudo {
501		compatible = "nuvoton,npcx-miwu";
502		index = <3>;
503		#miwu-cells = <2>;
504		status = "disabled";
505	};
506};
507