summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-16 15:34:40 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-21 16:27:58 +0200
commit938c27998dbf90ca183e817b4e9211712c55948a (patch)
tree6944a01033156d2de4744288e954bb0a42c9246a
parentspec: Add APBUART functions (diff)
downloadrtems-central-938c27998dbf90ca183e817b4e9211712c55948a.tar.bz2
spec: Add IRQ(A)MP support function
-rw-r--r--spec/dev/grlib/if/io-header.yml14
-rw-r--r--spec/dev/grlib/if/irqamp-get-timestamp.yml48
-rw-r--r--spec/dev/grlib/if/irqamp-header-2.yml16
-rw-r--r--spec/dev/grlib/if/load-32.yml12
4 files changed, 90 insertions, 0 deletions
diff --git a/spec/dev/grlib/if/io-header.yml b/spec/dev/grlib/if/io-header.yml
new file mode 100644
index 00000000..075f5365
--- /dev/null
+++ b/spec/dev/grlib/if/io-header.yml
@@ -0,0 +1,14 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+ This header file defines the register load/store interface.
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: container
+links:
+- role: interface-placement
+ uid: /if/domain
+path: grlib/io.h
+prefix: bsps/include
+type: interface
diff --git a/spec/dev/grlib/if/irqamp-get-timestamp.yml b/spec/dev/grlib/if/irqamp-get-timestamp.yml
new file mode 100644
index 00000000..c7fbba1a
--- /dev/null
+++ b/spec/dev/grlib/if/irqamp-get-timestamp.yml
@@ -0,0 +1,48 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+ Gets the interrupt timestamping register bock.
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+definition:
+ default:
+ attributes: null
+ body: |
+ ${irqamp-timestamp:/name} *timestamp_regs;
+ uint32_t itstmpc;
+
+ timestamp_regs = &${.:/params[0]/name}->itstmp[ 0 ];
+ itstmpc = ${load-32:/name}( &timestamp_regs->itstmpc );
+
+ if ( IRQAMP_ITSTMPC_TSTAMP_GET( itstmpc ) == 0 ) {
+ return NULL;
+ }
+
+ return timestamp_regs;
+ params:
+ - ${irqamp:/name} *${.:/params[0]/name}
+ return: ${irqamp-timestamp:/name} *
+ variants: []
+description: null
+enabled-by: true
+index-entries: []
+interface-type: function
+links:
+- role: interface-placement
+ uid: irqamp-header-2
+- role: interface-ingroup
+ uid: irqamp
+name: irqamp_get_timestamp_registers
+notes: null
+params:
+- description: |
+ is the IRQ(A)MP register block.
+ dir: null
+ name: irqamp_regs
+return:
+ return: |
+ Returns the interrupt timestamping register block.
+ return-values:
+ - description: |
+ The IRQ(A)MP does not support the interrupt timestamping feature.
+ value: ${/c/if/null:/name}
+type: interface
diff --git a/spec/dev/grlib/if/irqamp-header-2.yml b/spec/dev/grlib/if/irqamp-header-2.yml
new file mode 100644
index 00000000..62f4d3ec
--- /dev/null
+++ b/spec/dev/grlib/if/irqamp-header-2.yml
@@ -0,0 +1,16 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+brief: |
+ This header file defines the IRQ(A)MP interface.
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: header-file
+links:
+- role: interface-placement
+ uid: /if/domain
+- role: interface-ingroup
+ uid: irqamp
+path: grlib/irqamp.h
+prefix: bsps/include
+type: interface
diff --git a/spec/dev/grlib/if/load-32.yml b/spec/dev/grlib/if/load-32.yml
new file mode 100644
index 00000000..5627eb28
--- /dev/null
+++ b/spec/dev/grlib/if/load-32.yml
@@ -0,0 +1,12 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+index-entries: []
+interface-type: unspecified-function
+links:
+- role: interface-placement
+ uid: io-header
+name: grlib_load_32
+references: {}
+type: interface