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