/*
 * 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 <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 */
