File indexing completed on 2025-05-11 08:22:59
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #include "fsl_gpc.h"
0011
0012
0013 #ifndef FSL_COMPONENT_ID
0014 #define FSL_COMPONENT_ID "platform.drivers.gpc_1"
0015 #endif
0016
0017
0018
0019
0020
0021
0022
0023 void GPC_EnableIRQ(GPC_Type *base, uint32_t irqId)
0024 {
0025 uint32_t irqRegNum = irqId / 32U;
0026 uint32_t irqRegShiftNum = irqId % 32U;
0027
0028 assert(irqRegNum <= GPC_IMR_COUNT);
0029
0030 #if ((defined FSL_FEATURE_GPC_HAS_IRQ_0_31) && FSL_FEATURE_GPC_HAS_IRQ_0_31)
0031 if (irqRegNum == GPC_IMR_COUNT)
0032 {
0033 base->IMR5 &= ~(1UL << irqRegShiftNum);
0034 }
0035 else
0036 {
0037 base->IMR[irqRegNum] &= ~(1UL << irqRegShiftNum);
0038 }
0039 #else
0040 assert(irqRegNum > 0U);
0041 base->IMR[irqRegNum - 1UL] &= ~(1UL << irqRegShiftNum);
0042 #endif
0043 }
0044
0045
0046
0047
0048
0049
0050
0051 void GPC_DisableIRQ(GPC_Type *base, uint32_t irqId)
0052 {
0053 uint32_t irqRegNum = irqId / 32U;
0054 uint32_t irqRegShiftNum = irqId % 32U;
0055
0056 assert(irqRegNum <= GPC_IMR_COUNT);
0057
0058 #if ((defined FSL_FEATURE_GPC_HAS_IRQ_0_31) && FSL_FEATURE_GPC_HAS_IRQ_0_31)
0059 if (irqRegNum == GPC_IMR_COUNT)
0060 {
0061 base->IMR5 |= (1UL << irqRegShiftNum);
0062 }
0063 else
0064 {
0065 base->IMR[irqRegNum] |= (1UL << irqRegShiftNum);
0066 }
0067 #else
0068 assert(irqRegNum > 0U);
0069 base->IMR[irqRegNum - 1UL] |= (1UL << irqRegShiftNum);
0070 #endif
0071 }
0072
0073
0074
0075
0076
0077
0078
0079
0080 bool GPC_GetIRQStatusFlag(GPC_Type *base, uint32_t irqId)
0081 {
0082 uint32_t irqRegNum = irqId / 32U;
0083 uint32_t irqRegShiftNum = irqId % 32U;
0084 uint32_t ret;
0085
0086 assert(irqRegNum <= GPC_IMR_COUNT);
0087
0088 #if ((defined FSL_FEATURE_GPC_HAS_IRQ_0_31) && FSL_FEATURE_GPC_HAS_IRQ_0_31)
0089 if (irqRegNum == GPC_IMR_COUNT)
0090 {
0091 ret = base->ISR5 & (1UL << irqRegShiftNum);
0092 }
0093 else
0094 {
0095 ret = base->ISR[irqRegNum] & (1UL << irqRegShiftNum);
0096 }
0097 #else
0098 assert(irqRegNum > 0U);
0099 ret = base->ISR[irqRegNum - 1UL] & (1UL << irqRegShiftNum);
0100 #endif
0101
0102 return (1UL << irqRegShiftNum) == ret;
0103 }