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

/ {
	/* Mapping between MIWU group and interrupts */
	npcx7_miwus_int_map {
		map_miwu0_groups: map-miwu0-groups {
			compatible = "nuvoton,npcx-miwu-int-map";
			parent = <&miwu0>;

			group_ad0: group_ad0_map {
				irq        = <7>;
				irq_prio   = <0>;
				group_mask = <0x09>;
			};
			group_b0: group_b0_map {
				irq        = <31>;
				irq_prio   = <0>;
				group_mask = <0x02>;
			};
			group_c0: group_c0_map {
				irq        = <15>;
				irq_prio   = <0>;
				group_mask = <0x04>;
			};
			group_efgh0: group_efgh0_map {
				irq        = <11>;
				irq_prio   = <0>;
				group_mask = <0xF0>;
			};
		};

		map_miwu1_groups: map-miwu1-groups {
			compatible = "nuvoton,npcx-miwu-int-map";
			parent = <&miwu1>;

			group_a1: group_a1_map {
				irq        = <47>;
				irq_prio   = <0>;
				group_mask = <0x01>;
			};
			group_b1: group_b1_map {
				irq        = <48>;
				irq_prio   = <0>;
				group_mask = <0x02>;
			};
			group_c1: group_c1_map {
				irq        = <49>;
				irq_prio   = <0>;
				group_mask = <0x04>;
			};
			group_d1: group_d1_map {
				irq        = <50>;
				irq_prio   = <0>;
				group_mask = <0x08>;
			};
			group_e1: group_e1_map {
				irq        = <51>;
				irq_prio   = <0>;
				group_mask = <0x10>;
			};
			group_f1: group_f1_map {
				irq        = <52>;
				irq_prio   = <0>;
				group_mask = <0x20>;
			};
			group_g1: group_g1_map {
				irq        = <53>;
				irq_prio   = <0>;
				group_mask = <0x40>;
			};
			group_h1: group_h1_map {
				irq        = <54>;
				irq_prio   = <0>;
				group_mask = <0x80>;
			};
		};

		map_miwu2_groups: map-miwu2-groups {
			compatible = "nuvoton,npcx-miwu-int-map";
			parent = <&miwu2>;

			group_a2: group_a2_map {
				irq        = <60>;
				irq_prio   = <0>;
				group_mask = <0x01>;
			};
			group_b2: group_b2_map {
				irq        = <61>;
				irq_prio   = <0>;
				group_mask = <0x02>;
			};
			group_c2: group_c2_map {
				irq        = <62>;
				irq_prio   = <0>;
				group_mask = <0x04>;
			};
			group_d2: group_d2_map {
				irq        = <63>;
				irq_prio   = <0>;
				group_mask = <0x08>;
			};
			group_fg2: group_fg2_map {
				irq        = <59>;
				irq_prio   = <0>;
				group_mask = <0x60>;
			};
		};
	};
};
