/*
 * Copyright (c) 2021 Nuvoton Technology Corporation.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/* Common Wake-Up Unit Input (WUI) mapping configurations in npcx family */
#include <nuvoton/npcx/npcx-miwus-wui-map.dtsi>

/* Specific Wake-Up Unit Input (WUI) mapping configurations in npcx9 series */
/ {
	/* Mapping between MIWU wui bits and source device */
	npcx-miwus-wui-map {
		compatible = "nuvoton,npcx-miwu-wui-map";

		/* MIWU table 1 */
		/* MIWU group G */
		wui_io66: wui1-7-6 {
			miwus = <&miwu1 6 6>; /* GPIO66 */
		};

		/* MIWU table 2 */
		/* MIWU group F */
		wui_i3c_sda: wui2-6-0 {
			miwus = <&miwu2 5 0>; /* I3C_SDA */
		};
		wui_iob6: wui2-6-6 {
			miwus = <&miwu2 5 6>; /* GPIOB6 */
		};
		wui_lct: wui2-6-7 {
			miwus = <&miwu2 5 7>; /* LCT Event */
		};

		/* MIWU group G */
		wui_cr_sin3: wui2-7-4 {
			miwus = <&miwu2 6 4>; /* CR_SIN3 */
		};
		wui_cr_sin4: wui2-7-5 {
			miwus = <&miwu2 6 5>; /* CR_SIN4 */
		};
	};
};

