GRLIB GRGPIO Model
The GRGPIO device is part of the GRLIB device library from Gaisler. The GrGPIO model simulates a 16 pin GPIO device by providing input and output via the SignalIface.
Usage
The device can be connected to and from via the signal interface it implements. It implements 16 usable signals (signal 0 through 15). Signal 0 cannot raise interrupts.
You can connect the signal interface as follows:
# Connect GPIO device signal 0 to device model
connect a=gpio.outSignals[0] b=mydevice:SignalIface
# Connect a device signal interface ref to GPIO device
connect a=mydevice.signal b=gpio:SignalIface[1]
// Connect GPIO device signal 0 to device model
temu_connect(gpio, "outSignals[0]", mydevice, "SignalIface");
// Connect a device signal interface ref to GPIO device
temu_connect(mydevice, "signal", gpio, "SignalIface[1]");
@GrGPIO Reference
Properties
| Name | Type | Description |
|---|---|---|
Class |
*void |
Class object |
Component |
*void |
Pointer to component object if part of component |
LocalName |
*char |
Local name (in component, if applicable) |
LogMessageFlags |
uint64_t |
Per-object log message suppression flags |
LoggingFlags |
uint64_t |
Flags for logging info |
Name |
*char |
Object name |
ObjectID |
uint64_t |
Unique ObjectID. |
ReplayLoggingFlags |
uint64_t |
Replay-time category logging flags |
TimeSource |
*void |
Time source object |
GrGPIO Reference
Properties
| Name | Type | Description |
|---|---|---|
BYPASSColdResetValue |
uint32_t |
Bypass register |
BYPASSForcedBits |
uint32_t |
Bypass register |
BYPASSForcedFlippedBits |
uint32_t |
Bypass register |
BYPASSReadMask |
uint32_t |
Bypass register |
BYPASSResetMask |
uint32_t |
Bypass register |
BYPASSResetValue |
uint32_t |
Bypass register |
BYPASSWriteMask |
uint32_t |
Bypass register |
CAPColdResetValue |
uint32_t |
Capability register |
CAPForcedBits |
uint32_t |
Capability register |
CAPForcedFlippedBits |
uint32_t |
Capability register |
CAPReadMask |
uint32_t |
Capability register |
CAPResetMask |
uint32_t |
Capability register |
CAPResetValue |
uint32_t |
Capability register |
CAPWriteMask |
uint32_t |
Capability register |
Class |
*void |
Class object |
Component |
*void |
Pointer to component object if part of component |
DATAColdResetValue |
uint32_t |
I/O port data register |
DATAForcedBits |
uint32_t |
I/O port data register |
DATAForcedFlippedBits |
uint32_t |
I/O port data register |
DATAReadMask |
uint32_t |
I/O port data register |
DATAResetMask |
uint32_t |
I/O port data register |
DATAResetValue |
uint32_t |
I/O port data register |
DATAWriteMask |
uint32_t |
I/O port data register |
DIRECTIONColdResetValue |
uint32_t |
I/O port direction register |
DIRECTIONForcedBits |
uint32_t |
I/O port direction register |
DIRECTIONForcedFlippedBits |
uint32_t |
I/O port direction register |
DIRECTIONReadMask |
uint32_t |
I/O port direction register |
DIRECTIONResetMask |
uint32_t |
I/O port direction register |
DIRECTIONResetValue |
uint32_t |
I/O port direction register |
DIRECTIONWriteMask |
uint32_t |
I/O port direction register |
IAVAILColdResetValue |
uint32_t |
Interrupt available register |
IAVAILForcedBits |
uint32_t |
Interrupt available register |
IAVAILForcedFlippedBits |
uint32_t |
Interrupt available register |
IAVAILReadMask |
uint32_t |
Interrupt available register |
IAVAILResetMask |
uint32_t |
Interrupt available register |
IAVAILResetValue |
uint32_t |
Interrupt available register |
IAVAILWriteMask |
uint32_t |
Interrupt available register |
IEDGEColdResetValue |
uint32_t |
Interrupt edge register |
IEDGEForcedBits |
uint32_t |
Interrupt edge register |
IEDGEForcedFlippedBits |
uint32_t |
Interrupt edge register |
IEDGEReadMask |
uint32_t |
Interrupt edge register |
IEDGEResetMask |
uint32_t |
Interrupt edge register |
IEDGEResetValue |
uint32_t |
Interrupt edge register |
IEDGEWriteMask |
uint32_t |
Interrupt edge register |
IFLAGColdResetValue |
uint32_t |
Interrupt flag register |
IFLAGForcedBits |
uint32_t |
Interrupt flag register |
IFLAGForcedFlippedBits |
uint32_t |
Interrupt flag register |
IFLAGReadMask |
uint32_t |
Interrupt flag register |
IFLAGResetMask |
uint32_t |
Interrupt flag register |
IFLAGResetValue |
uint32_t |
Interrupt flag register |
IFLAGWriteMask |
uint32_t |
Interrupt flag register |
IMASKColdResetValue |
uint32_t |
Interrupt mask register |
IMASKForcedBits |
uint32_t |
Interrupt mask register |
IMASKForcedFlippedBits |
uint32_t |
Interrupt mask register |
IMASKReadMask |
uint32_t |
Interrupt mask register |
IMASKResetMask |
uint32_t |
Interrupt mask register |
IMASKResetValue |
uint32_t |
Interrupt mask register |
IMASKWriteMask |
uint32_t |
Interrupt mask register |
IPENColdResetValue |
uint32_t |
Input enable register |
IPENForcedBits |
uint32_t |
Input enable register |
IPENForcedFlippedBits |
uint32_t |
Input enable register |
IPENReadMask |
uint32_t |
Input enable register |
IPENResetMask |
uint32_t |
Input enable register |
IPENResetValue |
uint32_t |
Input enable register |
IPENWriteMask |
uint32_t |
Input enable register |
IPOLColdResetValue |
uint32_t |
Interrupt polarity register |
IPOLForcedBits |
uint32_t |
Interrupt polarity register |
IPOLForcedFlippedBits |
uint32_t |
Interrupt polarity register |
IPOLReadMask |
uint32_t |
Interrupt polarity register |
IPOLResetMask |
uint32_t |
Interrupt polarity register |
IPOLResetValue |
uint32_t |
Interrupt polarity register |
IPOLWriteMask |
uint32_t |
Interrupt polarity register |
LocalName |
*char |
Local name (in component, if applicable) |
LogMessageFlags |
uint64_t |
Per-object log message suppression flags |
LoggingFlags |
uint64_t |
Flags for logging info |
Name |
*char |
Object name |
OUTPUTColdResetValue |
uint32_t |
I/O port output register |
OUTPUTForcedBits |
uint32_t |
I/O port output register |
OUTPUTForcedFlippedBits |
uint32_t |
I/O port output register |
OUTPUTReadMask |
uint32_t |
I/O port output register |
OUTPUTResetMask |
uint32_t |
I/O port output register |
OUTPUTResetValue |
uint32_t |
I/O port output register |
OUTPUTWriteMask |
uint32_t |
I/O port output register |
ObjectID |
uint64_t |
Unique ObjectID. |
PULSEColdResetValue |
uint32_t |
Pulse register |
PULSEForcedBits |
uint32_t |
Pulse register |
PULSEForcedFlippedBits |
uint32_t |
Pulse register |
PULSEReadMask |
uint32_t |
Pulse register |
PULSEResetMask |
uint32_t |
Pulse register |
PULSEResetValue |
uint32_t |
Pulse register |
PULSEWriteMask |
uint32_t |
Pulse register |
ReplayLoggingFlags |
uint64_t |
Replay-time category logging flags |
TimeSource |
*void |
Time source object |
bypass |
uint32_t |
Bypass register |
capability |
uint32_t |
Capability register |
config.inputEnable |
uint8_t |
|
config.irqFlag |
uint8_t |
|
config.irqGen |
uint8_t |
|
config.irqMask |
uint32_t |
|
config.littleEndian |
uint8_t |
Endianess of memory interface. |
config.pinMask |
uint32_t |
|
config.pirq |
uint8_t |
|
config.pulse |
uint8_t |
|
data |
uint32_t |
I/O port data register |
direction |
uint32_t |
I/O port direction register |
edge |
uint32_t |
Interrupt edge register |
inputEnable |
uint32_t |
Input enable register |
irqAvailable |
uint32_t |
Interrupt available register |
irqCtrl |
temu_IfaceRef/ <unknown> |
Interrupt controller |
irqFlag |
uint32_t |
Interrupt flag register |
irqMap |
[uint32_t; 8] |
Interrupt map register |
mask |
uint32_t |
Interrupt mask register |
outSignals |
[temu_IfaceRef; 32]/ <unknown> |
GPIO signals |
output |
uint32_t |
I/O port output register |
pnp.bar |
uint32_t |
|
pnp.config |
uint32_t |
|
polarity |
uint32_t |
Interrupt polarity register |
pulse |
uint32_t |
Pulse register |
Interfaces
| Name | Type | Description |
|---|---|---|
ApbIface |
ApbIface |
|
DeviceIface |
DeviceIface |
|
MemAccessIface |
MemAccessIface |
|
PulseIface |
SignalIface |
Pulse signals |
RegisterIface |
temu::RegisterIface |
Auto-generated Register Interface Impl. |
ResetIface |
ResetIface |
|
SignalIface |
SignalIface |
Incoming signals |
Registers
| Register support is currently experimental! |
Register Bank Regs
Register DATA
- Description
-
I/O port data register
- Reset value
-
0x00000000
- Warm reset mask
-
0xffffffff
| Field | Mask | Reset | Description |
|---|---|---|---|
DATA |
|
|
I/O port input value |
Register OUTPUT
- Description
-
I/O port output register
- Reset value
-
0x00000000
- Warm reset mask
-
0xffffffff
| Field | Mask | Reset | Description |
|---|---|---|---|
DATA |
|
|
I/O port output value |
Register DIRECTION
- Description
-
I/O port direction register
- Reset value
-
0x00000000
- Warm reset mask
-
0xffffffff
| Field | Mask | Reset | Description |
|---|---|---|---|
DIR |
|
|
I/O port direction value |
Register IMASK
- Description
-
Interrupt mask register
- Reset value
-
0x00000000
- Warm reset mask
-
0x0000ffff
| Field | Mask | Reset | Description |
|---|---|---|---|
MASK |
|
|
Interrupt mask |
Register IPOL
- Description
-
Interrupt polarity register
- Reset value
-
0x00000000
- Warm reset mask
-
0x00000000
| Field | Mask | Reset | Description |
|---|---|---|---|
POL |
|
|
Interrupt polarity |
Register IEDGE
- Description
-
Interrupt edge register
- Reset value
-
0x00000000
- Warm reset mask
-
0x00000000
| Field | Mask | Reset | Description |
|---|---|---|---|
EDGE |
|
|
Interrupt edge |
Register BYPASS
- Description
-
Bypass register
- Reset value
-
0x00000000
- Warm reset mask
-
0xffffffff
| Field | Mask | Reset | Description |
|---|---|---|---|
DATA |
|
|
Bypass alternate function selection |
Register CAP
- Description
-
Capability register
- Reset value
-
0x00010400
- Warm reset mask
-
0x00071f1f
| Field | Mask | Reset | Description |
|---|---|---|---|
PU |
|
|
Pulse register implemented |
IER |
|
|
Input enable register implemented |
IFL |
|
|
Interrupt flag register implemented |
IRQGEN |
|
|
Interrupt generation setting |
NLINES |
|
|
Number of pins in GPIO port minus one |
Register IAVAIL
- Description
-
Interrupt available register
- Reset value
-
0x0000ffff
- Warm reset mask
-
0xffffffff
| Field | Mask | Reset | Description |
|---|---|---|---|
IMASK |
|
|
Interrupt available bit field |
Register IFLAG
- Description
-
Interrupt flag register
- Reset value
-
0x00000000
- Warm reset mask
-
0x00000000
| Field | Mask | Reset | Description |
|---|---|---|---|
IFLAG |
|
|
Interrupt flag |
Register IPEN
- Description
-
Input enable register
- Reset value
-
0x00000000
- Warm reset mask
-
0xffffffff
| Field | Mask | Reset | Description |
|---|---|---|---|
DATA |
|
|
Input enable value |
Register PULSE
- Description
-
Pulse register
- Reset value
-
0x00000000
- Warm reset mask
-
0x0000ffff
| Field | Mask | Reset | Description |
|---|---|---|---|
PULSE |
|
|
Pulse enable |
Register IPEN_OR
- Description
-
Input enable register, logical-OR
- Reset value
-
0x00000000
- Warm reset mask
-
0x00000000
| Field | Mask | Reset | Description |
|---|---|---|---|
DATA |
|
|
Input enable logical-OR |
Register OUTPUT_OR
- Description
-
I/O port output register, logical-OR
- Reset value
-
0x00000000
- Warm reset mask
-
0x00000000
| Field | Mask | Reset | Description |
|---|---|---|---|
DATA |
|
|
I/O port output logical-OR |
Register DIRECTION_OR
- Description
-
I/O port direction register, logical-OR
- Reset value
-
0x00000000
- Warm reset mask
-
0x00000000
| Field | Mask | Reset | Description |
|---|---|---|---|
DIR |
|
|
I/O port direction logical-OR |
Register IMASK_OR
- Description
-
Interrupt mask register, logical-OR
- Reset value
-
0x00000000
- Warm reset mask
-
0x00000000
| Field | Mask | Reset | Description |
|---|---|---|---|
MASK |
|
|
Interrupt mask logical-OR |
Register IPEN_AND
- Description
-
Input enable register, logical-AND
- Reset value
-
0x00000000
- Warm reset mask
-
0x00000000
| Field | Mask | Reset | Description |
|---|---|---|---|
DATA |
|
|
Input enable logical-AND |
Register OUTPUT_AND
- Description
-
I/O port output register, logical-AND
- Reset value
-
0x00000000
- Warm reset mask
-
0x00000000
| Field | Mask | Reset | Description |
|---|---|---|---|
DATA |
|
|
I/O port output logical-AND |
Register DIRECTION_AND
- Description
-
I/O port direction register, logical-AND
- Reset value
-
0x00000000
- Warm reset mask
-
0x00000000
| Field | Mask | Reset | Description |
|---|---|---|---|
DIR |
|
|
I/O port direction logical-AND |
Register IMASK_AND
- Description
-
Interrupt mask register, logical-AND
- Reset value
-
0x00000000
- Warm reset mask
-
0x00000000
| Field | Mask | Reset | Description |
|---|---|---|---|
MASK |
|
|
Interrupt mask logical-AND |
Register IPEN_XOR
- Description
-
Input enable register, logical-XOR
- Reset value
-
0x00000000
- Warm reset mask
-
0x00000000
| Field | Mask | Reset | Description |
|---|---|---|---|
DATA |
|
|
Input enable logical-XOR |
Register OUTPUT_XOR
- Description
-
I/O port output register, logical-XOR
- Reset value
-
0x00000000
- Warm reset mask
-
0x00000000
| Field | Mask | Reset | Description |
|---|---|---|---|
DATA |
|
|
I/O port output logical-XOR |
Register DIRECTION_XOR
- Description
-
I/O port direction register, logical-XOR
- Reset value
-
0x00000000
- Warm reset mask
-
0x00000000
| Field | Mask | Reset | Description |
|---|---|---|---|
DIR |
|
|
I/O port direction logical-XOR |
Register IMASK_XOR
- Description
-
Interrupt mask register, logical-XOR
- Reset value
-
0x00000000
- Warm reset mask
-
0x00000000
| Field | Mask | Reset | Description |
|---|---|---|---|
MASK |
|
|
Interrupt mask logical-XOR |
Register IRQMAPR
- Description
-
Interrupt map register
- Reset value
-
0x00000000
- Warm reset mask
-
0x1f1f1f1f
| Field | Mask | Reset | Description |
|---|---|---|---|
IRQMAP3 |
|
|
Interrupt map field for GPIO line n+3 |
IRQMAP2 |
|
|
Interrupt map field for GPIO line n+2 |
IRQMAP1 |
|
|
Interrupt map field for GPIO line n+1 |
IRQMAP0 |
|
|
Interrupt map field for GPIO line n |
Register IRQMAPR
- Description
-
Interrupt map register
- Reset value
-
0x00000000
- Warm reset mask
-
0x1f1f1f1f
| Field | Mask | Reset | Description |
|---|---|---|---|
IRQMAP3 |
|
|
Interrupt map field for GPIO line n+3 |
IRQMAP2 |
|
|
Interrupt map field for GPIO line n+2 |
IRQMAP1 |
|
|
Interrupt map field for GPIO line n+1 |
IRQMAP0 |
|
|
Interrupt map field for GPIO line n |
Register IRQMAPR
- Description
-
Interrupt map register
- Reset value
-
0x00000000
- Warm reset mask
-
0x1f1f1f1f
| Field | Mask | Reset | Description |
|---|---|---|---|
IRQMAP3 |
|
|
Interrupt map field for GPIO line n+3 |
IRQMAP2 |
|
|
Interrupt map field for GPIO line n+2 |
IRQMAP1 |
|
|
Interrupt map field for GPIO line n+1 |
IRQMAP0 |
|
|
Interrupt map field for GPIO line n |
Register IRQMAPR
- Description
-
Interrupt map register
- Reset value
-
0x00000000
- Warm reset mask
-
0x1f1f1f1f
| Field | Mask | Reset | Description |
|---|---|---|---|
IRQMAP3 |
|
|
Interrupt map field for GPIO line n+3 |
IRQMAP2 |
|
|
Interrupt map field for GPIO line n+2 |
IRQMAP1 |
|
|
Interrupt map field for GPIO line n+1 |
IRQMAP0 |
|
|
Interrupt map field for GPIO line n |
Register IRQMAPR
- Description
-
Interrupt map register
- Reset value
-
0x00000000
- Warm reset mask
-
0x1f1f1f1f
| Field | Mask | Reset | Description |
|---|---|---|---|
IRQMAP3 |
|
|
Interrupt map field for GPIO line n+3 |
IRQMAP2 |
|
|
Interrupt map field for GPIO line n+2 |
IRQMAP1 |
|
|
Interrupt map field for GPIO line n+1 |
IRQMAP0 |
|
|
Interrupt map field for GPIO line n |
Register IRQMAPR
- Description
-
Interrupt map register
- Reset value
-
0x00000000
- Warm reset mask
-
0x1f1f1f1f
| Field | Mask | Reset | Description |
|---|---|---|---|
IRQMAP3 |
|
|
Interrupt map field for GPIO line n+3 |
IRQMAP2 |
|
|
Interrupt map field for GPIO line n+2 |
IRQMAP1 |
|
|
Interrupt map field for GPIO line n+1 |
IRQMAP0 |
|
|
Interrupt map field for GPIO line n |
Register IRQMAPR
- Description
-
Interrupt map register
- Reset value
-
0x00000000
- Warm reset mask
-
0x1f1f1f1f
| Field | Mask | Reset | Description |
|---|---|---|---|
IRQMAP3 |
|
|
Interrupt map field for GPIO line n+3 |
IRQMAP2 |
|
|
Interrupt map field for GPIO line n+2 |
IRQMAP1 |
|
|
Interrupt map field for GPIO line n+1 |
IRQMAP0 |
|
|
Interrupt map field for GPIO line n |
Register IRQMAPR
- Description
-
Interrupt map register
- Reset value
-
0x00000000
- Warm reset mask
-
0x1f1f1f1f
| Field | Mask | Reset | Description |
|---|---|---|---|
IRQMAP3 |
|
|
Interrupt map field for GPIO line n+3 |
IRQMAP2 |
|
|
Interrupt map field for GPIO line n+2 |
IRQMAP1 |
|
|
Interrupt map field for GPIO line n+1 |
IRQMAP0 |
|
|
Interrupt map field for GPIO line n |