/*
 * Copyright (c) 2021 Microchip Technology Inc. and its subsidiaries.
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#ifndef _MEC172X_ECIA_H
#define _MEC172X_ECIA_H

#include <stdint.h>
#include <stddef.h>
#include <zephyr/devicetree.h>

#define ECIA_BASE_ADDR			DT_REG_ADDR(DT_NODELABEL(ecia))

#define MCHP_FIRST_GIRQ_NOS		8u
#define MCHP_LAST_GIRQ_NOS		26u

/*
 * GIRQ22 is not connected to the NVIC. GIRQ22 source wake the PLL from
 * deep sleep to provide clocks for a data transfer.
 */
#define MCHP_ECIA_GIRQ_CLK_WAKE_ONLY	22u

#define MCHP_ECIA_AGGR_BITMAP	(BIT(8) | BIT(9) | BIT(10) | BIT(11) | \
				 BIT(12) | BIT(22) | BIT(24) | BIT(25) | \
				 BIT(26))

#define MCHP_ECIA_DIRECT_BITMAP	(BIT(13) | BIT(14) | BIT(15) | BIT(16) | \
				 BIT(17) | BIT(18) | BIT(19) | BIT(20) | \
				 BIT(21) | BIT(23))

#define MCHP_ECIA_ALL_BITMAP	GENMASK(26, 8)

/* MEC172x implements 8 priority levels. ARM NVIC 0 = highest priority */
#define MCHP_NVIC_NUM_PRI_BITS	3u
#define MCHP_NVIC_PRI_LO_VAL	7u

/*
 * ARM Cortex-M4 NVIC registers
 * External sources are grouped by 32-bit registers.
 * MEC172x has 181 external sources requiring 6 32-bit registers.
 */
#define MCHP_NUM_NVIC_REGS	6u
#define MCHP_NVIC_SET_EN_BASE	0xe000e100u
#define MCHP_NVIC_CLR_EN_BASE	0xe000e180u
#define MCHP_NVIC_SET_PEND_BASE 0xe000e200u
#define MCHP_NVIC_CLR_PEND_BASE 0xe000e280u
#define MCHP_NVIC_ACTIVE_BASE	0xe000e800u
#define MCHP_NVIC_PRI_BASE	0xe000e400u

/*
 * ECIA registers
 * Implements 19 GIRQ's. GIRQ's aggregated interrupts source into one
 * set of registers.
 * For historical reason GIRQ's are numbered starting at 8 in the documentation.
 * This numbering only affects the ECIA BLOCK_EN_SET, BLOCK_EN_CLR, and
 * BLOCK_ACTIVE registers: GIRQ8 is bit[8], ..., GIRQ26 is bit[26].
 *
 * Each GIRQ is composed of 5 32-bit registers.
 * +00h = GIRQ08 Source containing RW/1C status bits
 * +04h = Enable Set write 1 to bit(s) to enable the corresponding source(s)
 * +08h = Read-Only Result = Source AND Enable-Set
 * +0Ch = Enable Clear write 1 to bit(s) to disable the corresponding source(s)
 * +14h = Reserved(unused).
 * +18h = GIRQ09 Source
 * ...
 * There are three other registers at offset 0x200, 0x204, and 0x208
 * 0x200: BLOCK_EN_SET bit == 1 connects bit-wise OR of all GIRQn result
 *	to a NVIC GIRQn input.
 *	bit[8]=GIRQ8, bit[9]=GIRQ9, ..., bit[26]=GIRQ26
 * 0x204: BLOCK_EN_CLR bit == 1 disconnects bit-wise OR of GIRQn source
 *	bits from NVIC GIRQn input.
 * 0x208: BLOCK_ACTIVE (read-only)
 *	bit[8]=GIRQ8 has at least one source bit enabled and active.
 *	...
 *	bit[26]=GIRQ26 has at least one source bit enabled and active.
 * The aggregated (bit-wise OR) of GIRQ08, ..., GIRQ26 are connected to NVIC
 * external inputs except for GIRQ22. GIRQ22 is a special peripheral clock
 * wake. If GIRQ22 sources are enabled activity on a source will re-enable the
 * PLL long enough for a data transfer from the external device. If the data
 * transfer requires the CPU to be notified the normal peripheral interrupt
 * will then fire waking the CPU. If no CPU notification was enabled, HW will
 * disable the PLL once the data transfer completes allowing the SoC to
 * re-enter deep sleep.
 * Aggregated GIRQ NVIC mapping:
 * GIRQ08 -> NVIC 0
 * GIRQ09 -> NVIC 1
 * ...
 * GIRQ21 -> NVIC 13
 * GIRQ22 No connection to NVIC
 * GIRQ23 -> NVIC 14
 * ...
 * GIRQ26 -> NVIC 17
 * NVIC 20 and above are direct mode(not aggregated) connections.
 * Result bits in GIRQ's 13 - 21, and 23 can be directly connected to NVIC
 * external inputs 20 and above.
 */
#define MCHP_ECIA_BLK_ENSET_OFS		0x200u
#define MCHP_ECIA_BLK_ENCLR_OFS		0x204u
#define MCHP_ECIA_BLK_ACTIVE_OFS	0x208u

enum MCHP_GIRQ_IDS {
	MCHP_GIRQ08_ID = 8,
	MCHP_GIRQ09_ID,
	MCHP_GIRQ10_ID,
	MCHP_GIRQ11_ID,
	MCHP_GIRQ12_ID,
	MCHP_GIRQ13_ID,
	MCHP_GIRQ14_ID,
	MCHP_GIRQ15_ID,
	MCHP_GIRQ16_ID,
	MCHP_GIRQ17_ID,
	MCHP_GIRQ18_ID,
	MCHP_GIRQ19_ID,
	MCHP_GIRQ20_ID,
	MCHP_GIRQ21_ID,
	MCHP_GIRQ22_ID,
	MCHP_GIRQ23_ID,
	MCHP_GIRQ24_ID,
	MCHP_GIRQ25_ID,
	MCHP_GIRQ26_ID,
	MCHP_GIRQ_ID_MAX,
};

/* zero based index into ECIA_Type GIRQ[] */
enum MCHP_GIRQ_INDEX {
	GIRQ08_IDX = 0,
	GIRQ09_IDX,
	GIRQ10_IDX,
	GIRQ11_IDX,
	GIRQ12_IDX,
	GIRQ13_IDX,
	GIRQ14_IDX,
	GIRQ15_IDX,
	GIRQ16_IDX,
	GIRQ17_IDX,
	GIRQ18_IDX,
	GIRQ19_IDX,
	GIRQ20_IDX,
	GIRQ21_IDX,
	GIRQ22_IDX,
	GIRQ23_IDX,
	GIRQ24_IDX,
	GIRQ25_IDX,
	GIRQ26_IDX,
	GIRQ_MAX_IDX
};

/* GIRQ08 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_GPIO_0140_GIRQ_POS		0
#define MCHP_GPIO_0141_GIRQ_POS		1
#define MCHP_GPIO_0142_GIRQ_POS		2
#define MCHP_GPIO_0143_GIRQ_POS		3
#define MCHP_GPIO_0144_GIRQ_POS		4
#define MCHP_GPIO_0145_GIRQ_POS		5
#define MCHP_GPIO_0146_GIRQ_POS		6
#define MCHP_GPIO_0147_GIRQ_POS		7
#define MCHP_GPIO_0150_GIRQ_POS		8
#define MCHP_GPIO_0151_GIRQ_POS		9
#define MCHP_GPIO_0152_GIRQ_POS		10
#define MCHP_GPIO_0153_GIRQ_POS		11
#define MCHP_GPIO_0154_GIRQ_POS		12
#define MCHP_GPIO_0155_GIRQ_POS		13
#define MCHP_GPIO_0156_GIRQ_POS		14
#define MCHP_GPIO_0157_GIRQ_POS		15
#define MCHP_GPIO_0160_GIRQ_POS		16
#define MCHP_GPIO_0161_GIRQ_POS		17
#define MCHP_GPIO_0162_GIRQ_POS		18
#define MCHP_GPIO_0165_GIRQ_POS		21
#define MCHP_GPIO_0166_GIRQ_POS		22
#define MCHP_GPIO_0170_GIRQ_POS		24
#define MCHP_GPIO_0171_GIRQ_POS		25
#define MCHP_GPIO_0172_GIRQ_POS		26
#define MCHP_GPIO_0173_GIRQ_POS		27
#define MCHP_GPIO_0174_GIRQ_POS		28
#define MCHP_GPIO_0175_GIRQ_POS		29

#define MCHP_GPIO_0140_GIRQ_BIT		BIT(0)
#define MCHP_GPIO_0141_GIRQ_BIT		BIT(1)
#define MCHP_GPIO_0142_GIRQ_BIT		BIT(2)
#define MCHP_GPIO_0143_GIRQ_BIT		BIT(3)
#define MCHP_GPIO_0144_GIRQ_BIT		BIT(4)
#define MCHP_GPIO_0145_GIRQ_BIT		BIT(5)
#define MCHP_GPIO_0146_GIRQ_BIT		BIT(6)
#define MCHP_GPIO_0147_GIRQ_BIT		BIT(7)
#define MCHP_GPIO_0150_GIRQ_BIT		BIT(8)
#define MCHP_GPIO_0151_GIRQ_BIT		BIT(9)
#define MCHP_GPIO_0152_GIRQ_BIT		BIT(10)
#define MCHP_GPIO_0153_GIRQ_BIT		BIT(11)
#define MCHP_GPIO_0154_GIRQ_BIT		BIT(12)
#define MCHP_GPIO_0155_GIRQ_BIT		BIT(13)
#define MCHP_GPIO_0156_GIRQ_BIT		BIT(14)
#define MCHP_GPIO_0157_GIRQ_BIT		BIT(15)
#define MCHP_GPIO_0160_GIRQ_BIT		BIT(16)
#define MCHP_GPIO_0161_GIRQ_BIT		BIT(17)
#define MCHP_GPIO_0162_GIRQ_BIT		BIT(18)
#define MCHP_GPIO_0165_GIRQ_BIT		BIT(21)
#define MCHP_GPIO_0166_GIRQ_BIT		BIT(22)
#define MCHP_GPIO_0170_GIRQ_BIT		BIT(24)
#define MCHP_GPIO_0171_GIRQ_BIT		BIT(25)
#define MCHP_GPIO_0172_GIRQ_BIT		BIT(26)
#define MCHP_GPIO_0173_GIRQ_BIT		BIT(27)
#define MCHP_GPIO_0174_GIRQ_BIT		BIT(28)
#define MCHP_GPIO_0175_GIRQ_BIT		BIT(29)
#define MCHP_GPIO_0140_0176_GIRQ_MASK	0x3f67ffffu

/* GIRQ09 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_GPIO_0100_GIRQ_POS		0
#define MCHP_GPIO_0101_GIRQ_POS		1
#define MCHP_GPIO_0102_GIRQ_POS		2
#define MCHP_GPIO_0103_GIRQ_POS		3
#define MCHP_GPIO_0104_GIRQ_POS		4
#define MCHP_GPIO_0105_GIRQ_POS		5
#define MCHP_GPIO_0106_GIRQ_POS		6
#define MCHP_GPIO_0107_GIRQ_POS		7
#define MCHP_GPIO_0110_GIRQ_POS		8
#define MCHP_GPIO_0111_GIRQ_POS		9
#define MCHP_GPIO_0112_GIRQ_POS		10
#define MCHP_GPIO_0113_GIRQ_POS		11
#define MCHP_GPIO_0114_GIRQ_POS		12
#define MCHP_GPIO_0115_GIRQ_POS		13
#define MCHP_GPIO_0116_GIRQ_POS		14
#define MCHP_GPIO_0117_GIRQ_POS		15
#define MCHP_GPIO_0120_GIRQ_POS		16
#define MCHP_GPIO_0121_GIRQ_POS		17
#define MCHP_GPIO_0122_GIRQ_POS		18
#define MCHP_GPIO_0123_GIRQ_POS		19
#define MCHP_GPIO_0124_GIRQ_POS		20
#define MCHP_GPIO_0125_GIRQ_POS		21
#define MCHP_GPIO_0126_GIRQ_POS		22
#define MCHP_GPIO_0127_GIRQ_POS		23
#define MCHP_GPIO_0130_GIRQ_POS		24
#define MCHP_GPIO_0131_GIRQ_POS		25
#define MCHP_GPIO_0132_GIRQ_POS		26
#define MCHP_GPIO_0133_GIRQ_POS		27
#define MCHP_GPIO_0134_GIRQ_POS		28
#define MCHP_GPIO_0135_GIRQ_POS		29

#define MCHP_GPIO_0100_GIRQ_BIT		BIT(0)
#define MCHP_GPIO_0101_GIRQ_BIT		BIT(1)
#define MCHP_GPIO_0102_GIRQ_BIT		BIT(2)
#define MCHP_GPIO_0103_GIRQ_BIT		BIT(3)
#define MCHP_GPIO_0104_GIRQ_BIT		BIT(4)
#define MCHP_GPIO_0105_GIRQ_BIT		BIT(5)
#define MCHP_GPIO_0106_GIRQ_BIT		BIT(6)
#define MCHP_GPIO_0107_GIRQ_BIT		BIT(7)
#define MCHP_GPIO_0110_GIRQ_BIT		BIT(8)
#define MCHP_GPIO_0111_GIRQ_BIT		BIT(9)
#define MCHP_GPIO_0112_GIRQ_BIT		BIT(10)
#define MCHP_GPIO_0113_GIRQ_BIT		BIT(11)
#define MCHP_GPIO_0114_GIRQ_BIT		BIT(12)
#define MCHP_GPIO_0115_GIRQ_BIT		BIT(13)
#define MCHP_GPIO_0116_GIRQ_BIT		BIT(14)
#define MCHP_GPIO_0117_GIRQ_BIT		BIT(15)
#define MCHP_GPIO_0120_GIRQ_BIT		BIT(16)
#define MCHP_GPIO_0121_GIRQ_BIT		BIT(17)
#define MCHP_GPIO_0122_GIRQ_BIT		BIT(18)
#define MCHP_GPIO_0123_GIRQ_BIT		BIT(19)
#define MCHP_GPIO_0124_GIRQ_BIT		BIT(20)
#define MCHP_GPIO_0125_GIRQ_BIT		BIT(21)
#define MCHP_GPIO_0126_GIRQ_BIT		BIT(22)
#define MCHP_GPIO_0127_GIRQ_BIT		BIT(23)
#define MCHP_GPIO_0130_GIRQ_BIT		BIT(24)
#define MCHP_GPIO_0131_GIRQ_BIT		BIT(25)
#define MCHP_GPIO_0132_GIRQ_BIT		BIT(26)
#define MCHP_GPIO_0133_GIRQ_BIT		BIT(27)
#define MCHP_GPIO_0134_GIRQ_BIT		BIT(28)
#define MCHP_GPIO_0135_GIRQ_BIT		BIT(29)
#define MCHP_GPIO_0100_0136_GIRQ_MASK	0x3fffffffu

/* GIRQ10 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_GPIO_0040_GIRQ_POS		0
#define MCHP_GPIO_0041_GIRQ_POS		1
#define MCHP_GPIO_0042_GIRQ_POS		2
#define MCHP_GPIO_0043_GIRQ_POS		3
#define MCHP_GPIO_0044_GIRQ_POS		4
#define MCHP_GPIO_0045_GIRQ_POS		5
#define MCHP_GPIO_0046_GIRQ_POS		6
#define MCHP_GPIO_0047_GIRQ_POS		7
#define MCHP_GPIO_0050_GIRQ_POS		8
#define MCHP_GPIO_0051_GIRQ_POS		9
#define MCHP_GPIO_0052_GIRQ_POS		10
#define MCHP_GPIO_0053_GIRQ_POS		11
#define MCHP_GPIO_0054_GIRQ_POS		12
#define MCHP_GPIO_0055_GIRQ_POS		13
#define MCHP_GPIO_0056_GIRQ_POS		14
#define MCHP_GPIO_0057_GIRQ_POS		15
#define MCHP_GPIO_0060_GIRQ_POS		16
#define MCHP_GPIO_0061_GIRQ_POS		17
#define MCHP_GPIO_0062_GIRQ_POS		18
#define MCHP_GPIO_0063_GIRQ_POS		19
#define MCHP_GPIO_0064_GIRQ_POS		20
#define MCHP_GPIO_0065_GIRQ_POS		21
#define MCHP_GPIO_0066_GIRQ_POS		22
#define MCHP_GPIO_0067_GIRQ_POS		23
#define MCHP_GPIO_0070_GIRQ_POS		24
#define MCHP_GPIO_0071_GIRQ_POS		25
#define MCHP_GPIO_0072_GIRQ_POS		26
#define MCHP_GPIO_0073_GIRQ_POS		27
#define MCHP_GPIO_0074_GIRQ_POS		28
#define MCHP_GPIO_0075_GIRQ_POS		29
#define MCHP_GPIO_0076_GIRQ_POS		30

#define MCHP_GPIO_0040_GIRQ_BIT		BIT(0)
#define MCHP_GPIO_0041_GIRQ_BIT		BIT(1)
#define MCHP_GPIO_0042_GIRQ_BIT		BIT(2)
#define MCHP_GPIO_0043_GIRQ_BIT		BIT(3)
#define MCHP_GPIO_0044_GIRQ_BIT		BIT(4)
#define MCHP_GPIO_0045_GIRQ_BIT		BIT(5)
#define MCHP_GPIO_0046_GIRQ_BIT		BIT(6)
#define MCHP_GPIO_0047_GIRQ_BIT		BIT(7)
#define MCHP_GPIO_0050_GIRQ_BIT		BIT(8)
#define MCHP_GPIO_0051_GIRQ_BIT		BIT(9)
#define MCHP_GPIO_0052_GIRQ_BIT		BIT(10)
#define MCHP_GPIO_0053_GIRQ_BIT		BIT(11)
#define MCHP_GPIO_0054_GIRQ_BIT		BIT(12)
#define MCHP_GPIO_0055_GIRQ_BIT		BIT(13)
#define MCHP_GPIO_0056_GIRQ_BIT		BIT(14)
#define MCHP_GPIO_0057_GIRQ_BIT		BIT(15)
#define MCHP_GPIO_0060_GIRQ_BIT		BIT(16)
#define MCHP_GPIO_0061_GIRQ_BIT		BIT(17)
#define MCHP_GPIO_0062_GIRQ_BIT		BIT(18)
#define MCHP_GPIO_0063_GIRQ_BIT		BIT(19)
#define MCHP_GPIO_0064_GIRQ_BIT		BIT(20)
#define MCHP_GPIO_0065_GIRQ_BIT		BIT(21)
#define MCHP_GPIO_0066_GIRQ_BIT		BIT(22)
#define MCHP_GPIO_0067_GIRQ_BIT		BIT(23)
#define MCHP_GPIO_0070_GIRQ_BIT		BIT(24)
#define MCHP_GPIO_0071_GIRQ_BIT		BIT(25)
#define MCHP_GPIO_0072_GIRQ_BIT		BIT(26)
#define MCHP_GPIO_0073_GIRQ_BIT		BIT(27)
#define MCHP_GPIO_0074_GIRQ_BIT		BIT(28)
#define MCHP_GPIO_0075_GIRQ_BIT		BIT(29)
#define MCHP_GPIO_0076_GIRQ_BIT		BIT(30)
#define MCHP_GPIO_0040_0076_GIRQ_MASK	0x7fffffffu

/* GIRQ11 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_GPIO_0000_GIRQ_POS		0
#define MCHP_GPIO_0001_GIRQ_POS		1
#define MCHP_GPIO_0002_GIRQ_POS		2
#define MCHP_GPIO_0003_GIRQ_POS		3
#define MCHP_GPIO_0004_GIRQ_POS		4
#define MCHP_GPIO_0005_GIRQ_POS		5
#define MCHP_GPIO_0006_GIRQ_POS		6
#define MCHP_GPIO_0007_GIRQ_POS		7
#define MCHP_GPIO_0010_GIRQ_POS		8
#define MCHP_GPIO_0011_GIRQ_POS		9
#define MCHP_GPIO_0012_GIRQ_POS		10
#define MCHP_GPIO_0013_GIRQ_POS		11
#define MCHP_GPIO_0014_GIRQ_POS		12
#define MCHP_GPIO_0015_GIRQ_POS		13
#define MCHP_GPIO_0016_GIRQ_POS		14
#define MCHP_GPIO_0017_GIRQ_POS		15
#define MCHP_GPIO_0020_GIRQ_POS		16
#define MCHP_GPIO_0021_GIRQ_POS		17
#define MCHP_GPIO_0022_GIRQ_POS		18
#define MCHP_GPIO_0023_GIRQ_POS		19
#define MCHP_GPIO_0024_GIRQ_POS		20
#define MCHP_GPIO_0025_GIRQ_POS		21
#define MCHP_GPIO_0026_GIRQ_POS		22
#define MCHP_GPIO_0027_GIRQ_POS		23
#define MCHP_GPIO_0030_GIRQ_POS		24
#define MCHP_GPIO_0031_GIRQ_POS		25
#define MCHP_GPIO_0032_GIRQ_POS		26
#define MCHP_GPIO_0033_GIRQ_POS		27
#define MCHP_GPIO_0034_GIRQ_POS		28
#define MCHP_GPIO_0035_GIRQ_POS		29
#define MCHP_GPIO_0036_GIRQ_POS		30

#define MCHP_GPIO_0000_GIRQ_BIT		BIT(0)
#define MCHP_GPIO_0001_GIRQ_BIT		BIT(1)
#define MCHP_GPIO_0002_GIRQ_BIT		BIT(2)
#define MCHP_GPIO_0003_GIRQ_BIT		BIT(3)
#define MCHP_GPIO_0004_GIRQ_BIT		BIT(4)
#define MCHP_GPIO_0005_GIRQ_BIT		BIT(5)
#define MCHP_GPIO_0006_GIRQ_BIT		BIT(6)
#define MCHP_GPIO_0007_GIRQ_BIT		BIT(7)
#define MCHP_GPIO_0010_GIRQ_BIT		BIT(8)
#define MCHP_GPIO_0011_GIRQ_BIT		BIT(9)
#define MCHP_GPIO_0012_GIRQ_BIT		BIT(10)
#define MCHP_GPIO_0013_GIRQ_BIT		BIT(11)
#define MCHP_GPIO_0014_GIRQ_BIT		BIT(12)
#define MCHP_GPIO_0015_GIRQ_BIT		BIT(13)
#define MCHP_GPIO_0016_GIRQ_BIT		BIT(14)
#define MCHP_GPIO_0017_GIRQ_BIT		BIT(15)
#define MCHP_GPIO_0020_GIRQ_BIT		BIT(16)
#define MCHP_GPIO_0021_GIRQ_BIT		BIT(17)
#define MCHP_GPIO_0022_GIRQ_BIT		BIT(18)
#define MCHP_GPIO_0023_GIRQ_BIT		BIT(19)
#define MCHP_GPIO_0024_GIRQ_BIT		BIT(20)
#define MCHP_GPIO_0025_GIRQ_BIT		BIT(21)
#define MCHP_GPIO_0026_GIRQ_BIT		BIT(22)
#define MCHP_GPIO_0027_GIRQ_BIT		BIT(23)
#define MCHP_GPIO_0030_GIRQ_BIT		BIT(24)
#define MCHP_GPIO_0031_GIRQ_BIT		BIT(25)
#define MCHP_GPIO_0032_GIRQ_BIT		BIT(26)
#define MCHP_GPIO_0033_GIRQ_BIT		BIT(27)
#define MCHP_GPIO_0034_GIRQ_BIT		BIT(28)
#define MCHP_GPIO_0035_GIRQ_BIT		BIT(29)
#define MCHP_GPIO_0036_GIRQ_BIT		BIT(30)
#define MCHP_GPIO_0000_0036_GIRQ_MASK	0x7fffffffu

/* GIRQ12 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_GPIO_0200_GIRQ_POS		0
#define MCHP_GPIO_0201_GIRQ_POS		1
#define MCHP_GPIO_0202_GIRQ_POS		2
#define MCHP_GPIO_0203_GIRQ_POS		3
#define MCHP_GPIO_0204_GIRQ_POS		4
#define MCHP_GPIO_0205_GIRQ_POS		5
#define MCHP_GPIO_0206_GIRQ_POS		6
#define MCHP_GPIO_0207_GIRQ_POS		7
#define MCHP_GPIO_0210_GIRQ_POS		8
#define MCHP_GPIO_0211_GIRQ_POS		9
#define MCHP_GPIO_0212_GIRQ_POS		10
#define MCHP_GPIO_0213_GIRQ_POS		11
#define MCHP_GPIO_0214_GIRQ_POS		12
#define MCHP_GPIO_0215_GIRQ_POS		13
#define MCHP_GPIO_0216_GIRQ_POS		14
#define MCHP_GPIO_0217_GIRQ_POS		15
#define MCHP_GPIO_0220_GIRQ_POS		16
#define MCHP_GPIO_0221_GIRQ_POS		17
#define MCHP_GPIO_0222_GIRQ_POS		18
#define MCHP_GPIO_0223_GIRQ_POS		19
#define MCHP_GPIO_0224_GIRQ_POS		20
#define MCHP_GPIO_0225_GIRQ_POS		21
#define MCHP_GPIO_0226_GIRQ_POS		22
#define MCHP_GPIO_0227_GIRQ_POS		23
#define MCHP_GPIO_0230_GIRQ_POS		24
#define MCHP_GPIO_0231_GIRQ_POS		25
#define MCHP_GPIO_0232_GIRQ_POS		26
#define MCHP_GPIO_0233_GIRQ_POS		27
#define MCHP_GPIO_0234_GIRQ_POS		28
#define MCHP_GPIO_0235_GIRQ_POS		29
#define MCHP_GPIO_0236_GIRQ_POS		30

#define MCHP_GPIO_0200_GIRQ_BIT		BIT(0)
#define MCHP_GPIO_0201_GIRQ_BIT		BIT(1)
#define MCHP_GPIO_0202_GIRQ_BIT		BIT(2)
#define MCHP_GPIO_0203_GIRQ_BIT		BIT(3)
#define MCHP_GPIO_0204_GIRQ_BIT		BIT(4)
#define MCHP_GPIO_0205_GIRQ_BIT		BIT(5)
#define MCHP_GPIO_0206_GIRQ_BIT		BIT(6)
#define MCHP_GPIO_0207_GIRQ_BIT		BIT(7)
#define MCHP_GPIO_0210_GIRQ_BIT		BIT(8)
#define MCHP_GPIO_0211_GIRQ_BIT		BIT(9)
#define MCHP_GPIO_0212_GIRQ_BIT		BIT(10)
#define MCHP_GPIO_0213_GIRQ_BIT		BIT(11)
#define MCHP_GPIO_0214_GIRQ_BIT		BIT(12)
#define MCHP_GPIO_0215_GIRQ_BIT		BIT(13)
#define MCHP_GPIO_0216_GIRQ_BIT		BIT(14)
#define MCHP_GPIO_0217_GIRQ_BIT		BIT(15)
#define MCHP_GPIO_0220_GIRQ_BIT		BIT(16)
#define MCHP_GPIO_0221_GIRQ_BIT		BIT(17)
#define MCHP_GPIO_0222_GIRQ_BIT		BIT(18)
#define MCHP_GPIO_0223_GIRQ_BIT		BIT(19)
#define MCHP_GPIO_0224_GIRQ_BIT		BIT(20)
#define MCHP_GPIO_0225_GIRQ_BIT		BIT(21)
#define MCHP_GPIO_0226_GIRQ_BIT		BIT(22)
#define MCHP_GPIO_0227_GIRQ_BIT		BIT(23)
#define MCHP_GPIO_0230_GIRQ_BIT		BIT(24)
#define MCHP_GPIO_0231_GIRQ_BIT		BIT(25)
#define MCHP_GPIO_0232_GIRQ_BIT		BIT(26)
#define MCHP_GPIO_0233_GIRQ_BIT		BIT(27)
#define MCHP_GPIO_0234_GIRQ_BIT		BIT(28)
#define MCHP_GPIO_0235_GIRQ_BIT		BIT(29)
#define MCHP_GPIO_0236_GIRQ_BIT		BIT(30)
#define MCHP_GPIO_0200_0236_GIRQ_MASK	0x7fffffffu

/* GIRQ13 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_I2C_SMB_0_GIRQ_POS		0
#define MCHP_I2C_SMB_1_GIRQ_POS		1
#define MCHP_I2C_SMB_2_GIRQ_POS		2
#define MCHP_I2C_SMB_3_GIRQ_POS		3
#define MCHP_I2C_SMB_4_GIRQ_POS		4

#define MCHP_I2C_SMB_0_GIRQ_BIT		BIT(0)
#define MCHP_I2C_SMB_1_GIRQ_BIT		BIT(1)
#define MCHP_I2C_SMB_2_GIRQ_BIT		BIT(2)
#define MCHP_I2C_SMB_3_GIRQ_BIT		BIT(3)
#define MCHP_I2C_SMB_4_GIRQ_BIT		BIT(4)
#define MCHP_SMB_I2C_GIRQ_MASK		0x1fu

#define MCHP_GIRQ13_NVIC_AGGR		5u
#define MCHP_GIRQ13_NVIC_DIRECT(bitpos)	(20u + (uint32_t)(bitpos))

/* GIRQ14 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_DMA_CH00_GIRQ_POS		0
#define MCHP_DMA_CH01_GIRQ_POS		1
#define MCHP_DMA_CH02_GIRQ_POS		2
#define MCHP_DMA_CH03_GIRQ_POS		3
#define MCHP_DMA_CH04_GIRQ_POS		4
#define MCHP_DMA_CH05_GIRQ_POS		5
#define MCHP_DMA_CH06_GIRQ_POS		6
#define MCHP_DMA_CH07_GIRQ_POS		7
#define MCHP_DMA_CH08_GIRQ_POS		8
#define MCHP_DMA_CH09_GIRQ_POS		9
#define MCHP_DMA_CH10_GIRQ_POS		10
#define MCHP_DMA_CH11_GIRQ_POS		11
#define MCHP_DMA_CH12_GIRQ_POS		12
#define MCHP_DMA_CH13_GIRQ_POS		13
#define MCHP_DMA_CH14_GIRQ_POS		14
#define MCHP_DMA_CH15_GIRQ_POS		15

#define MCHP_DMA_CH00_GIRQ_BIT		BIT(0)
#define MCHP_DMA_CH01_GIRQ_BIT		BIT(1)
#define MCHP_DMA_CH02_GIRQ_BIT		BIT(2)
#define MCHP_DMA_CH03_GIRQ_BIT		BIT(3)
#define MCHP_DMA_CH04_GIRQ_BIT		BIT(4)
#define MCHP_DMA_CH05_GIRQ_BIT		BIT(5)
#define MCHP_DMA_CH06_GIRQ_BIT		BIT(6)
#define MCHP_DMA_CH07_GIRQ_BIT		BIT(7)
#define MCHP_DMA_CH08_GIRQ_BIT		BIT(8)
#define MCHP_DMA_CH09_GIRQ_BIT		BIT(9)
#define MCHP_DMA_CH10_GIRQ_BIT		BIT(10)
#define MCHP_DMA_CH11_GIRQ_BIT		BIT(11)
#define MCHP_DMA_CH12_GIRQ_BIT		BIT(12)
#define MCHP_DMA_CH13_GIRQ_BIT		BIT(13)
#define MCHP_DMA_CH14_GIRQ_BIT		BIT(14)
#define MCHP_DMA_CH15_GIRQ_BIT		BIT(15)
#define MCHP_DMA_GIRQ_MASK		0xffffu

#define MCHP_GIRQ14_NVIC_AGGR		6u
#define MCHP_GIRQ14_NVIC_DIRECT(bitpos)	(24u + (uint32_t)(bitpos))

/* GIRQ15 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_UART_0_GIRQ_POS		0
#define MCHP_UART_1_GIRQ_POS		1
#define MCHP_EMI_0_GIRQ_POS		2
#define MCHP_EMI_1_GIRQ_POS		3
#define MCHP_EMI_2_GIRQ_POS		4
#define MCHP_ACPI_EC_0_IBF_GIRQ_POS	5
#define MCHP_ACPI_EC_0_OBE_GIRQ_POS	6
#define MCHP_ACPI_EC_1_IBF_GIRQ_POS	7
#define MCHP_ACPI_EC_1_OBE_GIRQ_POS	8
#define MCHP_ACPI_EC_2_IBF_GIRQ_POS	9
#define MCHP_ACPI_EC_2_OBE_GIRQ_POS	10
#define MCHP_ACPI_EC_3_IBF_GIRQ_POS	11
#define MCHP_ACPI_EC_3_OBE_GIRQ_POS	12
#define MCHP_ACPI_EC_4_IBF_GIRQ_POS	13
#define MCHP_ACPI_EC_4_OBE_GIRQ_POS	14
#define MCHP_ACPI_PM1_CTL_GIRQ_POS	15
#define MCHP_ACPI_PM1_EN_GIRQ_POS	16
#define MCHP_ACPI_PM1_STS_GIRQ_POS	17
#define MCHP_KBC_OBE_GIRQ_POS		18
#define MCHP_KBC_IBF_GIRQ_POS		19
#define MCHP_MBOX_0_GIRQ_POS		20
#define MCHP_P80BD_0_GIRQ_POS		22

#define MCHP_UART_0_GIRQ_BIT		BIT(0)
#define MCHP_UART_1_GIRQ_BIT		BIT(1)
#define MCHP_EMI_0_GIRQ_BIT		BIT(2)
#define MCHP_EMI_1_GIRQ_BIT		BIT(3)
#define MCHP_EMI_2_GIRQ_BIT		BIT(4)
#define MCHP_ACPI_EC_0_IBF_GIRQ_BIT	BIT(5)
#define MCHP_ACPI_EC_0_OBE_GIRQ_BIT	BIT(6)
#define MCHP_ACPI_EC_1_IBF_GIRQ_BIT	BIT(7)
#define MCHP_ACPI_EC_1_OBE_GIRQ_BIT	BIT(8)
#define MCHP_ACPI_EC_2_IBF_GIRQ_BIT	BIT(9)
#define MCHP_ACPI_EC_2_OBE_GIRQ_BIT	BIT(10)
#define MCHP_ACPI_EC_3_IBF_GIRQ_BIT	BIT(11)
#define MCHP_ACPI_EC_3_OBE_GIRQ_BIT	BIT(12)
#define MCHP_ACPI_EC_4_IBF_GIRQ_BIT	BIT(13)
#define MCHP_ACPI_EC_4_OBE_GIRQ_BIT	BIT(14)
#define MCHP_ACPI_PM1_CTL_GIRQ_BIT	BIT(15)
#define MCHP_ACPI_PM1_EN_GIRQ_BIT	BIT(16)
#define MCHP_ACPI_PM1_STS_GIRQ_BIT	BIT(17)
#define MCHP_KBC_OBE_GIRQ_BIT		BIT(18)
#define MCHP_KBC_IBF_GIRQ_BIT		BIT(19)
#define MCHP_MBOX_0_GIRQ_BIT		BIT(20)
#define MCHP_P80BD_0_GIRQ_BIT		BIT(22)
/* Masks for blocks with multiple instances or sources */
#define MCHP_UART_GIRQ_MASK		0x03u
#define MCHP_UART_EMI_GIRQ_MASK		0x1cu
#define MCHP_ACPI_EC_GIRQ_MASK		0x07fe0u
#define MCHP_ACPI_PM1_GIRQ_MASK		0x38000u
#define MCHP_KBC_GIRQ_MASK		0xc0000u
#define MCHP_HOST_PERIPH_GIRQ_MASK	0x5fffffu

#define MCHP_GIRQ15_NVIC_AGGR		7u
/*
 * bitpos = MCHP_XXX_POS define
 * Example: MCHP_GIRQ15_NVIC_DIRECT(MCHP_KBC_IBF_GIRQ_POS)
 */
#define MCHP_GIRQ15_NVIC_DIRECT(bitpos)		(40u + (uint32_t)(bitpos))

/* GIRQ16 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_PK_GIRQ_POS		0
#define MCHP_RNG_GIRQ_POS		2
#define MCHP_AESH_GIRQ_POS		3

#define MCHP_PK_GIRQ_BIT		BIT(0)
#define MCHP_RNG_GIRQ_BIT		BIT(2)
#define MCHP_AESH_GIRQ_BIT		BIT(3)
#define MCHP_CRYPTO_GIRQ_MASK		0x0du

#define MCHP_GIRQ16_NVIC_AGGR		8u
#define MCHP_GIRQ16_NVIC_DIRECT(bitpos)	(65u + (uint32_t)(bitpos))

/* GIRQ17 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_PECI_GIRQ_POS		0
#define MCHP_TACH_0_GIRQ_POS		1
#define MCHP_TACH_1_GIRQ_POS		2
#define MCHP_TACH_2_GIRQ_POS		3
#define MCHP_TACH_3_GIRQ_POS		4
#define MCHP_ADC_0_SGL_GIRQ_POS		8
#define MCHP_ADC_0_RPT_GIRQ_POS		9
#define MCHP_RCID_0_GIRQ_POS		10
#define MCHP_RCID_1_GIRQ_POS		11
#define MCHP_RCID_2_GIRQ_POS		12
#define MCHP_LED_0_GIRQ_POS		13
#define MCHP_LED_1_GIRQ_POS		14
#define MCHP_LED_2_GIRQ_POS		15
#define MCHP_LED_3_GIRQ_POS		16
#define MCHP_PHOT_0_GIRQ_POS		17
#define MCHP_RPMFAN_0_FAIL_GIRQ_POS	20
#define MCHP_RPMFAN_0_STALL_GIRQ_POS	21
#define MCHP_RPMFAN_1_FAIL_GIRQ_POS	22
#define MCHP_RPMFAN_1_STALL_GIRQ_POS	23

#define MCHP_PECI_GIRQ_BIT		BIT(0)
#define MCHP_TACH_0_GIRQ_BIT		BIT(1)
#define MCHP_TACH_1_GIRQ_BIT		BIT(2)
#define MCHP_TACH_2_GIRQ_BIT		BIT(3)
#define MCHP_TACH_3_GIRQ_BIT		BIT(4)
#define MCHP_ADC_0_SGL_GIRQ_BIT		BIT(8)
#define MCHP_ADC_0_RPT_GIRQ_BIT		BIT(9)
#define MCHP_RCID_0_GIRQ_BIT		BIT(10)
#define MCHP_RCID_1_GIRQ_BIT		BIT(11)
#define MCHP_RCID_2_GIRQ_BIT		BIT(12)
#define MCHP_LED_0_GIRQ_BIT		BIT(13)
#define MCHP_LED_1_GIRQ_BIT		BIT(14)
#define MCHP_LED_2_GIRQ_BIT		BIT(15)
#define MCHP_LED_3_GIRQ_BIT		BIT(16)
#define MCHP_PHOT_0_GIRQ_BIT		BIT(17)
#define MCHP_RPMFAN_0_FAIL_GIRQ_BIT	BIT(20)
#define MCHP_RPMFAN_0_STALL_GIRQ_BIT	BIT(21)
#define MCHP_RPMFAN_1_FAIL_GIRQ_BIT	BIT(22)
#define MCHP_RPMFAN_1_STALL_GIRQ_BIT	BIT(23)
/* Masks for blocks with multiple instances or sources */
#define MCHP_TACH_GIRQ_MASK		0x1eu
#define MCHP_ADC_GIRQ_MASK		0x300u
#define MCHP_RCID_GIRQ_MASK		0x1c00u
#define MCHP_LED_GIRQ_MASK		0x1e000u
#define MCHP_RPMFAN_0_GIRQ_MASK		0x300000u
#define MCHP_RPMFAN_1_GIRQ_MASK		0xc00000u
#define MCHP_PERIPH_GROUP_1_MASK	0xf3ff1fu

#define MCHP_GIRQ17_NVIC_AGGR		9u
/* GIRQ17 direct mapping is not linear can't use parameterized macro ;<( */
#define MCHP_PECI_GIRQ_NVIC_DIRECT		70u
#define MCHP_TACH_0_GIRQ_NVIC_DIRECT		71u
#define MCHP_TACH_1_GIRQ_NVIC_DIRECT		72u
#define MCHP_TACH_2_GIRQ_NVIC_DIRECT		73u
#define MCHP_TACH_3_GIRQ_NVIC_DIRECT		159u
#define MCHP_ADC_0_SGL_GIRQ_NVIC_DIRECT		78u
#define MCHP_ADC_0_RPT_GIRQ_NVIC_DIRECT		79u
#define MCHP_RCID_0_GIRQ_NVIC_DIRECT		80u
#define MCHP_RCID_1_GIRQ_NVIC_DIRECT		81u
#define MCHP_RCID_2_GIRQ_NVIC_DIRECT		82u
#define MCHP_LED_0_GIRQ_NVIC_DIRECT		83u
#define MCHP_LED_1_GIRQ_NVIC_DIRECT		84u
#define MCHP_LED_2_GIRQ_NVIC_DIRECT		85u
#define MCHP_LED_3_GIRQ_NVIC_DIRECT		86u
#define MCHP_PHOT_0_GIRQ_NVIC_DIRECT		87u
#define MCHP_RPMFAN_0_FAIL_GIRQ_NVIC_DIRECT	74u
#define MCHP_RPMFAN_0_STALL_GIRQ_NVIC_DIRECT	75u
#define MCHP_RPMFAN_1_FAIL_GIRQ_NVIC_DIRECT	76u
#define MCHP_RPMFAN_1_STALL_GIRQ_NVIC_DIRECT	77u

/* GIRQ18 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_SPIEP_0_GIRQ_POS		0
#define MCHP_QMSPI_0_GIRQ_POS		1
#define MCHP_GPSPI_0_TXBE_GIRQ_POS	2
#define MCHP_GPSPI_0_RXBF_GIRQ_POS	3
#define MCHP_GPSPI_1_TXBE_GIRQ_POS	4
#define MCHP_GPSPI_1_RXBF_GIRQ_POS	5
#define MCHP_BCL_0_BCLR_GIRQ_POS	6
#define MCHP_BCL_0_BERR_GIRQ_POS	7
#define MCHP_PS2_0_ACT_GIRQ_POS		10
#define MCHP_EERPROMC_0_GIRQ_POS	13
#define MCHP_CCT_0_CNT_GIRQ_POS		20
#define MCHP_CCT_0_CAP0_GIRQ_POS	21
#define MCHP_CCT_0_CAP1_GIRQ_POS	22
#define MCHP_CCT_0_CAP2_GIRQ_POS	23
#define MCHP_CCT_0_CAP3_GIRQ_POS	24
#define MCHP_CCT_0_CAP4_GIRQ_POS	25
#define MCHP_CCT_0_CAP5_GIRQ_POS	26
#define MCHP_CCT_0_CMP0_GIRQ_POS	27
#define MCHP_CCT_0_CMP1_GIRQ_POS	28

#define MCHP_SPIEP_0_GIRQ_BIT		BIT(0)
#define MCHP_QMSPI_0_GIRQ_BIT		BIT(1)
#define MCHP_GPSPI_0_TXBE_GIRQ_BIT	BIT(2)
#define MCHP_GPSPI_0_RXBF_GIRQ_BIT	BIT(3)
#define MCHP_GPSPI_1_TXBE_GIRQ_BIT	BIT(4)
#define MCHP_GPSPI_1_RXBF_GIRQ_BIT	BIT(5)
#define MCHP_BCL_0_BCLR_GIRQ_BIT	BIT(6)
#define MCHP_BCL_0_BERR_GIRQ_BIT	BIT(7)
#define MCHP_PS2_0_ACT_GIRQ_BIT		BIT(10)
#define MCHP_EERPROMC_0_GIRQ_BIT	BIT(13)
#define MCHP_CCT_0_CNT_GIRQ_BIT		BIT(20)
#define MCHP_CCT_0_CAP0_GIRQ_BIT	BIT(21)
#define MCHP_CCT_0_CAP1_GIRQ_BIT	BIT(22)
#define MCHP_CCT_0_CAP2_GIRQ_BIT	BIT(23)
#define MCHP_CCT_0_CAP3_GIRQ_BIT	BIT(24)
#define MCHP_CCT_0_CAP4_GIRQ_BIT	BIT(25)
#define MCHP_CCT_0_CAP5_GIRQ_BIT	BIT(26)
#define MCHP_CCT_0_CMP0_GIRQ_BIT	BIT(27)
#define MCHP_CCT_0_CMP1_GIRQ_BIT	BIT(28)
/* Masks for blocks with multiple instances or sources */
#define MCHP_GPSPI_0_GIRQ_MASK		0x0cu
#define MCHP_GPSPI_1_GIRQ_MASK		0x30u
#define MCHP_BCL_0_GIRQ_MASK		0xc0u
#define MCHP_CCT_0_GIRQ_MASK		0x1ff00000u
#define MCHP_PERIPH_GROUP_2_MASK	0x1ff024ffu

#define MCHP_GIRQ18_NVIC_AGGR		10u
/* GIRQ18 direct mapping is not linear can't use parameterized macro ;<( */
#define MCHP_SPIEP_0_GIRQ_NVIC_DIRECT		90u
#define MCHP_QMSPI_0_GIRQ_NVIC_DIRECT		91u
#define MCHP_GPSPI_0_TXBE_GIRQ_NVIC_DIRECT	92u
#define MCHP_GPSPI_0_RXBF_GIRQ_NVIC_DIRECT	93u
#define MCHP_GPSPI_1_TXBE_GIRQ_NVIC_DIRECT	94u
#define MCHP_GPSPI_1_RXBF_GIRQ_NVIC_DIRECT	95u
#define MCHP_BCL_0_BCLR_GIRQ_NVIC_DIRECT	97u
#define MCHP_BCL_0_BERR_GIRQ_NVIC_DIRECT	96u
#define MCHP_PS2_0_ACT_GIRQ_NVIC_DIRECT		100u
#define MCHP_EERPROMC_0_GIRQ_NVIC_DIRECT	155u
#define MCHP_CCT_0_CNT_GIRQ_NVIC_DIRECT		146u
#define MCHP_CCT_0_CAP0_GIRQ_NVIC_DIRECT	147u
#define MCHP_CCT_0_CAP1_GIRQ_NVIC_DIRECT	148u
#define MCHP_CCT_0_CAP2_GIRQ_NVIC_DIRECT	149u
#define MCHP_CCT_0_CAP3_GIRQ_NVIC_DIRECT	150u
#define MCHP_CCT_0_CAP4_GIRQ_NVIC_DIRECT	151u
#define MCHP_CCT_0_CAP5_GIRQ_NVIC_DIRECT	152u
#define MCHP_CCT_0_CMP0_GIRQ_NVIC_DIRECT	153u
#define MCHP_CCT_0_CMP1_GIRQ_NVIC_DIRECT	154u

/* GIRQ19 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_ESPI_PC_GIRQ_POS		0
#define MCHP_ESPI_BM1_GIRQ_POS		1
#define MCHP_ESPI_BM2_GIRQ_POS		2
#define MCHP_ESPI_LTR_GIRQ_POS		3
#define MCHP_ESPI_OOB_UP_GIRQ_POS	4
#define MCHP_ESPI_OOB_DN_GIRQ_POS	5
#define MCHP_ESPI_FC_GIRQ_POS		6
#define MCHP_ESPI_RESET_GIRQ_POS	7
#define MCHP_ESPI_VW_EN_GIRQ_POS	8
#define MCHP_ESPI_SAF_DONE_GIRQ_POS	9
#define MCHP_ESPI_SAF_ERR_GIRQ_POS	10
#define MCHP_ESPI_SAF_CACHE_GIRQ_POS	11

#define MCHP_ESPI_PC_GIRQ_BIT		BIT(0)
#define MCHP_ESPI_BM1_GIRQ_BIT		BIT(1)
#define MCHP_ESPI_BM2_GIRQ_BIT		BIT(2)
#define MCHP_ESPI_LTR_GIRQ_BIT		BIT(3)
#define MCHP_ESPI_OOB_UP_GIRQ_BIT	BIT(4)
#define MCHP_ESPI_OOB_DN_GIRQ_BIT	BIT(5)
#define MCHP_ESPI_FC_GIRQ_BIT		BIT(6)
#define MCHP_ESPI_RESET_GIRQ_BIT	BIT(7)
#define MCHP_ESPI_VWEN_GIRQ_BIT		BIT(8)
#define MCHP_ESPI_SAF_DONE_GIRQ_BIT	BIT(9)
#define MCHP_ESPI_SAF_ERR_GIRQ_BIT	BIT(10)
#define MCHP_ESPI_SAF_CACHE_GIRQ_BIT	BIT(11)
/* Masks for blocks with multiple instances or sources */
#define MCHP_ESPI_BM_GIRQ_MASK		0x006u
#define MCHP_ESPI_OOB_GIRQ_MASK		0x030u
#define MCHP_ESPI_SAF_GIRQ_MASK		0xe00u
#define MCHP_ESPI_GIRQ_MASK		0xfffu

#define MCHP_GIRQ19_NVIC_AGGR			11u
#define MCHP_ESPI_PC_GIRQ_NVIC_DIRECT		103u
#define MCHP_ESPI_BM1_GIRQ_NVIC_DIRECT		104u
#define MCHP_ESPI_BM2_GIRQ_NVIC_DIRECT		105u
#define MCHP_ESPI_LTR_GIRQ_NVIC_DIRECT		106u
#define MCHP_ESPI_OOB_UP_GIRQ_NVIC_DIRECT	107u
#define MCHP_ESPI_OOB_DN_GIRQ_NVIC_DIRECT	108u
#define MCHP_ESPI_FC_GIRQ_NVIC_DIRECT		109u
#define MCHP_ESPI_RESET_GIRQ_NVIC_DIRECT	110u
#define MCHP_ESPI_VWEN_GIRQ_NVIC_DIRECT		156u
#define MCHP_ESPI_SAF_DONE_GIRQ_NVIC_DIRECT	166u
#define MCHP_ESPI_SAF_ERR_GIRQ_NVIC_DIRECT	167u
#define MCHP_ESPI_SAF_CACHE_GIRQ_NVIC_DIRECT	169u

/* GIRQ20 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_STAP_OBF_GIRQ_POS		0
#define MCHP_STAP_IBF_GIRQ_POS		1
#define MCHP_STAP_WAKE_GIRQ_POS		2
#define MCHP_OTP_READY_GIRQ_POS		3
#define MCHP_ISPI_ERR_GIRQ_POS		8
#define MCHP_CLK32_MON_GIRQ_POS		9

#define MCHP_STAP_OBF_GIRQ_BIT		BIT(0)
#define MCHP_STAP_IBF_GIRQ_BIT		BIT(1)
#define MCHP_STAP_WAKE_GIRQ_BIT		BIT(2)
#define MCHP_OTP_READY_GIRQ_BIT		BIT(3)
#define MCHP_ISPI_ERR_GIRQ_BIT		BIT(8)
#define MCHP_CLK32_MON_GIRQ_BIT		BIT(9)
/* Masks for blocks with multiple instances or sources */
#define MCHP_STAP_GIRQ_MASK		0x007u
#define MCHP_PERIPH_GROUP_3_MASK	0x30fu

#define MCHP_GIRQ20_NVIC_AGGR		12u
/*
 * Warning: STAP has no direct connections. If STAP and other source are
 * enabled GIRQ20 must be used in aggregated mode.
 */
#define MCHP_OTP_READY_GIRQ_NVIC_DIRECT		173u
#define MCHP_CLK32_MON_GIRQ_NVIC_DIRECT		174u

/* GIRQ21 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_WDT_GIRQ_POS		2
#define MCHP_WTMR_ALARM_GIRQ_POS	3
#define MCHP_WTMR_SUBWK_GIRQ_POS	4
#define MCHP_WTMR_ONESEC_GIRQ_POS	5
#define MCHP_WTMR_SUBSEC_GIRQ_POS	6
#define MCHP_WTMR_SPP_GIRQ_POS		7
#define MCHP_RTC_GIRQ_POS		8
#define MCHP_RTC_ALARM_GIRQ_POS		9
#define MCHP_VCI_OVRD_IN_GIRQ_POS	10
#define MCHP_VCI_IN0_GIRQ_POS		11
#define MCHP_VCI_IN1_GIRQ_POS		12
#define MCHP_VCI_IN2_GIRQ_POS		13
#define MCHP_VCI_IN3_GIRQ_POS		14
#define MCHP_VCI_IN4_GIRQ_POS		15
#define MCHP_PS2_0_PORT0A_WK_GIRQ_POS	18
#define MCHP_PS2_0_PORT0B_WK_GIRQ_POS	19
#define MCHP_KEYSCAN_GIRQ_POS		25
#define MCHP_GLUE_GIRQ_POS		26

#define MCHP_WDT_GIRQ_BIT		BIT(2)
#define MCHP_WTMR_ALARM_GIRQ_BIT	BIT(3)
#define MCHP_WTMR_SUBWK_GIRQ_BIT	BIT(4)
#define MCHP_WTMR_ONESEC_GIRQ_BIT	BIT(5)
#define MCHP_WTMR_SUBSEC_GIRQ_BIT	BIT(6)
#define MCHP_WTMR_SPP_GIRQ_BIT		BIT(7)
#define MCHP_RTC_GIRQ_BIT		BIT(8)
#define MCHP_RTC_ALARM_GIRQ_BIT		BIT(9)
#define MCHP_VCI_OVRD_IN_GIRQ_BIT	BIT(10)
#define MCHP_VCI_IN0_GIRQ_BIT		BIT(11)
#define MCHP_VCI_IN1_GIRQ_BIT		BIT(12)
#define MCHP_VCI_IN2_GIRQ_BIT		BIT(13)
#define MCHP_VCI_IN3_GIRQ_BIT		BIT(14)
#define MCHP_VCI_IN4_GIRQ_BIT		BIT(15)
#define MCHP_PS2_0_PORT0A_WK_GIRQ_BIT	BIT(18)
#define MCHP_PS2_0_PORT0B_WK_GIRQ_BIT	BIT(19)
#define MCHP_KEYSCAN_GIRQ_BIT		BIT(25)
#define MCHP_GLUE_GIRQ_BIT		BIT(26)
/* Masks for blocks with multiple instances or sources */
#define MCHP_WTMR_GIRQ_MASK		0xf8u
#define MCHP_RTC_GIRQ_MASK		0x300u
#define MCHP_VCI_GIRQ_MASK		0xfc00u
#define MCHP_PS2_PORT_WK_GIRQ_MASK	0xc0000u
#define MCHP_PERIPH_GROUP_4_MASK	0x60cfffcu

#define MCHP_GIRQ21_NVIC_AGGR			13u
#define MCHP_WDT_GIRQ_NVIC_DIRECT		171u
#define MCHP_WTMR_ALARM_GIRQ_NVIC_DIRECT	114u
#define MCHP_WTMR_SUBWK_GIRQ_NVIC_DIRECT	115u
#define MCHP_WTMR_ONESEC_GIRQ_NVIC_DIRECT	116u
#define MCHP_WTMR_SUBSEC_GIRQ_NVIC_DIRECT	117u
#define MCHP_WTMR_SPP_GIRQ_NVIC_DIRECT		118u
#define MCHP_RTC_GIRQ_NVIC_DIRECT		119u
#define MCHP_RTC_ALARM_GIRQ_NVIC_DIRECT		120u
#define MCHP_VCI_OVRD_IN_GIRQ_NVIC_DIRECT	121u
#define MCHP_VCI_IN0_GIRQ_NVIC_DIRECT		122u
#define MCHP_VCI_IN1_GIRQ_NVIC_DIRECT		123u
#define MCHP_VCI_IN2_GIRQ_NVIC_DIRECT		124u
#define MCHP_VCI_IN3_GIRQ_NVIC_DIRECT		125u
#define MCHP_VCI_IN4_GIRQ_NVIC_DIRECT		126u
#define MCHP_PS2_0_PORT0A_WK_GIRQ_NVIC_DIRECT	129u
#define MCHP_PS2_0_PORT0B_WK_GIRQ_NVIC_DIRECT	130u
#define MCHP_KEYSCAN_GIRQ_NVIC_DIRECT		135u
#define MCHP_GLUE_GIRQ_NVIC_DIRECT		172u

/*
 * GIRQ22 Source, Enable_Set/Clr, Result registers bit positions
 * NOTE: These wake sources allow the peripheral to turn back on clocks
 * long enough to facilitate the data transfer. No interrupt to the EC occurs
 * unless the peripheral was configured to generate an EC interrupt for
 * the specific data transfer.
 */
#define MCHP_SPIEP_WK_CLK_GIRQ_POS	0
#define MCHP_I2C_SMB_0_WK_CLK_GIRQ_POS	1
#define MCHP_I2C_SMB_1_WK_CLK_GIRQ_POS	2
#define MCHP_I2C_SMB_2_WK_CLK_GIRQ_POS	3
#define MCHP_I2C_SMB_3_WK_CLK_GIRQ_POS	4
#define MCHP_I2C_SMB_4_WK_CLK_GIRQ_POS	5
#define MCHP_ESPI_WK_CLK_GIRQ_POS	9
#define MCHP_STAP_WK_CLK_GIRQ_POS	15

#define MCHP_SPIEP_WK_CLK_GIRQ_BIT	BIT(0)
#define MCHP_I2C_SMB_0_WK_CLK_GIRQ_BIT	BIT(1)
#define MCHP_I2C_SMB_1_WK_CLK_GIRQ_BIT	BIT(2)
#define MCHP_I2C_SMB_2_WK_CLK_GIRQ_BIT	BIT(3)
#define MCHP_I2C_SMB_3_WK_CLK_GIRQ_BIT	BIT(4)
#define MCHP_I2C_SMB_4_WK_CLK_GIRQ_BIT	BIT(5)
#define MCHP_ESPI_WK_CLK_GIRQ_BIT	BIT(9)
#define MCHP_STAP_WK_CLK_GIRQ_BIT	BIT(15)
/* Masks for blocks with multiple instances or sources */
#define MCHP_I2C_SMB_WK_CLK_GIRQ_MASK	0x3eu
#define MCHP_CLK_WK_CLK_GIRQ_MASK	0x823fu

/* GIRQ23 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_BTMR16_0_GIRQ_POS		0
#define MCHP_BTMR16_1_GIRQ_POS		1
#define MCHP_BTMR16_2_GIRQ_POS		2
#define MCHP_BTMR16_3_GIRQ_POS		3
#define MCHP_BTMR32_0_GIRQ_POS		4
#define MCHP_BTMR32_1_GIRQ_POS		5
#define MCHP_CTMR_0_GIRQ_POS		6
#define MCHP_CTMR_1_GIRQ_POS		7
#define MCHP_CTMR_2_GIRQ_POS		8
#define MCHP_CTMR_3_GIRQ_POS		9
#define MCHP_RTMR_0_GIRQ_POS		10
#define MCHP_RTMR_0_SWI0_GIRQ_POS	11
#define MCHP_RTMR_0_SWI1_GIRQ_POS	12
#define MCHP_RTMR_0_SWI2_GIRQ_POS	13
#define MCHP_RTMR_0_SWI3_GIRQ_POS	14
#define MCHP_HTMR_0_GIRQ_POS		16
#define MCHP_HTMR_1_GIRQ_POS		17

#define MCHP_BTMR16_0_GIRQ_BIT		BIT(0)
#define MCHP_BTMR16_1_GIRQ_BIT		BIT(1)
#define MCHP_BTMR16_2_GIRQ_BIT		BIT(2)
#define MCHP_BTMR16_3_GIRQ_BIT		BIT(3)
#define MCHP_BTMR32_0_GIRQ_BIT		BIT(4)
#define MCHP_BTMR32_1_GIRQ_BIT		BIT(5)
#define MCHP_CTMR_0_GIRQ_BIT		BIT(6)
#define MCHP_CTMR_1_GIRQ_BIT		BIT(7)
#define MCHP_CTMR_2_GIRQ_BIT		BIT(8)
#define MCHP_CTMR_3_GIRQ_BIT		BIT(9)
#define MCHP_RTMR_0_GIRQ_BIT		BIT(10)
#define MCHP_RTMR_0_SWI0_GIRQ_BIT	BIT(11)
#define MCHP_RTMR_0_SWI1_GIRQ_BIT	BIT(12)
#define MCHP_RTMR_0_SWI2_GIRQ_BIT	BIT(13)
#define MCHP_RTMR_0_SWI3_GIRQ_BIT	BIT(14)
#define MCHP_HTMR_0_GIRQ_BIT		BIT(16)
#define MCHP_HTMR_1_GIRQ_BIT		BIT(17)
/* Masks for blocks with multiple instances or sources */
#define MCHP_BTMR16_GIRQ_MASK		0x0fu
#define MCHP_BTMR32_GIRQ_MASK		0x30u
#define MCHP_CTMR_GIRQ_MASK		0x3c0u
#define MCHP_RMTR_GIRQ_MASK		0x7c00u
#define MCHP_HTMR_GIRQ_MASK		0x30000u
#define MCHP_PERIPH_GROUP_5_GIRQ_MASK	0x37fffu

#define MCHP_GIRQ23_NVIC_AGGR			14u
/*
 * Warning: RTMR SWI interrupts have no direct connection.
 * If RTMR SWI will be used GIRQ23 must be aggregated.
 */
#define MCHP_BTMR16_0_GIRQ_NVIC_DIRECT		136u
#define MCHP_BTMR16_1_GIRQ_NVIC_DIRECT		137u
#define MCHP_BTMR16_2_GIRQ_NVIC_DIRECT		138u
#define MCHP_BTMR16_3_GIRQ_NVIC_DIRECT		139u
#define MCHP_BTMR32_0_GIRQ_NVIC_DIRECT		140u
#define MCHP_BTMR32_1_GIRQ_NVIC_DIRECT		141u
#define MCHP_CTMR_0_GIRQ_NVIC_DIRECT		142u
#define MCHP_CTMR_1_GIRQ_NVIC_DIRECT		143u
#define MCHP_CTMR_2_GIRQ_NVIC_DIRECT		144u
#define MCHP_CTMR_3_GIRQ_NVIC_DIRECT		145u
#define MCHP_RTMR_0_GIRQ_NVIC_DIRECT		111u
#define MCHP_HTMR_0_GIRQ_NVIC_DIRECT		112u
#define MCHP_HTMR_1_GIRQ_NVIC_DIRECT		113u

/* GIRQ24 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_MSVW00_SRC0_GIRQ_POS	0
#define MCHP_MSVW00_SRC1_GIRQ_POS	1
#define MCHP_MSVW00_SRC2_GIRQ_POS	2
#define MCHP_MSVW00_SRC3_GIRQ_POS	3
#define MCHP_MSVW01_SRC0_GIRQ_POS	4
#define MCHP_MSVW01_SRC1_GIRQ_POS	5
#define MCHP_MSVW01_SRC2_GIRQ_POS	6
#define MCHP_MSVW01_SRC3_GIRQ_POS	7
#define MCHP_MSVW02_SRC0_GIRQ_POS	8
#define MCHP_MSVW02_SRC1_GIRQ_POS	9
#define MCHP_MSVW02_SRC2_GIRQ_POS	10
#define MCHP_MSVW02_SRC3_GIRQ_POS	11
#define MCHP_MSVW03_SRC0_GIRQ_POS	12
#define MCHP_MSVW03_SRC1_GIRQ_POS	13
#define MCHP_MSVW03_SRC2_GIRQ_POS	14
#define MCHP_MSVW03_SRC3_GIRQ_POS	15
#define MCHP_MSVW04_SRC0_GIRQ_POS	16
#define MCHP_MSVW04_SRC1_GIRQ_POS	17
#define MCHP_MSVW04_SRC2_GIRQ_POS	18
#define MCHP_MSVW04_SRC3_GIRQ_POS	19
#define MCHP_MSVW05_SRC0_GIRQ_POS	20
#define MCHP_MSVW05_SRC1_GIRQ_POS	21
#define MCHP_MSVW05_SRC2_GIRQ_POS	22
#define MCHP_MSVW05_SRC3_GIRQ_POS	23
#define MCHP_MSVW06_SRC0_GIRQ_POS	24
#define MCHP_MSVW06_SRC1_GIRQ_POS	25
#define MCHP_MSVW06_SRC2_GIRQ_POS	26
#define MCHP_MSVW06_SRC3_GIRQ_POS	27

#define MCHP_MSVW00_SRC0_GIRQ_BIT	BIT(0)
#define MCHP_MSVW00_SRC1_GIRQ_BIT	BIT(1)
#define MCHP_MSVW00_SRC2_GIRQ_BIT	BIT(2)
#define MCHP_MSVW00_SRC3_GIRQ_BIT	BIT(3)
#define MCHP_MSVW01_SRC0_GIRQ_BIT	BIT(4)
#define MCHP_MSVW01_SRC1_GIRQ_BIT	BIT(5)
#define MCHP_MSVW01_SRC2_GIRQ_BIT	BIT(6)
#define MCHP_MSVW01_SRC3_GIRQ_BIT	BIT(7)
#define MCHP_MSVW02_SRC0_GIRQ_BIT	BIT(8)
#define MCHP_MSVW02_SRC1_GIRQ_BIT	BIT(9)
#define MCHP_MSVW02_SRC2_GIRQ_BIT	BIT(10)
#define MCHP_MSVW02_SRC3_GIRQ_BIT	BIT(11)
#define MCHP_MSVW03_SRC0_GIRQ_BIT	BIT(12)
#define MCHP_MSVW03_SRC1_GIRQ_BIT	BIT(13)
#define MCHP_MSVW03_SRC2_GIRQ_BIT	BIT(14)
#define MCHP_MSVW03_SRC3_GIRQ_BIT	BIT(15)
#define MCHP_MSVW04_SRC0_GIRQ_BIT	BIT(16)
#define MCHP_MSVW04_SRC1_GIRQ_BIT	BIT(17)
#define MCHP_MSVW04_SRC2_GIRQ_BIT	BIT(18)
#define MCHP_MSVW04_SRC3_GIRQ_BIT	BIT(19)
#define MCHP_MSVW05_SRC0_GIRQ_BIT	BIT(20)
#define MCHP_MSVW05_SRC1_GIRQ_BIT	BIT(21)
#define MCHP_MSVW05_SRC2_GIRQ_BIT	BIT(22)
#define MCHP_MSVW05_SRC3_GIRQ_BIT	BIT(23)
#define MCHP_MSVW06_SRC0_GIRQ_BIT	BIT(24)
#define MCHP_MSVW06_SRC1_GIRQ_BIT	BIT(25)
#define MCHP_MSVW06_SRC2_GIRQ_BIT	BIT(26)
#define MCHP_MSVW06_SRC3_GIRQ_BIT	BIT(27)
/* Masks for blocks with multiple instances or sources */
#define MCHP_MSVW00_GIRQ_MASK		0xfu
#define MCHP_MSVW01_GIRQ_MASK		0xf0u
#define MCHP_MSVW02_GIRQ_MASK		0xf00u
#define MCHP_MSVW03_GIRQ_MASK		0xf000u
#define MCHP_MSVW04_GIRQ_MASK		0xf0000u
#define MCHP_MSVW05_GIRQ_MASK		0xf00000u
#define MCHP_MSVW06_GIRQ_MASK		0xf000000u
#define MCHP_MSVW00_06_GIRQ_MASK	0x0fffffffu

#define MCHP_GIRQ24_NVIC_AGGR		15u

/* GIRQ25 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_MSVW07_SRC0_GIRQ_POS	0
#define MCHP_MSVW07_SRC1_GIRQ_POS	1
#define MCHP_MSVW07_SRC2_GIRQ_POS	2
#define MCHP_MSVW07_SRC3_GIRQ_POS	3
#define MCHP_MSVW08_SRC0_GIRQ_POS	4
#define MCHP_MSVW08_SRC1_GIRQ_POS	5
#define MCHP_MSVW08_SRC2_GIRQ_POS	6
#define MCHP_MSVW08_SRC3_GIRQ_POS	7
#define MCHP_MSVW09_SRC0_GIRQ_POS	8
#define MCHP_MSVW09_SRC1_GIRQ_POS	9
#define MCHP_MSVW09_SRC2_GIRQ_POS	10
#define MCHP_MSVW09_SRC3_GIRQ_POS	11
#define MCHP_MSVW10_SRC0_GIRQ_POS	12
#define MCHP_MSVW10_SRC1_GIRQ_POS	13
#define MCHP_MSVW10_SRC2_GIRQ_POS	14
#define MCHP_MSVW10_SRC3_GIRQ_POS	15

#define MCHP_MSVW07_SRC0_GIRQ_BIT	BIT(0)
#define MCHP_MSVW07_SRC1_GIRQ_BIT	BIT(1)
#define MCHP_MSVW07_SRC2_GIRQ_BIT	BIT(2)
#define MCHP_MSVW07_SRC3_GIRQ_BIT	BIT(3)
#define MCHP_MSVW08_SRC0_GIRQ_BIT	BIT(4)
#define MCHP_MSVW08_SRC1_GIRQ_BIT	BIT(5)
#define MCHP_MSVW08_SRC2_GIRQ_BIT	BIT(6)
#define MCHP_MSVW08_SRC3_GIRQ_BIT	BIT(7)
#define MCHP_MSVW09_SRC0_GIRQ_BIT	BIT(8)
#define MCHP_MSVW09_SRC1_GIRQ_BIT	BIT(9)
#define MCHP_MSVW09_SRC2_GIRQ_BIT	BIT(10)
#define MCHP_MSVW09_SRC3_GIRQ_BIT	BIT(11)
#define MCHP_MSVW10_SRC0_GIRQ_BIT	BIT(12)
#define MCHP_MSVW10_SRC1_GIRQ_BIT	BIT(13)
#define MCHP_MSVW10_SRC2_GIRQ_BIT	BIT(14)
#define MCHP_MSVW10_SRC3_GIRQ_BIT	BIT(15)
/* Masks for blocks with multiple instances or sources */
#define MCHP_MSVW07_GIRQ_MASK		0xfu
#define MCHP_MSVW08_GIRQ_MASK		0xf0u
#define MCHP_MSVW09_GIRQ_MASK		0xf00u
#define MCHP_MSVW10_GIRQ_MASK		0xf000u
#define MCHP_MSVW07_10_GIRQ_MASK	0xffffu

#define MCHP_GIRQ25_NVIC_AGGR		16u

#define MCHP_MSVW00_GIRQ		24
#define MCHP_MSVW01_GIRQ		24
#define MCHP_MSVW02_GIRQ		24
#define MCHP_MSVW03_GIRQ		24
#define MCHP_MSVW04_GIRQ		24
#define MCHP_MSVW05_GIRQ		24
#define MCHP_MSVW06_GIRQ		24
#define MCHP_MSVW07_GIRQ		25
#define MCHP_MSVW08_GIRQ		25
#define MCHP_MSVW09_GIRQ		25
#define MCHP_MSVW10_GIRQ		25

/* GIRQ26 Source, Enable_Set/Clr, Result registers bit positions */
#define MCHP_GPIO_0240_GIRQ_POS		0
#define MCHP_GPIO_0241_GIRQ_POS		1
#define MCHP_GPIO_0242_GIRQ_POS		2
#define MCHP_GPIO_0243_GIRQ_POS		3
#define MCHP_GPIO_0244_GIRQ_POS		4
#define MCHP_GPIO_0245_GIRQ_POS		5
#define MCHP_GPIO_0246_GIRQ_POS		6
#define MCHP_GPIO_0254_GIRQ_POS		12
#define MCHP_GPIO_0255_GIRQ_POS		13

#define MCHP_GPIO_0240_GIRQ_BIT		BIT(0)
#define MCHP_GPIO_0241_GIRQ_BIT		BIT(1)
#define MCHP_GPIO_0242_GIRQ_BIT		BIT(2)
#define MCHP_GPIO_0243_GIRQ_BIT		BIT(3)
#define MCHP_GPIO_0244_GIRQ_BIT		BIT(4)
#define MCHP_GPIO_0245_GIRQ_BIT		BIT(5)
#define MCHP_GPIO_0246_GIRQ_BIT		BIT(6)
#define MCHP_GPIO_0254_GIRQ_BIT		BIT(12)
#define MCHP_GPIO_0255_GIRQ_BIT		BIT(13)
/* Masks for blocks with multiple instances or sources */
#define MCHP_GPIO_0240_0276_GIRQ_MASK	0x307fu

#define MCHP_GIRQ26_NVIC_AGGR		17u

/* GIRQ numbering */
#define MCHP_GIRQ_START_NUM	8u
#define MCHP_GIRQ_LAST_NUM	26u
#define MCHP_GIRQ_IDX(girq)	((uint32_t)(girq) - 8u)
#define MCHP_GIRQ_IDX_FIRST	0u
#define MCHP_GIRQ_IDX_MAX	19u
/* Number of NVIC Enable_Set/Clr, Pending_Set/Clr, Active 32-bit registers */
#define MCHP_MAX_NVIC_IDX	6u
/* Number of external NVIC inputs */
#define MCHP_MAX_NVIC_EXT_INPUTS 181u

/** @brief GIRQ registers. Total size = 20(0x14) bytes */
struct girq_regs {
	volatile uint32_t SRC;
	volatile uint32_t EN_SET;
	volatile uint32_t RESULT;
	volatile uint32_t EN_CLR;
	uint32_t RSVD1[1];
};

/** @brief ECIA registers with each GIRQ elucidated */
struct ecia_named_regs {
	struct girq_regs GIRQ08;
	struct girq_regs GIRQ09;
	struct girq_regs GIRQ10;
	struct girq_regs GIRQ11;
	struct girq_regs GIRQ12;
	struct girq_regs GIRQ13;
	struct girq_regs GIRQ14;
	struct girq_regs GIRQ15;
	struct girq_regs GIRQ16;
	struct girq_regs GIRQ17;
	struct girq_regs GIRQ18;
	struct girq_regs GIRQ19;
	struct girq_regs GIRQ20;
	struct girq_regs GIRQ21;
	struct girq_regs GIRQ22;
	struct girq_regs GIRQ23;
	struct girq_regs GIRQ24;
	struct girq_regs GIRQ25;
	struct girq_regs GIRQ26;
	uint8_t RSVD2[(0x0200 - 0x017c)];
	volatile uint32_t BLK_EN_SET;
	volatile uint32_t BLK_EN_CLR;
	volatile uint32_t BLK_ACTIVE;
};

/** @brief ECIA registers with array of GIRQ's */
struct ecia_regs {
	struct girq_regs GIRQ[19];
	uint8_t RSVD2[(0x200 - 0x17c)];
	volatile uint32_t BLK_EN_SET;
	volatile uint32_t BLK_EN_CLR;
	volatile uint32_t BLK_ACTIVE;
};

/* Until XEC ECIA driver is available we define these locally */
static inline void mchp_soc_ecia_girq_aggr_en(uint8_t girq, uint8_t en)
{
	if ((girq < MCHP_FIRST_GIRQ_NOS) || (girq > MCHP_LAST_GIRQ_NOS)) {
		return;
	}

	struct ecia_regs *ecia = (struct ecia_regs *)(ECIA_BASE_ADDR);

	if (en) {
		ecia->BLK_EN_SET = BIT(girq);
	} else {
		ecia->BLK_EN_CLR = BIT(girq);
	}
}

static inline void mchp_soc_ecia_girq_src_clr(uint8_t girq, uint8_t pin)
{
	if ((girq < MCHP_FIRST_GIRQ_NOS) || (girq > MCHP_LAST_GIRQ_NOS) ||
	    (pin > 31)) {
		return;
	}

	struct ecia_regs *ecia = (struct ecia_regs *)(ECIA_BASE_ADDR);

	ecia->GIRQ[girq - 8u].SRC = BIT(pin);
}

static inline void mchp_soc_ecia_girq_src_clr_bitmap(uint8_t girq,
						     uint32_t bitmap)
{
	if ((girq < MCHP_FIRST_GIRQ_NOS) || (girq > MCHP_LAST_GIRQ_NOS)) {
		return;
	}

	struct ecia_regs *ecia = (struct ecia_regs *)(ECIA_BASE_ADDR);

	ecia->GIRQ[girq - 8u].SRC = bitmap;
}

static inline void mchp_soc_ecia_girq_src_dis(uint8_t girq, uint8_t pin)
{
	if ((girq < MCHP_FIRST_GIRQ_NOS) || (girq > MCHP_LAST_GIRQ_NOS) ||
	    (pin > 31)) {
		return;
	}

	struct ecia_regs *ecia = (struct ecia_regs *)(ECIA_BASE_ADDR);

	ecia->GIRQ[girq - 8u].EN_CLR = BIT(pin);
}

static inline void mchp_soc_ecia_girq_src_en(uint8_t girq, uint8_t pin)
{
	if ((girq < MCHP_FIRST_GIRQ_NOS) || (girq > MCHP_LAST_GIRQ_NOS) ||
	    (pin > 31)) {
		return;
	}

	struct ecia_regs *ecia = (struct ecia_regs *)(ECIA_BASE_ADDR);

	ecia->GIRQ[girq - 8u].EN_SET = BIT(pin);
}

static inline uint32_t mchp_soc_ecia_girq_result(uint8_t girq)
{
	if ((girq < MCHP_FIRST_GIRQ_NOS) || (girq > MCHP_LAST_GIRQ_NOS)) {
		return 0u;
	}

	struct ecia_regs *ecia = (struct ecia_regs *)(ECIA_BASE_ADDR);

	return ecia->GIRQ[girq - 8u].RESULT;
}

#endif /* #ifndef _MEC172X_ECIA_H */
