aboutsummaryrefslogtreecommitdiffstats
path: root/lib/pru_rpmsg/include/am335x/pru_iep.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pru_rpmsg/include/am335x/pru_iep.h')
-rw-r--r--lib/pru_rpmsg/include/am335x/pru_iep.h261
1 files changed, 261 insertions, 0 deletions
diff --git a/lib/pru_rpmsg/include/am335x/pru_iep.h b/lib/pru_rpmsg/include/am335x/pru_iep.h
new file mode 100644
index 00000000..757bb973
--- /dev/null
+++ b/lib/pru_rpmsg/include/am335x/pru_iep.h
@@ -0,0 +1,261 @@
+/*
+ * Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the
+ * distribution.
+ *
+ * * Neither the name of Texas Instruments Incorporated nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _PRU_IEP_H_
+#define _PRU_IEP_H_
+
+/* PRU IEP register set */
+typedef struct {
+
+ /* PRU_IEP_TMR_GLB_CFG register bit field */
+ union {
+ volatile uint32_t TMR_GLB_CFG;
+
+ volatile struct {
+ unsigned CNT_EN : 1; // 0
+ unsigned rsvd1 : 3; // 3:1
+ unsigned DEFAULT_INC : 4; // 7:4
+ unsigned CMP_INC : 12; // 19:8
+ unsigned rsvd12 : 12; // 31:20
+ } TMR_GLB_CFG_bit;
+ }; // 0x0
+
+
+ /* PRU_IEP_TMR_GLB_STS register bit field */
+ union {
+ volatile uint32_t TMR_GLB_STS;
+
+ volatile struct {
+ unsigned CNT_OVF : 1; // 0
+ unsigned rsvd1 : 31; // 31:1
+ } TMR_GLB_STS_bit;
+ }; // 0x4
+
+
+ /* PRU_IEP_TMR_COMPEN register bit field */
+ union {
+ volatile uint32_t TMR_COMPEN;
+
+ volatile struct {
+ unsigned COMPEN_CNT : 24; // 23:0
+ unsigned rsvd24 : 8; // 31:24
+ } TMR_COMPEN_bit;
+ }; // 0x8
+
+
+ /* PRU_IEP_TMR_CNT register bit field */
+ union {
+ volatile uint32_t TMR_CNT;
+
+ volatile struct {
+ unsigned COUNT : 32; // 31:0
+ } TMR_CNT_bit;
+ }; // 0xC
+
+
+ uint32_t rsvd10[12]; // 0x10 - 0x3C
+
+
+ /* PRU_IEP_TMR_CMP_CFG register bit field */
+ union {
+ volatile uint32_t TMR_CMP_CFG;
+
+ volatile struct {
+ unsigned CMP0_RST_CNT_EN : 1; // 0
+ unsigned CMP_EN : 8; // 8:1
+ unsigned rsvd9 : 23; // 31:9
+ } TMR_CMP_CFG_bit;
+ }; // 0x40
+
+
+ /* PRU_IEP_TMR_CMP_STS register bit field */
+ union {
+ volatile uint32_t TMR_CMP_STS;
+
+ volatile struct {
+ unsigned CMP_HIT : 8; // 7:0
+ unsigned rsvd8 : 24; // 31:8
+ } TMR_CMP_STS_bit;
+ }; // 0x44
+
+ /* PRU_IEP_TMR_CMP0 register bit field */
+ union {
+ volatile uint32_t TMR_CMP0;
+
+ volatile struct {
+ unsigned CMP0 : 32; // 31:0
+ } TMR_CMP0_bit;
+ }; // 0x48
+
+
+ /* PRU_IEP_TMR_CMP1 register bit field */
+ union {
+ volatile uint32_t TMR_CMP1;
+
+ volatile struct {
+ unsigned CMP1 : 32; // 31:0
+ } TMR_CMP1_bit;
+ }; // 0x4C
+
+
+ /* PRU_IEP_TMR_CMP2 register bit field */
+ union {
+ volatile uint32_t TMR_CMP2;
+
+ volatile struct {
+ unsigned CMP2 : 32; // 31:0
+ } TMR_CMP2_bit;
+ }; // 0x50
+
+
+ /* PRU_IEP_TMR_CMP3 register bit field */
+ union {
+ volatile uint32_t TMR_CMP3;
+
+ volatile struct {
+ unsigned CMP3 : 32; // 31:0
+ } TMR_CMP3_bit;
+ }; // 0x54
+
+
+ /* PRU_IEP_TMR_CMP4 register bit field */
+ union {
+ volatile uint32_t TMR_CMP4;
+
+ volatile struct {
+ unsigned CMP4 : 32; // 31:0
+ } TMR_CMP4_bit;
+ }; // 0x58
+
+
+ /* PRU_IEP_TMR_CMP5 register bit field */
+ union {
+ volatile uint32_t TMR_CMP5;
+
+ volatile struct {
+ unsigned CMP5 : 32; // 31:0
+ } TMR_CMP5_bit;
+ }; // 0x5C
+
+
+ /* PRU_IEP_TMR_CMP6 register bit field */
+ union {
+ volatile uint32_t TMR_CMP6;
+
+ volatile struct {
+ unsigned CMP6 : 32; // 31:0
+ } TMR_CMP6_bit;
+ }; // 0x60
+
+
+ /* PRU_IEP_TMR_CMP7 register bit field */
+ union {
+ volatile uint32_t TMR_CMP7;
+
+ volatile struct {
+ unsigned CMP7 : 32; // 31:0
+ } TMR_CMP7_bit;
+ }; // 0x64
+
+ uint32_t rsvd68[166]; // 0x68 - 0x2FF
+
+ /* PRU_IEP_DIGIO_CTRL register bit field */
+ union {
+ volatile uint32_t DIGIO_CTRL;
+
+ volatile struct {
+ unsigned RESERVED0 : 4; // 3:0
+ unsigned IN_MODE : 1; // 4
+ unsigned RESERVED5 : 27; // 31:5
+ } DIGIO_CTRL_bit;
+ }; // 0x300
+
+ uint32_t rsvd304[1]; // 0x304
+
+ /* PRU_IEP_DIGIO_DATA_IN register bit field */
+ union {
+ volatile uint32_t DIGIO_DATA_IN;
+
+ volatile struct {
+ unsigned DATA_IN : 32; // 31:0
+ } DIGIO_DATA_IN_bit;
+ }; // 0x308
+
+ /* PRU_IEP_DIGIO_DATA_IN_RAW register bit field */
+ union {
+ volatile uint32_t DIGIO_DATA_IN_RAW;
+
+ volatile struct {
+ unsigned DATA_IN_RAW : 32; // 31:0
+ } DIGIO_DATA_IN_RAW_bit;
+ }; // 0x30C
+
+ /* PRU_IEP_DIGIO_DATA_OUT register bit field */
+ union {
+ volatile uint32_t DIGIO_DATA_OUT;
+
+ volatile struct {
+ unsigned DATA_OUT : 32; // 31:0
+ } DIGIO_DATA_OUT_bit;
+ }; // 0x310
+
+ /* PRU_IEP_DIGIO_DATA_OUT_EN register bit field */
+ union {
+ volatile uint32_t DIGIO_DATA_OUT_EN;
+
+ volatile struct {
+ unsigned DATA_OUT_EN : 32; // 31:0
+ } DIGIO_DATA_OUT_EN_bit;
+ }; // 0x314
+
+ /* PRU_IEP_DIGIO_EXP register bit field */
+ union {
+ volatile uint32_t DIGIO_EXP;
+
+ volatile struct {
+ unsigned SW_DATA_OUT_UPDATE : 1; // 0
+ unsigned OUTVALID_OVR_EN : 1; // 1
+ unsigned RESERVED2 : 30; // 31:2
+ } DIGIO_EXP_bit;
+ }; // 0x318
+
+} pruIep;
+
+#ifdef __GNUC__
+static volatile pruIep *__CT_IEP = (void *)0x0002e000;
+#define CT_IEP (*__CT_IEP)
+#else
+volatile __far pruIep CT_IEP __attribute__((cregister("PRU_IEP", far), peripheral));
+#endif
+
+#endif /* _PRU_IEP_H_ */