]> rtime.felk.cvut.cz Git - pes-rpp/rpp-lib.git/commitdiff
Merge port and gpio definitions into one file in the DRV layer
authorMichal Horn <hornmich@fel.cvut.cz>
Fri, 17 Jul 2015 08:07:23 +0000 (10:07 +0200)
committerMichal Sojka <sojkam1@fel.cvut.cz>
Sun, 2 Aug 2015 18:26:32 +0000 (20:26 +0200)
The idea is to have the pin and port names in a separated target specific
header files, the pin and port definitions in a target specific source files and
the target independent functions and data types in a common header and source
files.

The application than should include only one header file digital_io_def.h,
where are defined the names of the pins, and digital_io.h where is defined the
driver interface.

49 files changed:
Makefile.var
rpp/include/drv/_rm48_hdk/digital_io_def.h [new file with mode: 0644]
rpp/include/drv/_tms570_hdk/digital_io_def.h [new file with mode: 0644]
rpp/include/drv/_tms570_hydctr/digital_io_def.h [new file with mode: 0644]
rpp/include/drv/_tms570_rpp/digital_io_def.h [new file with mode: 0644]
rpp/include/drv/dac.h
rpp/include/drv/digital_io.h [new file with mode: 0644]
rpp/include/drv/drv.h
rpp/include/drv/mout.h
rpp/include/hal/_rm48_hdk/.gitattributes [deleted file]
rpp/include/hal/_rm48_hdk/gpio_def.h [deleted file]
rpp/include/hal/_rm48_hdk/port_def.h [deleted file]
rpp/include/hal/_tms570_hdk/.gitattributes [deleted file]
rpp/include/hal/_tms570_hdk/gpio_def.h [deleted file]
rpp/include/hal/_tms570_hdk/port_def.h [deleted file]
rpp/include/hal/_tms570_hydctr/.gitattributes [deleted file]
rpp/include/hal/_tms570_hydctr/gpio_def.h [deleted file]
rpp/include/hal/_tms570_hydctr/port_def.h [deleted file]
rpp/include/hal/_tms570_rpp/gpio_def.h [deleted file]
rpp/include/hal/_tms570_rpp/port_def.h [deleted file]
rpp/include/hal/hal.h [deleted file]
rpp/include/rpp/gio.h
rpp/src/drv/_rm48_hdk/digital_io_def.c [new file with mode: 0644]
rpp/src/drv/_tms570_hdk/digital_io_def.c [new file with mode: 0644]
rpp/src/drv/_tms570_hydctr/digital_io_def.c [new file with mode: 0644]
rpp/src/drv/_tms570_rpp/digital_io_def.c [new file with mode: 0644]
rpp/src/drv/dac.c
rpp/src/drv/digital_io.c [new file with mode: 0644]
rpp/src/drv/din.c
rpp/src/drv/fr_tms570.c
rpp/src/drv/hbridge.c
rpp/src/drv/hout.c
rpp/src/drv/lout.c
rpp/src/drv/mout.c
rpp/src/hal/_rm48_hdk/.gitattributes [deleted file]
rpp/src/hal/_rm48_hdk/gpio_def.c [deleted file]
rpp/src/hal/_rm48_hdk/port_def.c [deleted file]
rpp/src/hal/_tms570_hdk/.gitattributes [deleted file]
rpp/src/hal/_tms570_hdk/gpio_def.c [deleted file]
rpp/src/hal/_tms570_hdk/port_def.c [deleted file]
rpp/src/hal/_tms570_hydctr/.gitattributes [deleted file]
rpp/src/hal/_tms570_hydctr/gpio_def.c [deleted file]
rpp/src/hal/_tms570_hydctr/port_def.c [deleted file]
rpp/src/hal/_tms570_rpp/gpio_def.c [deleted file]
rpp/src/hal/_tms570_rpp/port_def.c [deleted file]
rpp/src/hal/hal.c [deleted file]
rpp/src/hal/spi_resp_transl.c
rpp/src/rpp/eth.c
rpp/src/rpp/gio.c

index 899602d6b5408fdd574a0fc04fccdc2e2b1dbddb..f5bc3b79e8b02031cb98528bc1bee4ea5592c5f5 100644 (file)
@@ -39,9 +39,8 @@ rpp_lib_SOURCES +=                                                            \
        rpp/src/rpp/sci.c                                               \
        rpp/src/drv/_$(TARGET)/adc.c                            \
        rpp/src/drv/sci.c                                               \
-       rpp/src/hal/hal.c                                               \
-       rpp/src/hal/_$(TARGET)/gpio_def.c               \
-       rpp/src/hal/_$(TARGET)/port_def.c               \
+       rpp/src/drv/_$(TARGET)/digital_io_def.c         \
+       rpp/src/drv/digital_io.c                                \
        rpp/src/sys/asm/dabort.asm                              \
        rpp/src/sys/asm/sys_core.asm                            \
        rpp/src/sys/asm/sys_intvecs.asm                 \
diff --git a/rpp/include/drv/_rm48_hdk/digital_io_def.h b/rpp/include/drv/_rm48_hdk/digital_io_def.h
new file mode 100644 (file)
index 0000000..15ed893
--- /dev/null
@@ -0,0 +1,76 @@
+/**
+ *
+ * @file digital_io_def.h
+ *
+ * @copyright Copyright (C) 2012-2013 Czech Technical University in Prague
+ *
+ * @author Michal Horn <hornmich@fel.cvut.cz>
+ */
+
+#ifndef DIGITAL_IO_DEF_H_
+#define DIGITAL_IO_DEF_H_
+
+#define DIO_MAX_PIN_CNT     46
+#define DIO_MAX_PORT_CNT    5
+
+/* Pin names */
+#define DIO_PIN_NAME_GIOA0      "GIOA0"
+#define DIO_PIN_NAME_GIOA1      "GIOA1"
+#define DIO_PIN_NAME_GIOA2      "GIOA2"
+#define DIO_PIN_NAME_GIOA3      "GIOA3"
+#define DIO_PIN_NAME_GIOA4      "GIOA4"
+#define DIO_PIN_NAME_GIOA5      "GIOA5"
+#define DIO_PIN_NAME_GIOA6      "GIOA6"
+#define DIO_PIN_NAME_GIOA7      "GIOA7"
+
+#define DIO_PIN_NAME_GIOB0      "GIOB0"
+#define DIO_PIN_NAME_GIOB1      "GIOB1"
+#define DIO_PIN_NAME_GIOB2      "GIOB2"
+#define DIO_PIN_NAME_GIOB3      "GIOB3"
+#define DIO_PIN_NAME_GIOB4      "GIOB4"
+#define DIO_PIN_NAME_GIOB5      "GIOB5"
+#define DIO_PIN_NAME_GIOB6      "GIOB6"
+#define DIO_PIN_NAME_GIOB7      "GIOB7"
+
+#define DIO_PIN_NAME_NHET1_0      "NHET10"
+#define DIO_PIN_NAME_NHET1_1      "NHET11"
+#define DIO_PIN_NAME_NHET1_2      "NHET12"
+#define DIO_PIN_NAME_NHET1_3      "NHET13"
+#define DIO_PIN_NAME_NHET1_4      "NHET14"
+#define DIO_PIN_NAME_NHET1_5      "NHET15"
+#define DIO_PIN_NAME_NHET1_6      "NHET16"
+#define DIO_PIN_NAME_NHET1_7      "NHET17"
+#define DIO_PIN_NAME_NHET1_8      "NHET18"
+#define DIO_PIN_NAME_NHET1_9      "NHET19"
+#define DIO_PIN_NAME_NHET1_10     "NHET110"
+#define DIO_PIN_NAME_NHET1_11     "NHET111"
+#define DIO_PIN_NAME_NHET1_12     "NHET112"
+#define DIO_PIN_NAME_NHET1_13     "NHET113"
+#define DIO_PIN_NAME_NHET1_14     "NHET114"
+#define DIO_PIN_NAME_NHET1_15     "NHET115"
+#define DIO_PIN_NAME_NHET1_16     "NHET116"
+#define DIO_PIN_NAME_NHET1_17     "NHET117"
+#define DIO_PIN_NAME_NHET1_18     "NHET118"
+#define DIO_PIN_NAME_NHET1_19     "NHET119"
+#define DIO_PIN_NAME_NHET1_20     "NHET120"
+#define DIO_PIN_NAME_NHET1_21     "NHET121"
+#define DIO_PIN_NAME_NHET1_22     "NHET122"
+#define DIO_PIN_NAME_NHET1_23     "NHET123"
+#define DIO_PIN_NAME_NHET1_24     "NHET124"
+#define DIO_PIN_NAME_NHET1_25     "NHET125"
+#define DIO_PIN_NAME_NHET1_26     "NHET126"
+#define DIO_PIN_NAME_NHET1_27     "NHET127"
+#define DIO_PIN_NAME_NHET1_28     "NHET128"
+#define DIO_PIN_NAME_NHET1_29     "NHET129"
+#define DIO_PIN_NAME_NHET1_30     "NHET130"
+#define DIO_PIN_NAME_NHET1_31     "NHET131"
+#define DIO_PIN_NAME_UNUSED       "unused"
+
+#define DIO_PORT_CNT    4
+#define DIO_PORT_SHIFT          5
+/* Port names */
+#define DIO_PORT_NAME_GIOA          "GIOA"
+#define DIO_PORT_NAME_GIOB          "GIOB"
+#define DIO_PORT_NAME_NHET1         "NHET1"
+#define DIO_PORT_NAME_ADC           "ADC"
+#endif /* DIGITAL_IO_DEF_H_ */
diff --git a/rpp/include/drv/_tms570_hdk/digital_io_def.h b/rpp/include/drv/_tms570_hdk/digital_io_def.h
new file mode 100644 (file)
index 0000000..c24bf79
--- /dev/null
@@ -0,0 +1,77 @@
+/**
+ *
+ * @file digital_io_def.h
+ *
+ * @copyright Copyright (C) 2012-2013 Czech Technical University in Prague
+ *
+ * @author Michal Horn <hornmich@fel.cvut.cz>
+ */
+
+#ifndef DIGITAL_IO_DEF_H_
+#define DIGITAL_IO_DEF_H_
+
+#define DIO_MAX_PIN_CNT     46
+#define DIO_MAX_PORT_CNT    5
+
+/* Pin names */
+#define DIO_PIN_NAME_GIOA0      "GIOA0"
+#define DIO_PIN_NAME_GIOA1      "GIOA1"
+#define DIO_PIN_NAME_GIOA2      "GIOA2"
+#define DIO_PIN_NAME_GIOA3      "GIOA3"
+#define DIO_PIN_NAME_GIOA4      "GIOA4"
+#define DIO_PIN_NAME_GIOA5      "GIOA5"
+#define DIO_PIN_NAME_GIOA6      "GIOA6"
+#define DIO_PIN_NAME_GIOA7      "GIOA7"
+
+#define DIO_PIN_NAME_GIOB0      "GIOB0"
+#define DIO_PIN_NAME_GIOB1      "GIOB1"
+#define DIO_PIN_NAME_GIOB2      "GIOB2"
+#define DIO_PIN_NAME_GIOB3      "GIOB3"
+#define DIO_PIN_NAME_GIOB4      "GIOB4"
+#define DIO_PIN_NAME_GIOB5      "GIOB5"
+#define DIO_PIN_NAME_GIOB6      "GIOB6"
+#define DIO_PIN_NAME_GIOB7      "GIOB7"
+
+#define DIO_PIN_NAME_NHET1_0      "NHET10"
+#define DIO_PIN_NAME_NHET1_1      "NHET11"
+#define DIO_PIN_NAME_NHET1_2      "NHET12"
+#define DIO_PIN_NAME_NHET1_3      "NHET13"
+#define DIO_PIN_NAME_NHET1_4      "NHET14"
+#define DIO_PIN_NAME_NHET1_5      "NHET15"
+#define DIO_PIN_NAME_NHET1_6      "NHET16"
+#define DIO_PIN_NAME_NHET1_7      "NHET17"
+#define DIO_PIN_NAME_NHET1_8      "NHET18"
+#define DIO_PIN_NAME_NHET1_9      "NHET19"
+#define DIO_PIN_NAME_NHET1_10     "NHET110"
+#define DIO_PIN_NAME_NHET1_11     "NHET111"
+#define DIO_PIN_NAME_NHET1_12     "NHET112"
+#define DIO_PIN_NAME_NHET1_13     "NHET113"
+#define DIO_PIN_NAME_NHET1_14     "NHET114"
+#define DIO_PIN_NAME_NHET1_15     "NHET115"
+#define DIO_PIN_NAME_NHET1_16     "NHET116"
+#define DIO_PIN_NAME_NHET1_17     "NHET117"
+#define DIO_PIN_NAME_NHET1_18     "NHET118"
+#define DIO_PIN_NAME_NHET1_19     "NHET119"
+#define DIO_PIN_NAME_NHET1_20     "NHET120"
+#define DIO_PIN_NAME_NHET1_21     "NHET121"
+#define DIO_PIN_NAME_NHET1_22     "NHET122"
+#define DIO_PIN_NAME_NHET1_23     "NHET123"
+#define DIO_PIN_NAME_NHET1_24     "NHET124"
+#define DIO_PIN_NAME_NHET1_25     "NHET125"
+#define DIO_PIN_NAME_NHET1_26     "NHET126"
+#define DIO_PIN_NAME_NHET1_27     "NHET127"
+#define DIO_PIN_NAME_NHET1_28     "NHET128"
+#define DIO_PIN_NAME_NHET1_29     "NHET129"
+#define DIO_PIN_NAME_NHET1_30     "NHET130"
+#define DIO_PIN_NAME_NHET1_31     "NHET131"
+#define DIO_PIN_NAME_UNUSED       "unused"
+
+#define DIO_PORT_CNT    4
+#define DIO_PORT_SHIFT          5
+/* Port names */
+#define DIO_PORT_NAME_GIOA          "GIOA"
+#define DIO_PORT_NAME_GIOB          "GIOB"
+#define DIO_PORT_NAME_NHET1         "NHET1"
+#define DIO_PORT_NAME_ADC           "ADC"
+
+#endif /* DIGITAL_IO_DEF_H_ */
diff --git a/rpp/include/drv/_tms570_hydctr/digital_io_def.h b/rpp/include/drv/_tms570_hydctr/digital_io_def.h
new file mode 100644 (file)
index 0000000..c24bf79
--- /dev/null
@@ -0,0 +1,77 @@
+/**
+ *
+ * @file digital_io_def.h
+ *
+ * @copyright Copyright (C) 2012-2013 Czech Technical University in Prague
+ *
+ * @author Michal Horn <hornmich@fel.cvut.cz>
+ */
+
+#ifndef DIGITAL_IO_DEF_H_
+#define DIGITAL_IO_DEF_H_
+
+#define DIO_MAX_PIN_CNT     46
+#define DIO_MAX_PORT_CNT    5
+
+/* Pin names */
+#define DIO_PIN_NAME_GIOA0      "GIOA0"
+#define DIO_PIN_NAME_GIOA1      "GIOA1"
+#define DIO_PIN_NAME_GIOA2      "GIOA2"
+#define DIO_PIN_NAME_GIOA3      "GIOA3"
+#define DIO_PIN_NAME_GIOA4      "GIOA4"
+#define DIO_PIN_NAME_GIOA5      "GIOA5"
+#define DIO_PIN_NAME_GIOA6      "GIOA6"
+#define DIO_PIN_NAME_GIOA7      "GIOA7"
+
+#define DIO_PIN_NAME_GIOB0      "GIOB0"
+#define DIO_PIN_NAME_GIOB1      "GIOB1"
+#define DIO_PIN_NAME_GIOB2      "GIOB2"
+#define DIO_PIN_NAME_GIOB3      "GIOB3"
+#define DIO_PIN_NAME_GIOB4      "GIOB4"
+#define DIO_PIN_NAME_GIOB5      "GIOB5"
+#define DIO_PIN_NAME_GIOB6      "GIOB6"
+#define DIO_PIN_NAME_GIOB7      "GIOB7"
+
+#define DIO_PIN_NAME_NHET1_0      "NHET10"
+#define DIO_PIN_NAME_NHET1_1      "NHET11"
+#define DIO_PIN_NAME_NHET1_2      "NHET12"
+#define DIO_PIN_NAME_NHET1_3      "NHET13"
+#define DIO_PIN_NAME_NHET1_4      "NHET14"
+#define DIO_PIN_NAME_NHET1_5      "NHET15"
+#define DIO_PIN_NAME_NHET1_6      "NHET16"
+#define DIO_PIN_NAME_NHET1_7      "NHET17"
+#define DIO_PIN_NAME_NHET1_8      "NHET18"
+#define DIO_PIN_NAME_NHET1_9      "NHET19"
+#define DIO_PIN_NAME_NHET1_10     "NHET110"
+#define DIO_PIN_NAME_NHET1_11     "NHET111"
+#define DIO_PIN_NAME_NHET1_12     "NHET112"
+#define DIO_PIN_NAME_NHET1_13     "NHET113"
+#define DIO_PIN_NAME_NHET1_14     "NHET114"
+#define DIO_PIN_NAME_NHET1_15     "NHET115"
+#define DIO_PIN_NAME_NHET1_16     "NHET116"
+#define DIO_PIN_NAME_NHET1_17     "NHET117"
+#define DIO_PIN_NAME_NHET1_18     "NHET118"
+#define DIO_PIN_NAME_NHET1_19     "NHET119"
+#define DIO_PIN_NAME_NHET1_20     "NHET120"
+#define DIO_PIN_NAME_NHET1_21     "NHET121"
+#define DIO_PIN_NAME_NHET1_22     "NHET122"
+#define DIO_PIN_NAME_NHET1_23     "NHET123"
+#define DIO_PIN_NAME_NHET1_24     "NHET124"
+#define DIO_PIN_NAME_NHET1_25     "NHET125"
+#define DIO_PIN_NAME_NHET1_26     "NHET126"
+#define DIO_PIN_NAME_NHET1_27     "NHET127"
+#define DIO_PIN_NAME_NHET1_28     "NHET128"
+#define DIO_PIN_NAME_NHET1_29     "NHET129"
+#define DIO_PIN_NAME_NHET1_30     "NHET130"
+#define DIO_PIN_NAME_NHET1_31     "NHET131"
+#define DIO_PIN_NAME_UNUSED       "unused"
+
+#define DIO_PORT_CNT    4
+#define DIO_PORT_SHIFT          5
+/* Port names */
+#define DIO_PORT_NAME_GIOA          "GIOA"
+#define DIO_PORT_NAME_GIOB          "GIOB"
+#define DIO_PORT_NAME_NHET1         "NHET1"
+#define DIO_PORT_NAME_ADC           "ADC"
+
+#endif /* DIGITAL_IO_DEF_H_ */
diff --git a/rpp/include/drv/_tms570_rpp/digital_io_def.h b/rpp/include/drv/_tms570_rpp/digital_io_def.h
new file mode 100644 (file)
index 0000000..f009d77
--- /dev/null
@@ -0,0 +1,85 @@
+/**
+ *
+ * @file digital_io_def.h
+ *
+ * @copyright Copyright (C) 2012-2013 Czech Technical University in Prague
+ *
+ * @author Michal Horn <hornmich@fel.cvut.cz>
+ */
+
+#ifndef DIGITAL_IO_DEF_H_
+#define DIGITAL_IO_DEF_H_
+
+#define DIO_MAX_PIN_CNT     103
+#define DIO_MAX_PORT_CNT       5
+/* Pin names */
+#define DIO_PIN_NAME_DIN8       "DIN8"
+#define DIO_PIN_NAME_DIN9       "DIN9"
+#define DIO_PIN_NAME_DIN10      "DIN10"
+#define DIO_PIN_NAME_DIN11      "DIN11"
+#define DIO_PIN_NAME_DIN12      "DIN12"
+#define DIO_PIN_NAME_DIN13      "DIN13"
+#define DIO_PIN_NAME_DIN14      "DIN14"
+#define DIO_PIN_NAME_DIN15      "DIN15"
+#define DIO_PIN_NAME_DININT     "DININT"
+#define DIO_PIN_NAME_HOUT1IN    "HOUT1IN"
+#define DIO_PIN_NAME_HOUT2IN    "HOUT2IN"
+#define DIO_PIN_NAME_HOUT3IN    "HOUT3IN"
+#define DIO_PIN_NAME_HOUT4IN    "HOUT4IN"
+#define DIO_PIN_NAME_HOUT5IN    "HOUT5IN"
+#define DIO_PIN_NAME_HOUT6IN    "HOUT6IN"
+#define DIO_PIN_NAME_HOUT1DIAG  "HOUT1DIAG"
+#define DIO_PIN_NAME_HOUT2DIAG  "HOUT2DIAG"
+#define DIO_PIN_NAME_HOUT3DIAG  "HOUT3DIAG"
+#define DIO_PIN_NAME_HOUT4DIAG  "HOUT4DIAG"
+#define DIO_PIN_NAME_HOUT5DIAG  "HOUT5DIAG"
+#define DIO_PIN_NAME_HOUT6DIAG  "HOUT6DIAG"
+#define DIO_PIN_NAME_MOUT1IN    "MOUT1IN"
+#define DIO_PIN_NAME_MOUT2IN    "MOUT2IN"
+#define DIO_PIN_NAME_MOUT3IN    "MOUT3IN"
+#define DIO_PIN_NAME_MOUT4IN    "MOUT4IN"
+#define DIO_PIN_NAME_MOUT5IN    "MOUT5IN"
+#define DIO_PIN_NAME_MOUT6IN    "MOUT6IN"
+#define DIO_PIN_NAME_MOUT1EN    "MOUT1EN"
+#define DIO_PIN_NAME_MOUT2EN    "MOUT2EN"
+#define DIO_PIN_NAME_MOUT3EN    "MOUT3EN"
+#define DIO_PIN_NAME_MOUT4EN    "MOUT4EN"
+#define DIO_PIN_NAME_MOUT5EN    "MOUT5EN"
+#define DIO_PIN_NAME_MOUT6EN    "MOUT6EN"
+#define DIO_PIN_NAME_VBAT1EN    "VBAT1EN"
+#define DIO_PIN_NAME_VBAT2EN    "VBAT2EN"
+#define DIO_PIN_NAME_VBAT3EN    "VBAT3EN"
+#define DIO_PIN_NAME_VBATEN     "VBATEN"
+#define DIO_PIN_NAME_FANCTRL    "FANCTRL"
+#define DIO_PIN_NAME_ETHRST     "ETHRST"
+#define DIO_PIN_NAME_SPICSA     "SPICSA"
+#define DIO_PIN_NAME_SPICSB     "SPICSB"
+#define DIO_PIN_NAME_CANNSTB    "CANNSTB"
+#define DIO_PIN_NAME_CANEN      "CANEN"
+#define DIO_PIN_NAME_LIN2NSLP   "LIN2NSLP"
+#define DIO_PIN_NAME_LIN1NSLP   "LIN1NSLP"
+#define DIO_PIN_NAME_HBREN      "HBREN"
+#define DIO_PIN_NAME_HBRDIR     "HBRDIR"
+#define DIO_PIN_NAME_HBRPWM     "HBRPWM"
+#define DIO_PIN_NAME_UNUSED     NULL
+
+#define DIO_PORT_CNT    15
+#define DIO_PORT_SHIFT          5
+/* Port names */
+#define DIO_PORT_NAME_DINMCU        "DINMCU"
+#define DIO_PORT_NAME_DINSPI        "DINSPI"
+#define DIO_PORT_NAME_HOUTDIAG      "HOUTDIAG"
+#define DIO_PORT_NAME_HOUTIN        "HOUTIN"
+#define DIO_PORT_NAME_HOUTIFBK      "HOUTIFBK"
+#define DIO_PORT_NAME_ADC           "ADC"
+#define DIO_PORT_NAME_LOUT          "LOUT"
+#define DIO_PORT_NAME_DAC1_2        "DAC12"
+#define DIO_PORT_NAME_DAC3_4        "DAC34"
+#define DIO_PORT_NAME_DACDREF       "DACDREF"
+#define DIO_PORT_NAME_HBR           "HBR"
+#define DIO_PORT_NAME_FRAY1         "FRAY1"
+#define DIO_PORT_NAME_FRAY2         "FRAY2"
+#define DIO_PORT_NAME_MOUTEN        "MOUTEN"
+#define DIO_PORT_NAME_MOUTIN        "MOUTIN"
+
+#endif /* DIGITAL_IO_DEF_H_ */
index cd9972e2e66e0f285fbb46655bd2beca7ce3a0b0..1bbdfdf91a6901253767cb8eadab935d469e4920 100644 (file)
@@ -13,7 +13,7 @@
 #ifndef __DRV_DAC_H
 #define __DRV_DAC_H
 
-#include "hal/hal.h"
+#include "drv/digital_io.h"
 
 
 /**
diff --git a/rpp/include/drv/digital_io.h b/rpp/include/drv/digital_io.h
new file mode 100644 (file)
index 0000000..f3758b2
--- /dev/null
@@ -0,0 +1,289 @@
+/**
+ * Hardware Abstraction Layer library interface file.
+ *
+ * @file hal.h
+ *
+ * @copyright Copyright (C) 2013, 2015 Czech Technical University in Prague
+ *
+ * @author Carlos Jenkins <carlos@jenkins.co.cr>
+ */
+
+#ifndef __HAL_H
+#define __HAL_H
+
+#include "sys/sys.h"
+
+#if defined(TARGET_POSIX)
+#include "drv/_rm48_hdk/digital_io_def.h"
+#elif defined(TARGET_RM48_HDK)
+#include "drv/_rm48_hdk/digital_io_def.h"
+#elif defined(TARGET_TMS570_HDK)
+#include "drv/_tms570_hdk/digital_io_def.h"
+#elif defined(TARGET_TMS570_HYDCTR)
+#include "drv/_tms570_hydctr/digital_io_def.h"
+#elif defined(TARGET_TMS570_RPP)
+#include "drv/_tms570_rpp/digital_io_def.h"
+#else
+#error No supported target specified!
+#endif
+
+typedef struct dio_pin_map_element {
+       const char *pin_name;          // Pin name
+       uint32_t pin_desc;              // Pin descriptor assigned to the pin name
+} dio_pin_map_element_t;
+
+enum dio_port_interface_type {
+       ADC = 1,
+       SPI,
+       GPIO
+};
+
+/**
+ * @brief Port descriptor
+ *
+ * The structure describes the port. Port here means set of IO pins on the board.
+ * The API is designed to provide an interface for setting and reading from ports connected to the MCU by SPI, GPIO or ADC.
+ */
+typedef struct dio_port_desc_st {
+       uint32_t *config;       /**< Configuration of the port. An arry of values, which meaning differs for the interface type:
+                                        for SPI: address, chip-select
+                                        for GPIO: descriptors for pins (defined in gpio_tms570_def.h)
+                                        for ADC: ADC base address, ADC group number, Peripheral type (HOUTIFBK or ADC)
+                                */
+       uint32_t numValues;     /**< Size of the data to be read from or written on the port. Meaning differs for the interface type:
+                                       for SPI: size of the command in bytes
+                                       for GPIO: number of pins on the port
+                                       for ADC: number of channels to be read from ADC.
+                                */
+       enum dio_port_interface_type interfaceType;     /**< Type of the interface to which the port or its controller is connected.
+                                           Can be SPI, ADC or GPIO
+                                    */
+       uint32_t (*port_getfnc_ptr)(uint32_t *config, uint32_t num_val, uint32_t *values);   /**< Pointer to a getter function. If it is NULL, than port is write only.
+                                                                                                    All SPI ports are write only, because command has to be sent to obtain actual response.
+                                                                                                    It is allowed to read values from an output port.
+                                                                                             */
+       uint32_t (*port_setfnc_ptr)(uint32_t *config, uint32_t num_val, const uint32_t *values); /**< Pointer to a setter function. If it is NULL, than port is read only.
+                                                                                                    All ADC ports are read only.
+                                                                                                    It is not allowed to write values on an input port.
+                                                                                                 */
+} dio_port_desc_t;
+
+/**
+ * Maps port descriptor to the port name
+ */
+typedef struct dio_port_def_st {
+       char *name;
+       dio_port_desc_t *desc;
+} dio_port_def_t;
+
+#define DIO_PORT_CONF_MASK      0xff000000
+
+#define DIO_PORT_CONF_DIR_MASK  0x01000000
+#define DIO_PORT_CONF_DIR_IN    (0x00000000 | DIO_PORT_CONF_SET_DIR)
+#define DIO_PORT_CONF_DIR_OUT   (0x01000000 | DIO_PORT_CONF_SET_DIR)
+
+#define DIO_PORT_CONF_INIT_MASK 0x02000000
+#define DIO_PORT_CONF_INIT_LOW  0x00000000
+#define DIO_PORT_CONF_INIT_HIGH 0x02000000
+
+#define DIO_PORT_CONF_OD_MASK   0x04000000
+#define DIO_PORT_CONF_OD_OFF    0x00000000
+#define DIO_PORT_CONF_OD_ON     0x04000000
+
+#define DIO_PORT_CONF_SET_DIR   0x08000000
+
+#define DIO_PORT_CONF_MODE_MASK 0x30000000
+#define DIO_PORT_CONF_MODE_PTYPE_MASK   0x10000000
+#define DIO_PORT_CONF_MODE_PEN_MASK     0x20000000
+#define DIO_PORT_CONF_MODE_PU   0x10000000      // Pull-up
+#define DIO_PORT_CONF_MODE_PD   0x00000000      // Pull-down
+#define DIO_PORT_CONF_MODE_PEN  0x00000000      // Pull resistor enable
+#define DIO_PORT_CONF_MODE_PDIS 0x20000000      // Pull resistor disable
+
+#define DIO_PORT_CONF_FNC_MASK  0xc0000000
+#define DIO_PORT_CONF_FNC_GPIO  0x00000000
+#define DIO_PORT_CONF_FNC_0     0x00000000
+#define DIO_PORT_CONF_FNC_1     0x40000000
+#define DIO_PORT_CONF_FNC_2     0x80000000
+#define DIO_PORT_CONF_FNC_3     0xc0000000
+
+/* Port indexes to portmap */
+#define DIO_PORT_ID_DMM     0x0
+#define DIO_PORT_ID_GIOA    0x1
+#define DIO_PORT_ID_GIOB    0x2
+#define DIO_PORT_ID_HET1    0x3
+#define DIO_PORT_ID_HET2    0x4
+
+uint8_t dio_gpio_get_pin_cnt();
+
+dio_pin_map_element_t* dio_gpio_get_pin_map();
+
+/**
+ * Get port base assigned to port number
+ * @param[in]   port_num    Port number <0;4>
+ * @return Pointer to port registers
+ */
+gioPORT_t *dio_gpio_get_port_base(uint32_t port_num);
+
+/**
+ * Get port number assigned to pin in its descriptor
+ * @param[in]   pin descriptor
+ * @return  Index of port
+ */
+uint32_t dio_gpio_pin_get_port_num(uint32_t pin_dsc);
+
+/**
+ * Get port base from pin descriptor
+ * Combines two upper defined functions
+ * @param[in]   pin_dcs Pin descriptor
+ * @return      Pointer to port registers
+ */
+gioPORT_t *dio_gpio_pin_get_port_base(uint32_t pin_dsc);
+
+/**
+ *  Get pin descriptor assigned to pin name.
+ *  @param[in]  pin_name    Pointer to string - the name of the pin.
+ *  @param[in]  len         Length of the name, if terminated by '/0', then len=-1
+ *  @return Pin descriptor or NULL if not found
+ */
+uint32_t *dio_gpio_pin_get_dsc(const char *pin_name, int len);
+
+/**
+ * Get value from GPIO pin
+ * @param[in]   pin_dsc pin descriptor
+ * @return  value read from specified gpio pin
+ */
+uint32_t dio_gpio_pin_get_value(uint32_t pin_dsc);
+
+/**
+ * Set value to gpio pin
+ * @param[in]   pin_dsc pin descriptor
+ * @param[in]   value   value to be assigned to the pin
+ */
+void dio_gpio_pin_set_value(uint32_t pin_dsc, uint32_t value);
+
+/**
+ * Set pin direction to input
+ * @param[in] pin_dsc pin descriptor
+ * @return always 0
+ */
+int dio_gpio_pin_set_dir_in(uint32_t pin_dsc);
+
+/**
+ * Set pin direction to output
+ * @param[in] pin_dsc pin descriptor
+ * @return always 0
+ */
+int dio_gpio_pin_set_dir_out(uint32_t pin_dsc, uint32_t value);
+
+/**
+ * Get pin direction
+ * @param[in] pin_dsc pin descriptor
+ * @return 1 - output, 0 - input
+ */
+int dio_gpio_pin_get_dir(uint32_t pin_dsc);
+
+/**
+ * Set pin as pull down or pull up and pull resistor enabled or disabled.
+ * @param[in] pin_dsc Descriptor of the pin
+ * @param[in] Mode on which pin will be configured to.
+ *              PORT_CONF_MODE_PU - pull up
+ *              PORT_CONF_MODE_PD - pull down
+ *              must be | with
+ *              PORT_CONF_MODE_PEN - pull resistor enable
+ *              PORT_CONF_MODE_PDIS - pull resistor disable
+ * @return always 0
+ */
+uint32_t dio_gpio_pin_set_mode(uint32_t pin_dsc, uint32_t mode);
+
+/**
+ * Configure pin to be open drain or not
+ * @param[in] pin_dsc Descriptor of the pin
+ * @param[in] Mode on which pin will be configured to.
+ *              PORT_CONF_OD_OFF - open-drain disabled
+ *              PORT_CONF_OD_ON - open drain enabled
+ *
+ * @return always 0
+ */
+uint32_t dio_gpio_pin_set_od(uint32_t pin_dsc, uint32_t od);
+
+/**
+ * Configure pin
+ * @param[in] pin_dsc Descriptor of the pin
+ * @param[in] Mode on which pin will be configured to.
+ *              PORT_CONF_OD_OFF - open-drain disabled
+ *              PORT_CONF_OD_ON - open drain enabled
+ *
+ *              PORT_CONF_MODE_PU - pull up
+ *              PORT_CONF_MODE_PD - pull down
+ *
+ *              PORT_CONF_MODE_PEN - pull resistor enable
+ *              PORT_CONF_MODE_PDIS - pull resistor disable
+ *
+ *              PORT_CONF_DIR_IN - direction input
+ *              PORT_CONF_DIR_OUT - direction output
+ *
+ *              PORT_CONF_INIT_LOW - init value 0
+ *              PORT_CONF_INIT_HIGH - init value 1
+ *
+ *              PORT_CONF_FNC_GPIO - port function GPIO
+ *              PORT_CONF_FNC_FNCX - port alternate function X
+ *
+ * @return always 0
+ */
+uint32_t dio_gpio_pin_set_config(uint32_t pin_dsc, uint32_t conf);
+
+/**
+ * Do the initial pin configuration according values in pin descriptor
+ * @param[in]   pin_dsc pin descriptor
+ * @return always 0;
+ */
+uint32_t dio_gpio_pin_configure(uint32_t pin_dsc);
+
+/**
+ * Get values of all pins of given port.
+ * @param[in] config    Pointer to array of pin descriptors
+ * @param[in] num_val   Number of pins assigned to the port
+ * @param[out] values   Stored values of all pins of the port. 1st bit -> pin0, 2nd bit -> pin1...
+ * @return always 0
+ */
+uint32_t dio_gpio_port_get_val(uint32_t *config, uint32_t num_val, uint32_t *values);
+
+/**
+ * Set values to all pins of given port.
+ * @param[in] config    Pointer to array of pin descriptors
+ * @param[in] num_val   Number of pins assigned to the port
+ * @param[in] values    Stored values of all pins of the port. 1st bit -> pin0, 2nd bit -> pin1...
+ * @return always 0
+ */
+uint32_t dio_gpio_port_set_val(uint32_t *config, uint32_t num_val, const uint32_t *values);
+
+/**
+ *  Get port descriptor assigned to port name.
+ *  @param[in]  port_name   Pointer to string - the name of the port.
+ *  @param[in]  len         Length of the name, if terminated by '/0', then len=-1
+ *  @return Port descriptor or NULL if not found
+ */
+const dio_port_def_t *dio_port_get_map();
+
+/**
+ *  Get port descriptor assigned to port name.
+ *  @param[in]  port_name   Pointer to string - the name of the port.
+ *  @param[in]  len         Length of the name, if terminated by '/0', then len=-1
+ *  @return Port descriptor or NULL if not found
+ */
+dio_port_desc_t *dio_port_get_dsc(const char *port_name, int len);
+
+uint32_t dio_port_get_val_cnt(const dio_port_desc_t* port_desc);
+
+/**
+ * Transfer command through the spi
+ * @param[in] config    Address of the SPI
+ * @param[in] num_bytes Number of bytes to be trasfered
+ * @param[in] commands  SPI command to be sent
+ * @return spi response
+ */
+uint32_t dio_spi_port_transfer_command(uint32_t *config, uint32_t num_bytes, const uint32_t *commands);
+
+
+#endif /* __HAL_H */
index 4c72c25f83ea39468dffb14bd845d586b365de3b..f075effc24a48287b13b474faccd2376ebdfa6d6 100644 (file)
@@ -11,7 +11,7 @@
 #ifndef __DRV_H
 #define __DRV_H
 
-#include "hal/hal.h"
+#include "drv/digital_io.h"
 
 #include "drv/adc.h"
 #include "drv/sci.h"
index a74a027e83c4e9e422321582d9ecb7ee132f5991..00f8809b9abaea06806f64c516d9529ed597d637 100644 (file)
@@ -12,7 +12,7 @@
 #ifndef __DRV_MOUT_H
 #define __DRV_MOUT_H
 
-#include "hal/hal.h"
+#include "drv/digital_io.h"
 
 // FIXME Document.
 int8_t drv_mout_set(uint8_t pin, uint8_t val);
diff --git a/rpp/include/hal/_rm48_hdk/.gitattributes b/rpp/include/hal/_rm48_hdk/.gitattributes
deleted file mode 100644 (file)
index 463133b..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-/gpio_def.h    eaton
-/port_def.h    eaton
diff --git a/rpp/include/hal/_rm48_hdk/gpio_def.h b/rpp/include/hal/_rm48_hdk/gpio_def.h
deleted file mode 100644 (file)
index 60f1dc8..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-/* Copyright (C) 2013-2015 Czech Technical University in Prague
- * Authors:
- *     - Michal Horn <hornmich@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- */
-
-#ifndef HAL_GPIO_RM48_DEF_H_
-#define HAL_GPIO_RM48_DEF_H_
-
-#include "hal/hal.h"
-
-
-#ifndef PORT_SHIFT
-#define PORT_SHIFT          5
-#endif
-#ifndef PORT_PIN
-#define PORT_PIN(p,n,conf)  (((p)<<PORT_SHIFT) | (n) | (conf))
-#define PORT_CONF_MASK      0xff000000
-#endif
-
-#define PORT_CONF_DIR_MASK  0x01000000
-#define PORT_CONF_DIR_IN    (0x00000000 | PORT_CONF_SET_DIR)
-#define PORT_CONF_DIR_OUT   (0x01000000 | PORT_CONF_SET_DIR)
-
-#define PORT_CONF_INIT_MASK 0x02000000
-#define PORT_CONF_INIT_LOW  0x00000000
-#define PORT_CONF_INIT_HIGH 0x02000000
-
-#define PORT_CONF_OD_MASK   0x04000000
-#define PORT_CONF_OD_OFF    0x00000000
-#define PORT_CONF_OD_ON     0x04000000
-
-#define PORT_CONF_SET_DIR   0x08000000
-
-#define PORT_CONF_MODE_MASK 0x30000000
-#define PORT_CONF_MODE_PTYPE_MASK   0x10000000
-#define PORT_CONF_MODE_PEN_MASK     0x20000000
-#define PORT_CONF_MODE_PU   0x10000000      // Pull-up
-#define PORT_CONF_MODE_PD   0x00000000      // Pull-down
-#define PORT_CONF_MODE_PEN  0x00000000      // Pull resistor enable
-#define PORT_CONF_MODE_PDIS 0x20000000      // Pull resistor disable
-
-#define PORT_CONF_FNC_MASK  0xc0000000
-#define PORT_CONF_FNC_GPIO  0x00000000
-#define PORT_CONF_FNC_0     0x00000000
-#define PORT_CONF_FNC_1     0x40000000
-#define PORT_CONF_FNC_2     0x80000000
-#define PORT_CONF_FNC_3     0xc0000000
-
-#define PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_HIGH|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PU|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON       PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_ON
-#define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODON      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_ON
-#define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF     PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_OUT_LO_PU_PDIS_ODOFF     PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PU|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_IN_HI_PU_PEN_ODON        PORT_CONF_FNC_GPIO|PORT_CONF_INIT_HIGH|PORT_CONF_DIR_IN|PORT_CONF_MODE_PU|PORT_CONF_MODE_PEN|PORT_CONF_OD_ON
-#define PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON       PORT_CONF_FNC_GPIO|PORT_CONF_INIT_HIGH|PORT_CONF_DIR_IN|PORT_CONF_MODE_PU|PORT_CONF_MODE_PDIS|PORT_CONF_OD_ON
-#define PORT_CONF_GPIO_IN_LO_PD_PDIS_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_IN|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF       PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_IN|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_IN_LO_PU_PDIS_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_IN|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
-
-typedef struct pin_map_element {
-       const char *pin_name;          // Pin name
-       uint32_t pin_desc;              // Pin descriptor assigned to the pin name
-} pin_map_element_t;
-
-#define MAX_PIN_CNT     46
-#define MAX_PORT_CNT    5
-/* Port indexes to portmap */
-#define PORT_ID_DMM     0x0
-#define PORT_ID_GIOA    0x1
-#define PORT_ID_GIOB    0x2
-#define PORT_ID_HET1    0x3
-#define PORT_ID_HET2    0x4
-/* Pin names */
-#define PIN_NAME_GIOA0      "GIOA0"
-#define PIN_NAME_GIOA1      "GIOA1"
-#define PIN_NAME_GIOA2      "GIOA2"
-#define PIN_NAME_GIOA3      "GIOA3"
-#define PIN_NAME_GIOA4      "GIOA4"
-#define PIN_NAME_GIOA5      "GIOA5"
-#define PIN_NAME_GIOA6      "GIOA6"
-#define PIN_NAME_GIOA7      "GIOA7"
-
-#define PIN_NAME_GIOB0      "GIOB0"
-#define PIN_NAME_GIOB1      "GIOB1"
-#define PIN_NAME_GIOB2      "GIOB2"
-#define PIN_NAME_GIOB3      "GIOB3"
-#define PIN_NAME_GIOB4      "GIOB4"
-#define PIN_NAME_GIOB5      "GIOB5"
-#define PIN_NAME_GIOB6      "GIOB6"
-#define PIN_NAME_GIOB7      "GIOB7"
-
-#define PIN_NAME_NHET1_0      "NHET10"
-#define PIN_NAME_NHET1_1      "NHET11"
-#define PIN_NAME_NHET1_2      "NHET12"
-#define PIN_NAME_NHET1_3      "NHET13"
-#define PIN_NAME_NHET1_4      "NHET14"
-#define PIN_NAME_NHET1_5      "NHET15"
-#define PIN_NAME_NHET1_6      "NHET16"
-#define PIN_NAME_NHET1_7      "NHET17"
-#define PIN_NAME_NHET1_8      "NHET18"
-#define PIN_NAME_NHET1_9      "NHET19"
-#define PIN_NAME_NHET1_10     "NHET110"
-#define PIN_NAME_NHET1_11     "NHET111"
-#define PIN_NAME_NHET1_12     "NHET112"
-#define PIN_NAME_NHET1_13     "NHET113"
-#define PIN_NAME_NHET1_14     "NHET114"
-#define PIN_NAME_NHET1_15     "NHET115"
-#define PIN_NAME_NHET1_16     "NHET116"
-#define PIN_NAME_NHET1_17     "NHET117"
-#define PIN_NAME_NHET1_18     "NHET118"
-#define PIN_NAME_NHET1_19     "NHET119"
-#define PIN_NAME_NHET1_20     "NHET120"
-#define PIN_NAME_NHET1_21     "NHET121"
-#define PIN_NAME_NHET1_22     "NHET122"
-#define PIN_NAME_NHET1_23     "NHET123"
-#define PIN_NAME_NHET1_24     "NHET124"
-#define PIN_NAME_NHET1_25     "NHET125"
-#define PIN_NAME_NHET1_26     "NHET126"
-#define PIN_NAME_NHET1_27     "NHET127"
-#define PIN_NAME_NHET1_28     "NHET128"
-#define PIN_NAME_NHET1_29     "NHET129"
-#define PIN_NAME_NHET1_30     "NHET130"
-#define PIN_NAME_NHET1_31     "NHET131"
-
-#define PIN_NAME_UNUSED       "unused"
-
-/* Pins descriptors */
-#define PIN_DSC_GIOA0     PORT_PIN(PORT_ID_GIOA, 0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA1     PORT_PIN(PORT_ID_GIOA, 1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA2     PORT_PIN(PORT_ID_GIOA, 2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA3     PORT_PIN(PORT_ID_GIOA, 3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA4     PORT_PIN(PORT_ID_GIOA, 4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA5     PORT_PIN(PORT_ID_GIOA, 5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA6     PORT_PIN(PORT_ID_GIOA, 6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA7     PORT_PIN(PORT_ID_GIOA, 7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-
-#define PIN_DSC_GIOB0     PORT_PIN(PORT_ID_GIOB, 0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB1     PORT_PIN(PORT_ID_GIOB, 1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB2     PORT_PIN(PORT_ID_GIOB, 2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB3     PORT_PIN(PORT_ID_GIOB, 3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB4     PORT_PIN(PORT_ID_GIOB, 4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB5     PORT_PIN(PORT_ID_GIOB, 5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB6     PORT_PIN(PORT_ID_GIOB, 6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB7     PORT_PIN(PORT_ID_GIOB, 7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-
-#define PIN_DSC_NHET1_0     PORT_PIN(PORT_ID_HET1,  0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_1     PORT_PIN(PORT_ID_HET1,  1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_2     PORT_PIN(PORT_ID_HET1,  2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_3     PORT_PIN(PORT_ID_HET1,  3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_4     PORT_PIN(PORT_ID_HET1,  4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_5     PORT_PIN(PORT_ID_HET1,  5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_6     PORT_PIN(PORT_ID_HET1,  6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_7     PORT_PIN(PORT_ID_HET1,  7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_8     PORT_PIN(PORT_ID_HET1,  8, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_9     PORT_PIN(PORT_ID_HET1,  9, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_10    PORT_PIN(PORT_ID_HET1, 10, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_11    PORT_PIN(PORT_ID_HET1, 11, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_12    PORT_PIN(PORT_ID_HET1, 12, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_13    PORT_PIN(PORT_ID_HET1, 13, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_14    PORT_PIN(PORT_ID_HET1, 14, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_15    PORT_PIN(PORT_ID_HET1, 15, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_16    PORT_PIN(PORT_ID_HET1, 16, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_17    PORT_PIN(PORT_ID_HET1, 17, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_18    PORT_PIN(PORT_ID_HET1, 18, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_19    PORT_PIN(PORT_ID_HET1, 19, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_20    PORT_PIN(PORT_ID_HET1, 20, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_21    PORT_PIN(PORT_ID_HET1, 21, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_22    PORT_PIN(PORT_ID_HET1, 22, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_23    PORT_PIN(PORT_ID_HET1, 23, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_24    PORT_PIN(PORT_ID_HET1, 24, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_25    PORT_PIN(PORT_ID_HET1, 25, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_26    PORT_PIN(PORT_ID_HET1, 26, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_27    PORT_PIN(PORT_ID_HET1, 27, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_28    PORT_PIN(PORT_ID_HET1, 28, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_29    PORT_PIN(PORT_ID_HET1, 29, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_30    PORT_PIN(PORT_ID_HET1, 30, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_31    PORT_PIN(PORT_ID_HET1, 31, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-
-#endif /* HAL_GPIO_RM48_DEF_H_ */
diff --git a/rpp/include/hal/_rm48_hdk/port_def.h b/rpp/include/hal/_rm48_hdk/port_def.h
deleted file mode 100644 (file)
index 5d87b6b..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Copyright (C) 2013-2014 Czech Technical University in Prague
- * Authors:
- *     - Michal Horn <hornmich@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- */
-
-#ifndef PORT_DEF_H_
-#define PORT_DEF_H_
-
-#include "types.h"
-
-enum port_interface_type {
-       ADC = 1,
-       SPI,
-       GPIO
-};
-/**
- * @brief Port descriptor
- *
- * The structure describes the port. Port here means set of IO pins on the board.
- * The API is designed to provide an interface for setting and reading from ports connected to the MCU by SPI, GPIO or ADC.
- */
-typedef struct port_desc_st {
-       uint32_t *config;       /**< Configuration of the port. An array of values, which meaning differs for the interface type:
-                                        for SPI: address, chip-select
-                                        for GPIO: descriptors for pins (defined in gpio_rm48_def.h)
-                                        for ADC: ADC base address, ADC group number, Peripheral type (HOUTIFBK or ADC)
-                                */
-       uint32_t numValues;     /**< Size of the data to be read from or written on the port. Meaning differs for the interface type:
-                                       for SPI: size of the command in bytes
-                                       for GPIO: number of pins on the port
-                                       for ADC: number of channels to be read from ADC.
-                                */
-       enum port_interface_type interfaceType;     /**< Type of the interface to which the port or its controller is connected.
-                                           Can be SPI, ADC or GPIO
-                                    */
-       uint32_t (*port_getfnc_ptr)(uint32_t *config, uint32_t num_val, uint32_t *values);   /**< Pointer to a getter function. If it is NULL, than port is write only.
-                                                                                                    All SPI ports are write only, because command has to be sent to obtain actual response.
-                                                                                                    It is allowed to read values from an output port.
-                                                                                             */
-       uint32_t (*port_setfnc_ptr)(uint32_t *config, uint32_t num_val, const uint32_t *values); /**< Pointer to a setter function. If it is NULL, than port is read only.
-                                                                                                    All ADC ports are read only.
-                                                                                                    It is not allowed to write values on an input port.
-                                                                                                 */
-} port_desc_t;
-
-/**
- * Maps port descriptor to the port name
- */
-typedef struct port_def_st {
-       char *name;
-       port_desc_t *desc;
-} port_def_t;
-
-#define PORT_CNT    4
-
-#define PORT_NAME_GIOA          "GIOA"
-#define PORT_NAME_GIOB          "GIOB"
-#define PORT_NAME_NHET1         "NHET1"
-#define PORT_NAME_ADC           "ADC"
-
-#endif /* PORT_DEF_H_ */
diff --git a/rpp/include/hal/_tms570_hdk/.gitattributes b/rpp/include/hal/_tms570_hdk/.gitattributes
deleted file mode 100644 (file)
index 463133b..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-/gpio_def.h    eaton
-/port_def.h    eaton
diff --git a/rpp/include/hal/_tms570_hdk/gpio_def.h b/rpp/include/hal/_tms570_hdk/gpio_def.h
deleted file mode 100644 (file)
index be12240..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-/* Copyright (C) 2013-2015 Czech Technical University in Prague
- * Authors:
- *     - Michal Horn <hornmich@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- */
-
-#ifndef HAL_GPIO_DEF_H_
-#define HAL_GPIO_DEF_H_
-
-#include "hal/hal.h"
-
-
-#ifndef PORT_SHIFT
-#define PORT_SHIFT          5
-#endif
-#ifndef PORT_PIN
-#define PORT_PIN(p,n,conf)  (((p)<<PORT_SHIFT) | (n) | (conf))
-#define PORT_CONF_MASK      0xff000000
-#endif
-
-#define PORT_CONF_DIR_MASK  0x01000000
-#define PORT_CONF_DIR_IN    (0x00000000 | PORT_CONF_SET_DIR)
-#define PORT_CONF_DIR_OUT   (0x01000000 | PORT_CONF_SET_DIR)
-
-#define PORT_CONF_INIT_MASK 0x02000000
-#define PORT_CONF_INIT_LOW  0x00000000
-#define PORT_CONF_INIT_HIGH 0x02000000
-
-#define PORT_CONF_OD_MASK   0x04000000
-#define PORT_CONF_OD_OFF    0x00000000
-#define PORT_CONF_OD_ON     0x04000000
-
-#define PORT_CONF_SET_DIR   0x08000000
-
-#define PORT_CONF_MODE_MASK 0x30000000
-#define PORT_CONF_MODE_PTYPE_MASK   0x10000000
-#define PORT_CONF_MODE_PEN_MASK     0x20000000
-#define PORT_CONF_MODE_PU   0x10000000      // Pull-up
-#define PORT_CONF_MODE_PD   0x00000000      // Pull-down
-#define PORT_CONF_MODE_PEN  0x00000000      // Pull resistor enable
-#define PORT_CONF_MODE_PDIS 0x20000000      // Pull resistor disable
-
-#define PORT_CONF_FNC_MASK  0xc0000000
-#define PORT_CONF_FNC_GPIO  0x00000000
-#define PORT_CONF_FNC_0     0x00000000
-#define PORT_CONF_FNC_1     0x40000000
-#define PORT_CONF_FNC_2     0x80000000
-#define PORT_CONF_FNC_3     0xc0000000
-
-#define PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_HIGH|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PU|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON       PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_ON
-#define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODON      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_ON
-#define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF     PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_OUT_LO_PU_PDIS_ODOFF     PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PU|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_IN_HI_PU_PEN_ODON        PORT_CONF_FNC_GPIO|PORT_CONF_INIT_HIGH|PORT_CONF_DIR_IN|PORT_CONF_MODE_PU|PORT_CONF_MODE_PEN|PORT_CONF_OD_ON
-#define PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON       PORT_CONF_FNC_GPIO|PORT_CONF_INIT_HIGH|PORT_CONF_DIR_IN|PORT_CONF_MODE_PU|PORT_CONF_MODE_PDIS|PORT_CONF_OD_ON
-#define PORT_CONF_GPIO_IN_LO_PD_PDIS_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_IN|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF       PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_IN|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_IN_LO_PU_PDIS_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_IN|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
-
-typedef struct pin_map_element {
-       const char *pin_name;          // Pin name
-       uint32_t pin_desc;              // Pin descriptor assigned to the pin name
-} pin_map_element_t;
-
-#define MAX_PIN_CNT     46
-#define MAX_PORT_CNT    5
-/* Port indexes to portmap */
-#define PORT_ID_DMM     0x0
-#define PORT_ID_GIOA    0x1
-#define PORT_ID_GIOB    0x2
-#define PORT_ID_HET1    0x3
-#define PORT_ID_HET2    0x4
-/* Pin names */
-#define PIN_NAME_GIOA0      "GIOA0"
-#define PIN_NAME_GIOA1      "GIOA1"
-#define PIN_NAME_GIOA2      "GIOA2"
-#define PIN_NAME_GIOA3      "GIOA3"
-#define PIN_NAME_GIOA4      "GIOA4"
-#define PIN_NAME_GIOA5      "GIOA5"
-#define PIN_NAME_GIOA6      "GIOA6"
-#define PIN_NAME_GIOA7      "GIOA7"
-
-#define PIN_NAME_GIOB0      "GIOB0"
-#define PIN_NAME_GIOB1      "GIOB1"
-#define PIN_NAME_GIOB2      "GIOB2"
-#define PIN_NAME_GIOB3      "GIOB3"
-#define PIN_NAME_GIOB4      "GIOB4"
-#define PIN_NAME_GIOB5      "GIOB5"
-#define PIN_NAME_GIOB6      "GIOB6"
-#define PIN_NAME_GIOB7      "GIOB7"
-
-#define PIN_NAME_NHET1_0      "NHET10"
-#define PIN_NAME_NHET1_1      "NHET11"
-#define PIN_NAME_NHET1_2      "NHET12"
-#define PIN_NAME_NHET1_3      "NHET13"
-#define PIN_NAME_NHET1_4      "NHET14"
-#define PIN_NAME_NHET1_5      "NHET15"
-#define PIN_NAME_NHET1_6      "NHET16"
-#define PIN_NAME_NHET1_7      "NHET17"
-#define PIN_NAME_NHET1_8      "NHET18"
-#define PIN_NAME_NHET1_9      "NHET19"
-#define PIN_NAME_NHET1_10     "NHET110"
-#define PIN_NAME_NHET1_11     "NHET111"
-#define PIN_NAME_NHET1_12     "NHET112"
-#define PIN_NAME_NHET1_13     "NHET113"
-#define PIN_NAME_NHET1_14     "NHET114"
-#define PIN_NAME_NHET1_15     "NHET115"
-#define PIN_NAME_NHET1_16     "NHET116"
-#define PIN_NAME_NHET1_17     "NHET117"
-#define PIN_NAME_NHET1_18     "NHET118"
-#define PIN_NAME_NHET1_19     "NHET119"
-#define PIN_NAME_NHET1_20     "NHET120"
-#define PIN_NAME_NHET1_21     "NHET121"
-#define PIN_NAME_NHET1_22     "NHET122"
-#define PIN_NAME_NHET1_23     "NHET123"
-#define PIN_NAME_NHET1_24     "NHET124"
-#define PIN_NAME_NHET1_25     "NHET125"
-#define PIN_NAME_NHET1_26     "NHET126"
-#define PIN_NAME_NHET1_27     "NHET127"
-#define PIN_NAME_NHET1_28     "NHET128"
-#define PIN_NAME_NHET1_29     "NHET129"
-#define PIN_NAME_NHET1_30     "NHET130"
-#define PIN_NAME_NHET1_31     "NHET131"
-
-#define PIN_NAME_UNUSED       "unused"
-
-/* Pins descriptors */
-#define PIN_DSC_GIOA0     PORT_PIN(PORT_ID_GIOA, 0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA1     PORT_PIN(PORT_ID_GIOA, 1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA2     PORT_PIN(PORT_ID_GIOA, 2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA3     PORT_PIN(PORT_ID_GIOA, 3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA4     PORT_PIN(PORT_ID_GIOA, 4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA5     PORT_PIN(PORT_ID_GIOA, 5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA6     PORT_PIN(PORT_ID_GIOA, 6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA7     PORT_PIN(PORT_ID_GIOA, 7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-
-#define PIN_DSC_GIOB0     PORT_PIN(PORT_ID_GIOB, 0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB1     PORT_PIN(PORT_ID_GIOB, 1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB2     PORT_PIN(PORT_ID_GIOB, 2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB3     PORT_PIN(PORT_ID_GIOB, 3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB4     PORT_PIN(PORT_ID_GIOB, 4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB5     PORT_PIN(PORT_ID_GIOB, 5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB6     PORT_PIN(PORT_ID_GIOB, 6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB7     PORT_PIN(PORT_ID_GIOB, 7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-
-#define PIN_DSC_NHET1_0     PORT_PIN(PORT_ID_HET1,  0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_1     PORT_PIN(PORT_ID_HET1,  1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_2     PORT_PIN(PORT_ID_HET1,  2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_3     PORT_PIN(PORT_ID_HET1,  3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_4     PORT_PIN(PORT_ID_HET1,  4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_5     PORT_PIN(PORT_ID_HET1,  5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_6     PORT_PIN(PORT_ID_HET1,  6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_7     PORT_PIN(PORT_ID_HET1,  7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_8     PORT_PIN(PORT_ID_HET1,  8, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_9     PORT_PIN(PORT_ID_HET1,  9, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_10    PORT_PIN(PORT_ID_HET1, 10, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_11    PORT_PIN(PORT_ID_HET1, 11, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_12    PORT_PIN(PORT_ID_HET1, 12, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_13    PORT_PIN(PORT_ID_HET1, 13, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_14    PORT_PIN(PORT_ID_HET1, 14, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_15    PORT_PIN(PORT_ID_HET1, 15, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_16    PORT_PIN(PORT_ID_HET1, 16, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_17    PORT_PIN(PORT_ID_HET1, 17, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_18    PORT_PIN(PORT_ID_HET1, 18, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_19    PORT_PIN(PORT_ID_HET1, 19, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_20    PORT_PIN(PORT_ID_HET1, 20, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_21    PORT_PIN(PORT_ID_HET1, 21, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_22    PORT_PIN(PORT_ID_HET1, 22, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_23    PORT_PIN(PORT_ID_HET1, 23, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_24    PORT_PIN(PORT_ID_HET1, 24, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_25    PORT_PIN(PORT_ID_HET1, 25, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_26    PORT_PIN(PORT_ID_HET1, 26, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_27    PORT_PIN(PORT_ID_HET1, 27, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_28    PORT_PIN(PORT_ID_HET1, 28, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_29    PORT_PIN(PORT_ID_HET1, 29, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_30    PORT_PIN(PORT_ID_HET1, 30, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_31    PORT_PIN(PORT_ID_HET1, 31, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-
-#endif /* HAL_GPIO_DEF_H_ */
diff --git a/rpp/include/hal/_tms570_hdk/port_def.h b/rpp/include/hal/_tms570_hdk/port_def.h
deleted file mode 100644 (file)
index 32f94c1..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright (C) 2013-2014 Czech Technical University in Prague
- * Authors:
- *     - Michal Horn <hornmich@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- */
-
-#ifndef PORT_DEF_H_
-#define PORT_DEF_H_
-
-#include "types.h"
-
-enum port_interface_type {
-       ADC = 1,
-       SPI,
-       GPIO
-};
-
-/**
- * @brief Port descriptor
- *
- * The structure describes the port. Port here means set of IO pins on the board.
- * The API is designed to provide an interface for setting and reading from ports connected to the MCU by SPI, GPIO or ADC.
- */
-typedef struct port_desc_st {
-       uint32_t *config;       /**< Configuration of the port. An array of values, which meaning differs for the interface type:
-                                        for SPI: address, chip-select
-                                        for GPIO: descriptors for pins (defined in gpio_rm48_def.h)
-                                        for ADC: ADC base address, ADC group number, Peripheral type (HOUTIFBK or ADC)
-                                */
-       uint32_t numValues;     /**< Size of the data to be read from or written on the port. Meaning differs for the interface type:
-                                       for SPI: size of the command in bytes
-                                       for GPIO: number of pins on the port
-                                       for ADC: number of channels to be read from ADC.
-                                */
-       enum port_interface_type  interfaceType;     /**< Type of the interface to which the port or its controller is connected.
-                                           Can be SPI, ADC or GPIO
-                                    */
-       uint32_t (*port_getfnc_ptr)(uint32_t *config, uint32_t num_val, uint32_t *values);   /**< Pointer to a getter function. If it is NULL, than port is write only.
-                                                                                                    All SPI ports are write only, because command has to be sent to obtain actual response.
-                                                                                                    It is allowed to read values from an output port.
-                                                                                             */
-       uint32_t (*port_setfnc_ptr)(uint32_t *config, uint32_t num_val, const uint32_t *values); /**< Pointer to a setter function. If it is NULL, than port is read only.
-                                                                                                    All ADC ports are read only.
-                                                                                                    It is not allowed to write values on an input port.
-                                                                                                 */
-} port_desc_t;
-
-/**
- * Maps port descriptor to the port name
- */
-typedef struct port_def_st {
-       char *name;
-       port_desc_t *desc;
-} port_def_t;
-
-#define PORT_CNT    4
-
-#define PORT_NAME_GIOA          "GIOA"
-#define PORT_NAME_GIOB          "GIOB"
-#define PORT_NAME_NHET1         "NHET1"
-#define PORT_NAME_ADC           "ADC"
-
-#endif /* PORT_DEF_H_ */
diff --git a/rpp/include/hal/_tms570_hydctr/.gitattributes b/rpp/include/hal/_tms570_hydctr/.gitattributes
deleted file mode 100644 (file)
index 463133b..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-/gpio_def.h    eaton
-/port_def.h    eaton
diff --git a/rpp/include/hal/_tms570_hydctr/gpio_def.h b/rpp/include/hal/_tms570_hydctr/gpio_def.h
deleted file mode 100644 (file)
index 663fc01..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-/* Copyright (C) 2013-2015 Czech Technical University in Prague
- * Authors:
- *     - Michal Horn <hornmich@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- */
-
-#ifndef HAL_GPIO_DEF_H_
-#define HAL_GPIO_DEF_H_
-
-#include "hal/hal.h"
-
-
-#ifndef PORT_SHIFT
-#define PORT_SHIFT          5
-#endif
-#ifndef PORT_PIN
-#define PORT_PIN(p,n,conf)  (((p)<<PORT_SHIFT) | (n) | (conf))
-#define PORT_CONF_MASK      0xff000000
-#endif
-
-#define PORT_CONF_DIR_MASK  0x01000000
-#define PORT_CONF_DIR_IN    (0x00000000 | PORT_CONF_SET_DIR)
-#define PORT_CONF_DIR_OUT   (0x01000000 | PORT_CONF_SET_DIR)
-
-#define PORT_CONF_INIT_MASK 0x02000000
-#define PORT_CONF_INIT_LOW  0x00000000
-#define PORT_CONF_INIT_HIGH 0x02000000
-
-#define PORT_CONF_OD_MASK   0x04000000
-#define PORT_CONF_OD_OFF    0x00000000
-#define PORT_CONF_OD_ON     0x04000000
-
-#define PORT_CONF_SET_DIR   0x08000000
-
-#define PORT_CONF_MODE_MASK 0x30000000
-#define PORT_CONF_MODE_PTYPE_MASK   0x10000000
-#define PORT_CONF_MODE_PEN_MASK     0x20000000
-#define PORT_CONF_MODE_PU   0x10000000      // Pull-up
-#define PORT_CONF_MODE_PD   0x00000000      // Pull-down
-#define PORT_CONF_MODE_PEN  0x00000000      // Pull resistor enable
-#define PORT_CONF_MODE_PDIS 0x20000000      // Pull resistor disable
-
-#define PORT_CONF_FNC_MASK  0xc0000000
-#define PORT_CONF_FNC_GPIO  0x00000000
-#define PORT_CONF_FNC_0     0x00000000
-#define PORT_CONF_FNC_1     0x40000000
-#define PORT_CONF_FNC_2     0x80000000
-#define PORT_CONF_FNC_3     0xc0000000
-
-#define PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_HIGH|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PU|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON       PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_ON
-#define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODON      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_ON
-#define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF     PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_OUT_LO_PU_PDIS_ODOFF     PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PU|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_IN_HI_PU_PEN_ODON        PORT_CONF_FNC_GPIO|PORT_CONF_INIT_HIGH|PORT_CONF_DIR_IN|PORT_CONF_MODE_PU|PORT_CONF_MODE_PEN|PORT_CONF_OD_ON
-#define PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON       PORT_CONF_FNC_GPIO|PORT_CONF_INIT_HIGH|PORT_CONF_DIR_IN|PORT_CONF_MODE_PU|PORT_CONF_MODE_PDIS|PORT_CONF_OD_ON
-#define PORT_CONF_GPIO_IN_LO_PD_PDIS_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_IN|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF       PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_IN|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_IN_LO_PU_PDIS_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_IN|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
-
-typedef struct pin_map_element {
-       const char *pin_name;          // Pin name
-       uint32_t pin_desc;              // Pin descriptor assigned to the pin name
-} pin_map_element_t;
-
-#define MAX_PIN_CNT     46
-#define MAX_PORT_CNT    5
-/* Port indexes to portmap */
-#define PORT_ID_GIOA    0x1
-#define PORT_ID_GIOB    0x2
-#define PORT_ID_HET1    0x3
-#define PORT_ID_HET2    0x4
-/* Pin names */
-#define PIN_NAME_GIOA0      "GIOA0"
-#define PIN_NAME_GIOA1      "GIOA1"
-#define PIN_NAME_GIOA2      "GIOA2"
-#define PIN_NAME_GIOA3      "GIOA3"
-#define PIN_NAME_GIOA4      "GIOA4"
-#define PIN_NAME_GIOA5      "GIOA5"
-#define PIN_NAME_GIOA6      "GIOA6"
-#define PIN_NAME_GIOA7      "GIOA7"
-
-#define PIN_NAME_GIOB0      "GIOB0"
-#define PIN_NAME_GIOB1      "GIOB1"
-#define PIN_NAME_GIOB2      "GIOB2"
-#define PIN_NAME_GIOB3      "GIOB3"
-#define PIN_NAME_GIOB4      "GIOB4"
-#define PIN_NAME_GIOB5      "GIOB5"
-#define PIN_NAME_GIOB6      "GIOB6"
-#define PIN_NAME_GIOB7      "GIOB7"
-
-#define PIN_NAME_NHET1_0      "NHET10"
-#define PIN_NAME_NHET1_1      "NHET11"
-#define PIN_NAME_NHET1_2      "NHET12"
-#define PIN_NAME_NHET1_3      "NHET13"
-#define PIN_NAME_NHET1_4      "NHET14"
-#define PIN_NAME_NHET1_5      "NHET15"
-#define PIN_NAME_NHET1_6      "NHET16"
-#define PIN_NAME_NHET1_7      "NHET17"
-#define PIN_NAME_NHET1_8      "NHET18"
-#define PIN_NAME_NHET1_9      "NHET19"
-#define PIN_NAME_NHET1_10     "NHET110"
-#define PIN_NAME_NHET1_11     "NHET111"
-#define PIN_NAME_NHET1_12     "NHET112"
-#define PIN_NAME_NHET1_13     "NHET113"
-#define PIN_NAME_NHET1_14     "NHET114"
-#define PIN_NAME_NHET1_15     "NHET115"
-#define PIN_NAME_NHET1_16     "NHET116"
-#define PIN_NAME_NHET1_17     "NHET117"
-#define PIN_NAME_NHET1_18     "NHET118"
-#define PIN_NAME_NHET1_19     "NHET119"
-#define PIN_NAME_NHET1_20     "NHET120"
-#define PIN_NAME_NHET1_21     "NHET121"
-#define PIN_NAME_NHET1_22     "NHET122"
-#define PIN_NAME_NHET1_23     "NHET123"
-#define PIN_NAME_NHET1_24     "NHET124"
-#define PIN_NAME_NHET1_25     "NHET125"
-#define PIN_NAME_NHET1_26     "NHET126"
-#define PIN_NAME_NHET1_27     "NHET127"
-#define PIN_NAME_NHET1_28     "NHET128"
-#define PIN_NAME_NHET1_29     "NHET129"
-#define PIN_NAME_NHET1_30     "NHET130"
-#define PIN_NAME_NHET1_31     "NHET131"
-
-#define PIN_NAME_UNUSED       "unused"
-
-/* Pins descriptors */
-#define PIN_DSC_GIOA0     PORT_PIN(PORT_ID_GIOA, 0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA1     PORT_PIN(PORT_ID_GIOA, 1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA2     PORT_PIN(PORT_ID_GIOA, 2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA3     PORT_PIN(PORT_ID_GIOA, 3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA4     PORT_PIN(PORT_ID_GIOA, 4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA5     PORT_PIN(PORT_ID_GIOA, 5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA6     PORT_PIN(PORT_ID_GIOA, 6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOA7     PORT_PIN(PORT_ID_GIOA, 7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-
-#define PIN_DSC_GIOB0     PORT_PIN(PORT_ID_GIOB, 0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB1     PORT_PIN(PORT_ID_GIOB, 1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB2     PORT_PIN(PORT_ID_GIOB, 2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB3     PORT_PIN(PORT_ID_GIOB, 3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB4     PORT_PIN(PORT_ID_GIOB, 4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB5     PORT_PIN(PORT_ID_GIOB, 5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB6     PORT_PIN(PORT_ID_GIOB, 6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_GIOB7     PORT_PIN(PORT_ID_GIOB, 7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-
-#define PIN_DSC_NHET1_0     PORT_PIN(PORT_ID_HET1,  0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_1     PORT_PIN(PORT_ID_HET1,  1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_2     PORT_PIN(PORT_ID_HET1,  2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_3     PORT_PIN(PORT_ID_HET1,  3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_4     PORT_PIN(PORT_ID_HET1,  4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_5     PORT_PIN(PORT_ID_HET1,  5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_6     PORT_PIN(PORT_ID_HET1,  6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_7     PORT_PIN(PORT_ID_HET1,  7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_8     PORT_PIN(PORT_ID_HET1,  8, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_9     PORT_PIN(PORT_ID_HET1,  9, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_10    PORT_PIN(PORT_ID_HET1, 10, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_11    PORT_PIN(PORT_ID_HET1, 11, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_12    PORT_PIN(PORT_ID_HET1, 12, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_13    PORT_PIN(PORT_ID_HET1, 13, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_14    PORT_PIN(PORT_ID_HET1, 14, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_15    PORT_PIN(PORT_ID_HET1, 15, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_16    PORT_PIN(PORT_ID_HET1, 16, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_17    PORT_PIN(PORT_ID_HET1, 17, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_18    PORT_PIN(PORT_ID_HET1, 18, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_19    PORT_PIN(PORT_ID_HET1, 19, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_20    PORT_PIN(PORT_ID_HET1, 20, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_21    PORT_PIN(PORT_ID_HET1, 21, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_22    PORT_PIN(PORT_ID_HET1, 22, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_23    PORT_PIN(PORT_ID_HET1, 23, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_24    PORT_PIN(PORT_ID_HET1, 24, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_25    PORT_PIN(PORT_ID_HET1, 25, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_26    PORT_PIN(PORT_ID_HET1, 26, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_27    PORT_PIN(PORT_ID_HET1, 27, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_28    PORT_PIN(PORT_ID_HET1, 28, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_29    PORT_PIN(PORT_ID_HET1, 29, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_30    PORT_PIN(PORT_ID_HET1, 30, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-#define PIN_DSC_NHET1_31    PORT_PIN(PORT_ID_HET1, 31, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
-
-#endif /* HAL_GPIO_DEF_H_ */
diff --git a/rpp/include/hal/_tms570_hydctr/port_def.h b/rpp/include/hal/_tms570_hydctr/port_def.h
deleted file mode 100644 (file)
index 7cb900f..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright (C) 2013-2014 Czech Technical University in Prague
- * Authors:
- *     - Michal Horn <hornmich@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- */
-
-#ifndef PORT_DEF_H_
-#define PORT_DEF_H_
-
-#include "types.h"
-
-enum port_interface_type {
-       ADC = 1,
-       SPI,
-       GPIO
-};
-
-/**
- * @brief Port descriptor
- *
- * The structure describes the port. Port here means set of IO pins on the board.
- * The API is designed to provide an interface for setting and reading from ports connected to the MCU by SPI, GPIO or ADC.
- */
-typedef struct port_desc_st {
-       uint32_t *config;       /**< Configuration of the port. An array of values, which meaning differs for the interface type:
-                                        for SPI: address, chip-select
-                                        for GPIO: descriptors for pins (defined in gpio_rm48_def.h)
-                                        for ADC: ADC base address, ADC group number, Peripheral type (HOUTIFBK or ADC)
-                                */
-       uint32_t numValues;     /**< Size of the data to be read from or written on the port. Meaning differs for the interface type:
-                                       for SPI: size of the command in bytes
-                                       for GPIO: number of pins on the port
-                                       for ADC: number of channels to be read from ADC.
-                                */
-       enum port_interface_type interfaceType;     /**< Type of the interface to which the port or its controller is connected.
-                                           Can be SPI, ADC or GPIO
-                                    */
-       uint32_t (*port_getfnc_ptr)(uint32_t *config, uint32_t num_val, uint32_t *values);   /**< Pointer to a getter function. If it is NULL, than port is write only.
-                                                                                                    All SPI ports are write only, because command has to be sent to obtain actual response.
-                                                                                                    It is allowed to read values from an output port.
-                                                                                             */
-       uint32_t (*port_setfnc_ptr)(uint32_t *config, uint32_t num_val, const uint32_t *values); /**< Pointer to a setter function. If it is NULL, than port is read only.
-                                                                                                    All ADC ports are read only.
-                                                                                                    It is not allowed to write values on an input port.
-                                                                                                 */
-} port_desc_t;
-
-/**
- * Maps port descriptor to the port name
- */
-typedef struct port_def_st {
-       char *name;
-       port_desc_t *desc;
-} port_def_t;
-
-#define PORT_CNT    4
-
-#define PORT_NAME_GIOA          "GIOA"
-#define PORT_NAME_GIOB          "GIOB"
-#define PORT_NAME_NHET1          "NHET1"
-#define PORT_NAME_ADC           "ADC"
-
-#endif /* PORT_DEF_H_ */
diff --git a/rpp/include/hal/_tms570_rpp/gpio_def.h b/rpp/include/hal/_tms570_rpp/gpio_def.h
deleted file mode 100644 (file)
index 21c52b0..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-/**
- *
- * @file hal_gpio_tms570_def.h
- *
- * @copyright Copyright (C) 2012-2013 Czech Technical University in Prague
- *
- * @author Michal Horn <hornmich@fel.cvut.cz>
- */
-
-#ifndef HAL_GPIO_TMS570_DEF_H_
-#define HAL_GPIO_TMS570_DEF_H_
-
-#include "hal/hal.h"
-
-
-#ifndef PORT_SHIFT
-#define PORT_SHIFT          5
-#endif
-#ifndef PORT_PIN
-#define PORT_PIN(p,n,conf)  (((p)<<PORT_SHIFT) | (n) | (conf))
-#define PORT_CONF_MASK      0xff000000
-#endif
-
-#define PORT_CONF_DIR_MASK  0x01000000
-#define PORT_CONF_DIR_IN    (0x00000000 | PORT_CONF_SET_DIR)
-#define PORT_CONF_DIR_OUT   (0x01000000 | PORT_CONF_SET_DIR)
-
-#define PORT_CONF_INIT_MASK 0x02000000
-#define PORT_CONF_INIT_LOW  0x00000000
-#define PORT_CONF_INIT_HIGH 0x02000000
-
-#define PORT_CONF_OD_MASK   0x04000000
-#define PORT_CONF_OD_OFF    0x00000000
-#define PORT_CONF_OD_ON     0x04000000
-
-#define PORT_CONF_SET_DIR   0x08000000
-
-#define PORT_CONF_MODE_MASK 0x30000000
-#define PORT_CONF_MODE_PTYPE_MASK   0x10000000
-#define PORT_CONF_MODE_PEN_MASK     0x20000000
-#define PORT_CONF_MODE_PU   0x10000000      // Pull-up
-#define PORT_CONF_MODE_PD   0x00000000      // Pull-down
-#define PORT_CONF_MODE_PEN  0x00000000      // Pull resistor enable
-#define PORT_CONF_MODE_PDIS 0x20000000      // Pull resistor disable
-
-#define PORT_CONF_FNC_MASK  0xc0000000
-#define PORT_CONF_FNC_GPIO  0x00000000
-#define PORT_CONF_FNC_0     0x00000000
-#define PORT_CONF_FNC_1     0x40000000
-#define PORT_CONF_FNC_2     0x80000000
-#define PORT_CONF_FNC_3     0xc0000000
-
-#define PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_HIGH|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON       PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_ON
-#define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODON      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_ON
-#define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF     PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_OUT_LO_PU_PDIS_ODOFF     PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_OUT|PORT_CONF_MODE_PU|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_IN_HI_PU_PEN_ODON        PORT_CONF_FNC_GPIO|PORT_CONF_INIT_HIGH|PORT_CONF_DIR_IN|PORT_CONF_MODE_PU|PORT_CONF_MODE_PEN|PORT_CONF_OD_ON
-#define PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON       PORT_CONF_FNC_GPIO|PORT_CONF_INIT_HIGH|PORT_CONF_DIR_IN|PORT_CONF_MODE_PU|PORT_CONF_MODE_PDIS|PORT_CONF_OD_ON
-#define PORT_CONF_GPIO_IN_LO_PD_PDIS_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_IN|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF       PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_IN|PORT_CONF_MODE_PD|PORT_CONF_MODE_PEN|PORT_CONF_OD_OFF
-#define PORT_CONF_GPIO_IN_LO_PU_PDIS_ODOFF      PORT_CONF_FNC_GPIO|PORT_CONF_INIT_LOW|PORT_CONF_DIR_IN|PORT_CONF_MODE_PD|PORT_CONF_MODE_PDIS|PORT_CONF_OD_OFF
-
-typedef struct pin_map_element {
-       const char *pin_name;          // Pin name
-       uint32_t pin_desc;              // Pin descriptor assigned to the pin name
-} pin_map_element_t;
-
-#define MAX_PIN_CNT     103
-#define MAX_PORT_CNT    5
-/* Begin and end indexes of each port group to pin map */
-#define PIN_MAP_DMM_BEGIN   0
-#define PIN_MAP_DMM_END     18
-#define PIN_MAP_GIOA_BEGIN  19
-#define PIN_MAP_GIOA_END    27
-#define PIN_MAP_GIOB_BEGIN  28
-#define PIN_MAP_GIOB_END    36
-#define PIN_MAP_HET1_BEGIN  37
-#define PIN_MAP_HET1_END    69
-#define PIN_MAP_HET2_BEGIN  70
-#define PIN_MAP_HET2_END    102
-/* Port indexes to portmap */
-#define PORT_ID_DMM     0x0
-#define PORT_ID_GIOA    0x1
-#define PORT_ID_GIOB    0x2
-#define PORT_ID_HET1    0x3
-#define PORT_ID_HET2    0x4
-/* Pin names */
-#define PIN_NAME_DIN8       "DIN8"
-#define PIN_NAME_DIN9       "DIN9"
-#define PIN_NAME_DIN10      "DIN10"
-#define PIN_NAME_DIN11      "DIN11"
-#define PIN_NAME_DIN12      "DIN12"
-#define PIN_NAME_DIN13      "DIN13"
-#define PIN_NAME_DIN14      "DIN14"
-#define PIN_NAME_DIN15      "DIN15"
-#define PIN_NAME_DININT     "DININT"
-#define PIN_NAME_HOUT1IN    "HOUT1IN"
-#define PIN_NAME_HOUT2IN    "HOUT2IN"
-#define PIN_NAME_HOUT3IN    "HOUT3IN"
-#define PIN_NAME_HOUT4IN    "HOUT4IN"
-#define PIN_NAME_HOUT5IN    "HOUT5IN"
-#define PIN_NAME_HOUT6IN    "HOUT6IN"
-#define PIN_NAME_HOUT1DIAG  "HOUT1DIAG"
-#define PIN_NAME_HOUT2DIAG  "HOUT2DIAG"
-#define PIN_NAME_HOUT3DIAG  "HOUT3DIAG"
-#define PIN_NAME_HOUT4DIAG  "HOUT4DIAG"
-#define PIN_NAME_HOUT5DIAG  "HOUT5DIAG"
-#define PIN_NAME_HOUT6DIAG  "HOUT6DIAG"
-#define PIN_NAME_MOUT1IN    "MOUT1IN"
-#define PIN_NAME_MOUT2IN    "MOUT2IN"
-#define PIN_NAME_MOUT3IN    "MOUT3IN"
-#define PIN_NAME_MOUT4IN    "MOUT4IN"
-#define PIN_NAME_MOUT5IN    "MOUT5IN"
-#define PIN_NAME_MOUT6IN    "MOUT6IN"
-#define PIN_NAME_MOUT1EN    "MOUT1EN"
-#define PIN_NAME_MOUT2EN    "MOUT2EN"
-#define PIN_NAME_MOUT3EN    "MOUT3EN"
-#define PIN_NAME_MOUT4EN    "MOUT4EN"
-#define PIN_NAME_MOUT5EN    "MOUT5EN"
-#define PIN_NAME_MOUT6EN    "MOUT6EN"
-#define PIN_NAME_VBAT1EN    "VBAT1EN"
-#define PIN_NAME_VBAT2EN    "VBAT2EN"
-#define PIN_NAME_VBAT3EN    "VBAT3EN"
-#define PIN_NAME_VBATEN     "VBATEN"
-#define PIN_NAME_FANCTRL    "FANCTRL"
-#define PIN_NAME_ETHRST     "ETHRST"
-#define PIN_NAME_SPICSA     "SPICSA"
-#define PIN_NAME_SPICSB     "SPICSB"
-#define PIN_NAME_CANNSTB    "CANNSTB"
-#define PIN_NAME_CANEN      "CANEN"
-#define PIN_NAME_LIN2NSLP   "LIN2NSLP"
-#define PIN_NAME_LIN1NSLP   "LIN1NSLP"
-#define PIN_NAME_HBREN      "HBREN"
-#define PIN_NAME_HBRDIR     "HBRDIR"
-#define PIN_NAME_HBRPWM     "HBRPWM"
-#define PIN_NAME_UNUSED     NULL
-/* Pins descriptors */
-#define PIN_DSC_FANCTRL     PORT_PIN(PORT_ID_DMM, 0, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-#define PIN_DSC_ETHRST      PORT_PIN(PORT_ID_DMM, 1, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-#define PIN_DSC_VBAT1EN     PORT_PIN(PORT_ID_DMM, 2, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON)
-#define PIN_DSC_VBAT2EN     PORT_PIN(PORT_ID_DMM, 3, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON)
-#define PIN_DSC_VBAT3EN     PORT_PIN(PORT_ID_DMM, 4, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON)
-#define PIN_DSC_VBATEN      PORT_PIN(PORT_ID_DMM, 5, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-#define PIN_DSC_SPICSA      PORT_PIN(PORT_ID_DMM, 7, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-#define PIN_DSC_SPICSB      PORT_PIN(PORT_ID_DMM, 8, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-#define PIN_DSC_MOUT1EN     PORT_PIN(PORT_ID_DMM, 11, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
-#define PIN_DSC_MOUT2EN     PORT_PIN(PORT_ID_DMM, 12, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
-#define PIN_DSC_CANNSTB     PORT_PIN(PORT_ID_DMM, 13, PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF)
-#define PIN_DSC_CANEN       PORT_PIN(PORT_ID_DMM, 15, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-#define PIN_DSC_LIN2NSLP    PORT_PIN(PORT_ID_DMM, 16, PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF)
-#define PIN_DSC_LIN1NSLP    PORT_PIN(PORT_ID_DMM, 17, PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF)
-#define PIN_DSC_DININT      PORT_PIN(PORT_ID_DMM, 18, PORT_CONF_GPIO_IN_LO_PD_PDIS_ODOFF)
-#define PIN_DSC_DIN8        PORT_PIN(PORT_ID_GIOA, 0, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
-#define PIN_DSC_DIN9        PORT_PIN(PORT_ID_GIOA, 1, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
-#define PIN_DSC_DIN10       PORT_PIN(PORT_ID_GIOA, 2, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
-#define PIN_DSC_DIN11       PORT_PIN(PORT_ID_GIOA, 3, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
-#define PIN_DSC_DIN12       PORT_PIN(PORT_ID_GIOA, 4, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
-#define PIN_DSC_DIN13       PORT_PIN(PORT_ID_GIOA, 5, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
-#define PIN_DSC_DIN14       PORT_PIN(PORT_ID_GIOA, 6, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
-#define PIN_DSC_DIN15       PORT_PIN(PORT_ID_GIOA, 7, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
-#define PIN_DSC_MOUT6EN     PORT_PIN(PORT_ID_GIOB, 0, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
-#define PIN_DSC_MOUT5EN     PORT_PIN(PORT_ID_GIOB, 1, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
-#define PIN_DSC_MOUT6IN     PORT_PIN(PORT_ID_GIOB, 2, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
-#define PIN_DSC_MOUT5IN     PORT_PIN(PORT_ID_GIOB, 3, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
-#define PIN_DSC_MOUT4EN     PORT_PIN(PORT_ID_GIOB, 4, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
-#define PIN_DSC_MOUT3EN     PORT_PIN(PORT_ID_GIOB, 5, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
-#define PIN_DSC_MOUT4IN     PORT_PIN(PORT_ID_GIOB, 6, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
-#define PIN_DSC_MOUT3IN     PORT_PIN(PORT_ID_GIOB, 7, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
-#define PIN_DSC_HBREN       PORT_PIN(PORT_ID_HET1, 1, PORT_CONF_GPIO_OUT_LO_PU_PDIS_ODOFF)
-#define PIN_DSC_HBRDIR      PORT_PIN(PORT_ID_HET1, 4, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON)
-#define PIN_DSC_HBRPWM      PORT_PIN(PORT_ID_HET1, 7, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON)
-#define PIN_DSC_MOUT1IN     PORT_PIN(PORT_ID_HET1, 9, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
-#define PIN_DSC_MOUT2IN     PORT_PIN(PORT_ID_HET1, 14, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
-#define PIN_DSC_HOUT1IN     PORT_PIN(PORT_ID_HET1, 16, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-#define PIN_DSC_HOUT1DIAG   PORT_PIN(PORT_ID_HET1, 17, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
-#define PIN_DSC_HOUT2IN     PORT_PIN(PORT_ID_HET1, 18, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-#define PIN_DSC_HOUT2DIAG   PORT_PIN(PORT_ID_HET1, 19, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
-#define PIN_DSC_HOUT3IN     PORT_PIN(PORT_ID_HET1, 20, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-#define PIN_DSC_HOUT3DIAG   PORT_PIN(PORT_ID_HET1, 21, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
-#define PIN_DSC_HOUT4IN     PORT_PIN(PORT_ID_HET1, 22, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-#define PIN_DSC_HOUT4DIAG   PORT_PIN(PORT_ID_HET1, 23, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
-#define PIN_DSC_HOUT5IN     PORT_PIN(PORT_ID_HET1, 25, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-#define PIN_DSC_HOUT5DIAG   PORT_PIN(PORT_ID_HET1, 27, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
-#define PIN_DSC_HOUT6IN     PORT_PIN(PORT_ID_HET1, 29, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-#define PIN_DSC_HOUT6DIAG   PORT_PIN(PORT_ID_HET1, 31, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
-#define PIN_DSC_DMM_UNUSED(b)   PORT_PIN(PORT_ID_HET2, b, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-#define PIN_DSC_GIOA_UNUSED(b)   PORT_PIN(PORT_ID_HET2, b, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-#define PIN_DSC_GIOB_UNUSED(b) PORT_PIN(PORT_ID_HET2, b, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-#define PIN_DSC_HET1_UNUSED(b) PORT_PIN(PORT_ID_HET2, b, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-#define PIN_DSC_HET2_UNUSED(b) PORT_PIN(PORT_ID_HET2, b, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
-
-#endif /* HAL_GPIO_TMS570_DEF_H_ */
diff --git a/rpp/include/hal/_tms570_rpp/port_def.h b/rpp/include/hal/_tms570_rpp/port_def.h
deleted file mode 100644 (file)
index e65cbaf..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- *
- * @file port_def.h
- *
- * @copyright Copyright (C) 2012-2013 Czech Technical University in Prague
- *
- * @author Michal Horn <hornmich@fel.cvut.cz>
- */
-
-#ifndef PORT_DEF_H_
-#define PORT_DEF_H_
-
-#include "types.h"
-
-enum port_interface_type {
-       ADC = 1,
-       SPI,
-       GPIO
-};
-
-/**
- * @brief Port descriptor
- *
- * The structure describes the port. Port here means set of IO pins on the board.
- * The API is designed to provide an interface for setting and reading from ports connected to the MCU by SPI, GPIO or ADC.
- */
-typedef struct port_desc_st {
-       uint32_t *config;       /**< Configuration of the port. An arry of values, which meaning differs for the interface type:
-                                        for SPI: address, chip-select
-                                        for GPIO: descriptors for pins (defined in gpio_tms570_def.h)
-                                        for ADC: ADC base address, ADC group number, Peripheral type (HOUTIFBK or ADC)
-                                */
-       uint32_t numValues;     /**< Size of the data to be read from or written on the port. Meaning differs for the interface type:
-                                       for SPI: size of the command in bytes
-                                       for GPIO: number of pins on the port
-                                       for ADC: number of channels to be read from ADC.
-                                */
-       enum port_interface_type interfaceType;     /**< Type of the interface to which the port or its controller is connected.
-                                           Can be SPI, ADC or GPIO
-                                    */
-       uint32_t (*port_getfnc_ptr)(uint32_t *config, uint32_t num_val, uint32_t *values);   /**< Pointer to a getter function. If it is NULL, than port is write only.
-                                                                                                    All SPI ports are write only, because command has to be sent to obtain actual response.
-                                                                                                    It is allowed to read values from an output port.
-                                                                                             */
-       uint32_t (*port_setfnc_ptr)(uint32_t *config, uint32_t num_val, const uint32_t *values); /**< Pointer to a setter function. If it is NULL, than port is read only.
-                                                                                                    All ADC ports are read only.
-                                                                                                    It is not allowed to write values on an input port.
-                                                                                                 */
-} port_desc_t;
-
-/**
- * Maps port descriptor to the port name
- */
-typedef struct port_def_st {
-       char *name;
-       port_desc_t *desc;
-} port_def_t;
-
-#define PORT_CNT    15
-
-#define PORT_NAME_DINMCU        "DINMCU"
-#define PORT_NAME_DINSPI        "DINSPI"
-#define PORT_NAME_HOUTDIAG      "HOUTDIAG"
-#define PORT_NAME_HOUTIN        "HOUTIN"
-#define PORT_NAME_HOUTIFBK      "HOUTIFBK"
-#define PORT_NAME_ADC           "ADC"
-#define PORT_NAME_LOUT          "LOUT"
-#define PORT_NAME_DAC1_2        "DAC12"
-#define PORT_NAME_DAC3_4        "DAC34"
-#define PORT_NAME_DACDREF       "DACDREF"
-#define PORT_NAME_HBR           "HBR"
-#define PORT_NAME_FRAY1         "FRAY1"
-#define PORT_NAME_FRAY2         "FRAY2"
-#define PORT_NAME_MOUTEN        "MOUTEN"
-#define PORT_NAME_MOUTIN        "MOUTIN"
-
-#endif /* PORT_DEF_H_ */
diff --git a/rpp/include/hal/hal.h b/rpp/include/hal/hal.h
deleted file mode 100644 (file)
index 43d9a43..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-/**
- * Hardware Abstraction Layer library interface file.
- *
- * @file hal.h
- *
- * @copyright Copyright (C) 2013, 2015 Czech Technical University in Prague
- *
- * @author Carlos Jenkins <carlos@jenkins.co.cr>
- */
-
-#ifndef __HAL_H
-#define __HAL_H
-
-#include "sys/sys.h"
-
-#if defined(TARGET_POSIX)
-#include "hal/_rm48_hdk/gpio_def.h"
-#include "hal/_rm48_hdk/port_def.h"
-#elif defined(TARGET_RM48_HDK)
-#include "hal/_rm48_hdk/gpio_def.h"
-#include "hal/_rm48_hdk/port_def.h"
-#elif defined(TARGET_TMS570_HDK)
-#include "hal/_tms570_hdk/gpio_def.h"
-#include "hal/_tms570_hdk/port_def.h"
-#elif defined(TARGET_TMS570_HYDCTR)
-#include "hal/_tms570_hydctr/gpio_def.h"
-#include "hal/_tms570_hydctr/port_def.h"
-#elif defined(TARGET_TMS570_RPP)
-#include "hal/_tms570_rpp/gpio_def.h"
-#include "hal/_tms570_rpp/port_def.h"
-#else
-#error No supported target specified!
-#endif
-
-uint8_t hal_gpio_get_pin_cnt();
-
-pin_map_element_t* hal_gpio_get_pin_map();
-
-/**
- * Get port base assigned to port number
- * @param[in]   port_num    Port number <0;4>
- * @return Pointer to port registers
- */
-gioPORT_t *hal_gpio_get_port_base(uint32_t port_num);
-
-/**
- * Get port number assigned to pin in its descriptor
- * @param[in]   pin descriptor
- * @return  Index of port
- */
-uint32_t hal_gpio_pin_get_port_num(uint32_t pin_dsc);
-
-/**
- * Get port base from pin descriptor
- * Combines two upper defined functions
- * @param[in]   pin_dcs Pin descriptor
- * @return      Pointer to port registers
- */
-gioPORT_t *hal_gpio_pin_get_port_base(uint32_t pin_dsc);
-
-/**
- *  Get pin descriptor assigned to pin name.
- *  @param[in]  pin_name    Pointer to string - the name of the pin.
- *  @param[in]  len         Length of the name, if terminated by '/0', then len=-1
- *  @return Pin descriptor or NULL if not found
- */
-uint32_t *hal_gpio_pin_get_dsc(const char *pin_name, int len);
-
-/**
- * Get value from GPIO pin
- * @param[in]   pin_dsc pin descriptor
- * @return  value read from specified gpio pin
- */
-uint32_t hal_gpio_pin_get_value(uint32_t pin_dsc);
-
-/**
- * Set value to gpio pin
- * @param[in]   pin_dsc pin descriptor
- * @param[in]   value   value to be assigned to the pin
- */
-void hal_gpio_pin_set_value(uint32_t pin_dsc, uint32_t value);
-
-/**
- * Set pin direction to input
- * @param[in] pin_dsc pin descriptor
- * @return always 0
- */
-int hal_gpio_pin_set_dir_in(uint32_t pin_dsc);
-
-/**
- * Set pin direction to output
- * @param[in] pin_dsc pin descriptor
- * @return always 0
- */
-int hal_gpio_pin_set_dir_out(uint32_t pin_dsc, uint32_t value);
-
-/**
- * Get pin direction
- * @param[in] pin_dsc pin descriptor
- * @return 1 - output, 0 - input
- */
-int hal_gpio_pin_get_dir(uint32_t pin_dsc);
-
-/**
- * Set pin as pull down or pull up and pull resistor enabled or disabled.
- * @param[in] pin_dsc Descriptor of the pin
- * @param[in] Mode on which pin will be configured to.
- *              PORT_CONF_MODE_PU - pull up
- *              PORT_CONF_MODE_PD - pull down
- *              must be | with
- *              PORT_CONF_MODE_PEN - pull resistor enable
- *              PORT_CONF_MODE_PDIS - pull resistor disable
- * @return always 0
- */
-uint32_t hal_gpio_pin_set_mode(uint32_t pin_dsc, uint32_t mode);
-
-/**
- * Configure pin to be open drain or not
- * @param[in] pin_dsc Descriptor of the pin
- * @param[in] Mode on which pin will be configured to.
- *              PORT_CONF_OD_OFF - open-drain disabled
- *              PORT_CONF_OD_ON - open drain enabled
- *
- * @return always 0
- */
-uint32_t hal_gpio_pin_set_od(uint32_t pin_dsc, uint32_t od);
-
-/**
- * Configure pin
- * @param[in] pin_dsc Descriptor of the pin
- * @param[in] Mode on which pin will be configured to.
- *              PORT_CONF_OD_OFF - open-drain disabled
- *              PORT_CONF_OD_ON - open drain enabled
- *
- *              PORT_CONF_MODE_PU - pull up
- *              PORT_CONF_MODE_PD - pull down
- *
- *              PORT_CONF_MODE_PEN - pull resistor enable
- *              PORT_CONF_MODE_PDIS - pull resistor disable
- *
- *              PORT_CONF_DIR_IN - direction input
- *              PORT_CONF_DIR_OUT - direction output
- *
- *              PORT_CONF_INIT_LOW - init value 0
- *              PORT_CONF_INIT_HIGH - init value 1
- *
- *              PORT_CONF_FNC_GPIO - port function GPIO
- *              PORT_CONF_FNC_FNCX - port alternate function X
- *
- * @return always 0
- */
-uint32_t hal_gpio_pin_set_config(uint32_t pin_dsc, uint32_t conf);
-
-/**
- * Do the initial pin configuration according values in pin descriptor
- * @param[in]   pin_dsc pin descriptor
- * @return always 0;
- */
-uint32_t hal_gpio_pin_configure(uint32_t pin_dsc);
-
-/**
- * Get values of all pins of given port.
- * @param[in] config    Pointer to array of pin descriptors
- * @param[in] num_val   Number of pins assigned to the port
- * @param[out] values   Stored values of all pins of the port. 1st bit -> pin0, 2nd bit -> pin1...
- * @return always 0
- */
-uint32_t hal_gpio_port_get_val(uint32_t *config, uint32_t num_val, uint32_t *values);
-
-/**
- * Set values to all pins of given port.
- * @param[in] config    Pointer to array of pin descriptors
- * @param[in] num_val   Number of pins assigned to the port
- * @param[in] values    Stored values of all pins of the port. 1st bit -> pin0, 2nd bit -> pin1...
- * @return always 0
- */
-uint32_t hal_gpio_port_set_val(uint32_t *config, uint32_t num_val, const uint32_t *values);
-
-/**
- *  Get port descriptor assigned to port name.
- *  @param[in]  port_name   Pointer to string - the name of the port.
- *  @param[in]  len         Length of the name, if terminated by '/0', then len=-1
- *  @return Port descriptor or NULL if not found
- */
-const port_def_t *hal_port_get_map();
-
-/**
- *  Get port descriptor assigned to port name.
- *  @param[in]  port_name   Pointer to string - the name of the port.
- *  @param[in]  len         Length of the name, if terminated by '/0', then len=-1
- *  @return Port descriptor or NULL if not found
- */
-port_desc_t *hal_port_get_dsc(const char *port_name, int len);
-
-uint32_t hal_port_get_val_cnt(const port_desc_t* port_desc);
-
-/**
- * Transfer command through the spi
- * @param[in] config    Address of the SPI
- * @param[in] num_bytes Number of bytes to be trasfered
- * @param[in] commands  SPI command to be sent
- * @return spi response
- */
-uint32_t hal_spi_port_transfer_command(uint32_t *config, uint32_t num_bytes, const uint32_t *commands);
-
-
-#endif /* __HAL_H */
index 8581f6106dca450ecd2fc9e029ce1ca977f7eb2d..b2fc6a77013701d5a39cb95e80fbde4d0c4960bf 100644 (file)
@@ -8,7 +8,7 @@
 #ifndef GIO_H_
 #define GIO_H_
 
-#include "hal/hal.h"
+#include "drv/digital_io.h"
 
 #define RPP_GIO_PORT_GIOA   0x2
 #define RPP_GIO_PORT_GIOB   0x4
diff --git a/rpp/src/drv/_rm48_hdk/digital_io_def.c b/rpp/src/drv/_rm48_hdk/digital_io_def.c
new file mode 100644 (file)
index 0000000..fd0e077
--- /dev/null
@@ -0,0 +1,230 @@
+/* Copyright (C) 2012-2013 Czech Technical University in Prague
+ *
+ * Authors:
+ *     - Michal Horn <hornmich@fel.cvut.cz>
+ *
+ * This document contains proprietary information belonging to Czech
+ * Technical University in Prague. Passing on and copying of this
+ * document, and communication of its contents is not permitted
+ * without prior written authorization.
+ *
+ * Abstract:
+ *         This file contains gpio pins definitions
+ *
+ *      On TMS570 MCU pins can operates as GIO on ports DMM, GIOA, GIOB,
+ *      HET1 and HET2. Those pins, that are defined in this file, can be
+ *      accessed directly as GPIO by hal_gpio_set_value and
+ *      hal_gpio_get_value. Pin configuration can be modified by functions
+ *      defined in hal_gpio_tms570 source and header files.
+ *
+ *      NOTE: Although the configuration functions are implemented and
+ *      should be ready to use, they were only slightly tested and are not
+ *      used by the RPP software yet.
+ */
+
+#include "drv/_rm48_hdk/digital_io_def.h"
+#include "drv/digital_io.h"
+#include "drv/spi.h"
+#include "drv/_rm48_hdk/adc.h"
+
+
+#define PORT_PIN(p,n,conf)  (((p)<<DIO_PORT_SHIFT) | (n) | (conf))
+
+#define PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_HIGH|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PU|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON       DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_ON
+#define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODON      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_ON
+#define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF     DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_OUT_LO_PU_PDIS_ODOFF     DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PU|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_IN_HI_PU_PEN_ODON        DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_HIGH|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PU|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_ON
+#define PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON       DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_HIGH|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PU|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_ON
+#define PORT_CONF_GPIO_IN_LO_PD_PDIS_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF       DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_IN_LO_PU_PDIS_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_OFF
+
+/* Pins descriptors */
+#define PIN_DSC_GIOA0     PORT_PIN(DIO_PORT_ID_GIOA, 0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA1     PORT_PIN(DIO_PORT_ID_GIOA, 1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA2     PORT_PIN(DIO_PORT_ID_GIOA, 2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA3     PORT_PIN(DIO_PORT_ID_GIOA, 3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA4     PORT_PIN(DIO_PORT_ID_GIOA, 4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA5     PORT_PIN(DIO_PORT_ID_GIOA, 5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA6     PORT_PIN(DIO_PORT_ID_GIOA, 6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA7     PORT_PIN(DIO_PORT_ID_GIOA, 7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+
+#define PIN_DSC_GIOB0     PORT_PIN(DIO_PORT_ID_GIOB, 0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB1     PORT_PIN(DIO_PORT_ID_GIOB, 1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB2     PORT_PIN(DIO_PORT_ID_GIOB, 2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB3     PORT_PIN(DIO_PORT_ID_GIOB, 3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB4     PORT_PIN(DIO_PORT_ID_GIOB, 4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB5     PORT_PIN(DIO_PORT_ID_GIOB, 5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB6     PORT_PIN(DIO_PORT_ID_GIOB, 6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB7     PORT_PIN(DIO_PORT_ID_GIOB, 7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+
+#define PIN_DSC_NHET1_0     PORT_PIN(DIO_PORT_ID_HET1,  0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_1     PORT_PIN(DIO_PORT_ID_HET1,  1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_2     PORT_PIN(DIO_PORT_ID_HET1,  2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_3     PORT_PIN(DIO_PORT_ID_HET1,  3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_4     PORT_PIN(DIO_PORT_ID_HET1,  4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_5     PORT_PIN(DIO_PORT_ID_HET1,  5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_6     PORT_PIN(DIO_PORT_ID_HET1,  6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_7     PORT_PIN(DIO_PORT_ID_HET1,  7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_8     PORT_PIN(DIO_PORT_ID_HET1,  8, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_9     PORT_PIN(DIO_PORT_ID_HET1,  9, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_10    PORT_PIN(DIO_PORT_ID_HET1, 10, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_11    PORT_PIN(DIO_PORT_ID_HET1, 11, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_12    PORT_PIN(DIO_PORT_ID_HET1, 12, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_13    PORT_PIN(DIO_PORT_ID_HET1, 13, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_14    PORT_PIN(DIO_PORT_ID_HET1, 14, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_15    PORT_PIN(DIO_PORT_ID_HET1, 15, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_16    PORT_PIN(DIO_PORT_ID_HET1, 16, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_17    PORT_PIN(DIO_PORT_ID_HET1, 17, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_18    PORT_PIN(DIO_PORT_ID_HET1, 18, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_19    PORT_PIN(DIO_PORT_ID_HET1, 19, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_20    PORT_PIN(DIO_PORT_ID_HET1, 20, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_21    PORT_PIN(DIO_PORT_ID_HET1, 21, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_22    PORT_PIN(DIO_PORT_ID_HET1, 22, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_23    PORT_PIN(DIO_PORT_ID_HET1, 23, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_24    PORT_PIN(DIO_PORT_ID_HET1, 24, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_25    PORT_PIN(DIO_PORT_ID_HET1, 25, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_26    PORT_PIN(DIO_PORT_ID_HET1, 26, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_27    PORT_PIN(DIO_PORT_ID_HET1, 27, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_28    PORT_PIN(DIO_PORT_ID_HET1, 28, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_29    PORT_PIN(DIO_PORT_ID_HET1, 29, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_30    PORT_PIN(DIO_PORT_ID_HET1, 30, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_31    PORT_PIN(DIO_PORT_ID_HET1, 31, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+
+/**
+ * Array of ports used as GPIO. Thanks to that array, we can
+ * determine port just by index in pin_desc at 5th bit */
+gioPORT_t *dio_port_id_map[DIO_MAX_PORT_CNT] = {
+       (gioPORT_t *)dmmPORT,
+       (gioPORT_t *)gioPORTA,
+       (gioPORT_t *)gioPORTB,
+       (gioPORT_t *)hetPORT1,
+       (gioPORT_t *)hetPORT2
+};
+
+/* Some pins are commented out, because they are pinmuxed with SCI. */
+/**
+ * Map of pin names to pin descriptors. Each pin can be then easily
+ * found just by its name given as a string to hal_gpio_get_pin_dsc
+ * function*/
+dio_pin_map_element_t dio_pin_map[DIO_MAX_PIN_CNT] = {
+               { .pin_name = DIO_PIN_NAME_GIOA0, .pin_desc = PIN_DSC_GIOA0 },
+               { .pin_name = DIO_PIN_NAME_GIOA1, .pin_desc = PIN_DSC_GIOA1 },
+               { .pin_name = DIO_PIN_NAME_GIOA2, .pin_desc = PIN_DSC_GIOA2 },
+               { .pin_name = DIO_PIN_NAME_GIOA3, .pin_desc = PIN_DSC_GIOA3 },
+               { .pin_name = DIO_PIN_NAME_GIOA4, .pin_desc = PIN_DSC_GIOA4 },
+               { .pin_name = DIO_PIN_NAME_GIOA5, .pin_desc = PIN_DSC_GIOA5 },
+               { .pin_name = DIO_PIN_NAME_GIOA6, .pin_desc = PIN_DSC_GIOA6 },
+               { .pin_name = DIO_PIN_NAME_GIOA7, .pin_desc = PIN_DSC_GIOA7 },
+               { .pin_name = DIO_PIN_NAME_GIOB0, .pin_desc = PIN_DSC_GIOB0 },
+               { .pin_name = DIO_PIN_NAME_GIOB1, .pin_desc = PIN_DSC_GIOB1 },
+               { .pin_name = DIO_PIN_NAME_GIOB2, .pin_desc = PIN_DSC_GIOB2 },
+               { .pin_name = DIO_PIN_NAME_GIOB3, .pin_desc = PIN_DSC_GIOB3 },
+               { .pin_name = DIO_PIN_NAME_GIOB4, .pin_desc = PIN_DSC_GIOB4 },
+               { .pin_name = DIO_PIN_NAME_GIOB5, .pin_desc = PIN_DSC_GIOB5 },
+               { .pin_name = DIO_PIN_NAME_GIOB6, .pin_desc = PIN_DSC_GIOB6 },
+               { .pin_name = DIO_PIN_NAME_GIOB7, .pin_desc = PIN_DSC_GIOB7 },
+               { .pin_name = DIO_PIN_NAME_NHET1_0, .pin_desc = PIN_DSC_NHET1_0 },
+               { .pin_name = DIO_PIN_NAME_NHET1_1, .pin_desc = PIN_DSC_NHET1_1 },
+               { .pin_name = DIO_PIN_NAME_NHET1_2, .pin_desc = PIN_DSC_NHET1_2 },
+               { .pin_name = DIO_PIN_NAME_NHET1_3, .pin_desc = PIN_DSC_NHET1_3 },
+               { .pin_name = DIO_PIN_NAME_NHET1_4, .pin_desc = PIN_DSC_NHET1_4 },
+               { .pin_name = DIO_PIN_NAME_NHET1_5, .pin_desc = PIN_DSC_NHET1_5 },
+               /*{ .pin_name = DIO_PIN_NAME_NHET1_6, .pin_desc = PIN_DSC_NHET1_6 },*/
+               { .pin_name = DIO_PIN_NAME_NHET1_7, .pin_desc = PIN_DSC_NHET1_7 },
+               { .pin_name = DIO_PIN_NAME_NHET1_8, .pin_desc = PIN_DSC_NHET1_8 },
+               { .pin_name = DIO_PIN_NAME_NHET1_9, .pin_desc = PIN_DSC_NHET1_9 },
+               { .pin_name = DIO_PIN_NAME_NHET1_10, .pin_desc = PIN_DSC_NHET1_10 },
+               { .pin_name = DIO_PIN_NAME_NHET1_11, .pin_desc = PIN_DSC_NHET1_11 },
+               { .pin_name = DIO_PIN_NAME_NHET1_12, .pin_desc = PIN_DSC_NHET1_12 },
+               /*{ .pin_name = DIO_PIN_NAME_NHET1_13, .pin_desc = PIN_DSC_NHET1_13 },*/
+               { .pin_name = DIO_PIN_NAME_NHET1_14, .pin_desc = PIN_DSC_NHET1_14 },
+               { .pin_name = DIO_PIN_NAME_NHET1_15, .pin_desc = PIN_DSC_NHET1_15 },
+               { .pin_name = DIO_PIN_NAME_NHET1_16, .pin_desc = PIN_DSC_NHET1_16 },
+               { .pin_name = DIO_PIN_NAME_NHET1_17, .pin_desc = PIN_DSC_NHET1_17 },
+               { .pin_name = DIO_PIN_NAME_NHET1_18, .pin_desc = PIN_DSC_NHET1_18 },
+               { .pin_name = DIO_PIN_NAME_NHET1_19, .pin_desc = PIN_DSC_NHET1_19 },
+               { .pin_name = DIO_PIN_NAME_NHET1_20, .pin_desc = PIN_DSC_NHET1_20 },
+               { .pin_name = DIO_PIN_NAME_NHET1_21, .pin_desc = PIN_DSC_NHET1_21 },
+               { .pin_name = DIO_PIN_NAME_NHET1_22, .pin_desc = PIN_DSC_NHET1_22 },
+               { .pin_name = DIO_PIN_NAME_NHET1_23, .pin_desc = PIN_DSC_NHET1_23 },
+               { .pin_name = DIO_PIN_NAME_NHET1_24, .pin_desc = PIN_DSC_NHET1_24 },
+               { .pin_name = DIO_PIN_NAME_NHET1_25, .pin_desc = PIN_DSC_NHET1_25 },
+               { .pin_name = DIO_PIN_NAME_NHET1_26, .pin_desc = PIN_DSC_NHET1_26 },
+               { .pin_name = DIO_PIN_NAME_NHET1_27, .pin_desc = PIN_DSC_NHET1_27 },
+               { .pin_name = DIO_PIN_NAME_NHET1_28, .pin_desc = PIN_DSC_NHET1_28 },
+               { .pin_name = DIO_PIN_NAME_NHET1_29, .pin_desc = PIN_DSC_NHET1_29 },
+               { .pin_name = DIO_PIN_NAME_NHET1_30, .pin_desc = PIN_DSC_NHET1_30 },
+               { .pin_name = DIO_PIN_NAME_NHET1_31, .pin_desc = PIN_DSC_NHET1_31 },
+       /* FIXME: add definitions of all unused pins DMM, HET2, SCI... */
+};
+
+// FIXME Upper layer dependency/coupling
+// Declared in drv/adc.h
+extern uint32_t adc_get_port_val(uint32_t *config, uint32_t num_channels, uint32_t *values);
+
+// Lists of pins assigned to the ports
+static uint32_t port_cfg_gioa[] = {
+               PIN_DSC_GIOA0, PIN_DSC_GIOA1, PIN_DSC_GIOA2, PIN_DSC_GIOA3,
+               PIN_DSC_GIOA4, PIN_DSC_GIOA5, PIN_DSC_GIOA6, PIN_DSC_GIOA7
+};
+static uint32_t port_cfg_giob[] = {
+               PIN_DSC_GIOB0, PIN_DSC_GIOB1, PIN_DSC_GIOB2, PIN_DSC_GIOB3,
+               PIN_DSC_GIOB4, PIN_DSC_GIOB5, PIN_DSC_GIOB6, PIN_DSC_GIOB7
+};
+static uint32_t port_cfg_nhet1[] = {
+               PIN_DSC_NHET1_0, PIN_DSC_NHET1_1, PIN_DSC_NHET1_2,
+               PIN_DSC_NHET1_3, PIN_DSC_NHET1_4, PIN_DSC_NHET1_5,
+               PIN_DSC_NHET1_7, PIN_DSC_NHET1_8, PIN_DSC_NHET1_9,
+               PIN_DSC_NHET1_10, PIN_DSC_NHET1_11, PIN_DSC_NHET1_12,
+               PIN_DSC_NHET1_14, PIN_DSC_NHET1_15, PIN_DSC_NHET1_16,
+               PIN_DSC_NHET1_17, PIN_DSC_NHET1_18, PIN_DSC_NHET1_19,
+               PIN_DSC_NHET1_20, PIN_DSC_NHET1_21, PIN_DSC_NHET1_22,
+               PIN_DSC_NHET1_23, PIN_DSC_NHET1_24, PIN_DSC_NHET1_25,
+               PIN_DSC_NHET1_26, PIN_DSC_NHET1_27, PIN_DSC_NHET1_28,
+               PIN_DSC_NHET1_29, PIN_DSC_NHET1_30, PIN_DSC_NHET1_31
+};
+static uint32_t port_cfg_adc[] = { (uint32_t)adcREG1, adcGROUP1, 1 };
+
+// Port descriptors
+static dio_port_desc_t port_desc_gioa = {
+ .config = port_cfg_gioa,
+ .numValues = 8,
+ .interfaceType = GPIO,
+ .port_getfnc_ptr = &dio_gpio_port_get_val,
+ .port_setfnc_ptr = &dio_gpio_port_set_val,
+};
+static dio_port_desc_t port_desc_giob = {
+ .config = port_cfg_giob,
+ .numValues = 8,
+ .interfaceType = GPIO,
+ .port_getfnc_ptr = &dio_gpio_port_get_val,
+ .port_setfnc_ptr = &dio_gpio_port_set_val,
+};
+static dio_port_desc_t port_desc_nhet1 = {
+ .config = port_cfg_nhet1,
+ .numValues = 30,
+ .interfaceType = GPIO,
+ .port_getfnc_ptr = &dio_gpio_port_get_val,
+ .port_setfnc_ptr = &dio_gpio_port_set_val,
+};
+static dio_port_desc_t port_desc_adc = {
+ .config = port_cfg_adc,
+ .numValues = 16,
+ .interfaceType = ADC,
+ .port_getfnc_ptr = &adc_get_port_val,
+ .port_setfnc_ptr = ((void *)0),
+};
+
+
+// Maps of port names to port descriptors
+dio_port_def_t dio_port_definition[DIO_PORT_CNT] = {
+       {.name = DIO_PORT_NAME_GIOA,      .desc = &port_desc_gioa},
+       {.name = DIO_PORT_NAME_GIOB,      .desc = &port_desc_giob},
+       {.name = DIO_PORT_NAME_NHET1,    .desc = &port_desc_nhet1},
+       {.name = DIO_PORT_NAME_ADC,      .desc = &port_desc_adc}
+};
diff --git a/rpp/src/drv/_tms570_hdk/digital_io_def.c b/rpp/src/drv/_tms570_hdk/digital_io_def.c
new file mode 100644 (file)
index 0000000..cd7e9c5
--- /dev/null
@@ -0,0 +1,230 @@
+/* Copyright (C) 2012-2013 Czech Technical University in Prague
+ *
+ * Authors:
+ *     - Michal Horn <hornmich@fel.cvut.cz>
+ *
+ * This document contains proprietary information belonging to Czech
+ * Technical University in Prague. Passing on and copying of this
+ * document, and communication of its contents is not permitted
+ * without prior written authorization.
+ *
+ * Abstract:
+ *         This file contains gpio pins definitions
+ *
+ *      On TMS570 MCU pins can operates as GIO on ports DMM, GIOA, GIOB,
+ *      HET1 and HET2. Those pins, that are defined in this file, can be
+ *      accessed directly as GPIO by hal_gpio_set_value and
+ *      hal_gpio_get_value. Pin configuration can be modified by functions
+ *      defined in hal_gpio_tms570 source and header files.
+ *
+ *      NOTE: Although the configuration functions are implemented and
+ *      should be ready to use, they were only slightly tested and are not
+ *      used by the RPP software yet.
+ */
+
+#include "drv/_tms570_hdk/digital_io_def.h"
+#include "drv/digital_io.h"
+#include "drv/spi.h"
+#include "drv/_tms570_hdk/adc.h"
+
+
+#define PORT_PIN(p,n,conf)  (((p)<<DIO_PORT_SHIFT) | (n) | (conf))
+
+#define PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_HIGH|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PU|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON       DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_ON
+#define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODON      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_ON
+#define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF     DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_OUT_LO_PU_PDIS_ODOFF     DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PU|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_IN_HI_PU_PEN_ODON        DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_HIGH|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PU|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_ON
+#define PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON       DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_HIGH|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PU|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_ON
+#define PORT_CONF_GPIO_IN_LO_PD_PDIS_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF       DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_IN_LO_PU_PDIS_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_OFF
+
+/* Pins descriptors */
+#define PIN_DSC_GIOA0     PORT_PIN(DIO_PORT_ID_GIOA, 0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA1     PORT_PIN(DIO_PORT_ID_GIOA, 1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA2     PORT_PIN(DIO_PORT_ID_GIOA, 2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA3     PORT_PIN(DIO_PORT_ID_GIOA, 3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA4     PORT_PIN(DIO_PORT_ID_GIOA, 4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA5     PORT_PIN(DIO_PORT_ID_GIOA, 5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA6     PORT_PIN(DIO_PORT_ID_GIOA, 6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA7     PORT_PIN(DIO_PORT_ID_GIOA, 7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+
+#define PIN_DSC_GIOB0     PORT_PIN(DIO_PORT_ID_GIOB, 0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB1     PORT_PIN(DIO_PORT_ID_GIOB, 1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB2     PORT_PIN(DIO_PORT_ID_GIOB, 2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB3     PORT_PIN(DIO_PORT_ID_GIOB, 3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB4     PORT_PIN(DIO_PORT_ID_GIOB, 4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB5     PORT_PIN(DIO_PORT_ID_GIOB, 5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB6     PORT_PIN(DIO_PORT_ID_GIOB, 6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB7     PORT_PIN(DIO_PORT_ID_GIOB, 7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+
+#define PIN_DSC_NHET1_0     PORT_PIN(DIO_PORT_ID_HET1,  0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_1     PORT_PIN(DIO_PORT_ID_HET1,  1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_2     PORT_PIN(DIO_PORT_ID_HET1,  2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_3     PORT_PIN(DIO_PORT_ID_HET1,  3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_4     PORT_PIN(DIO_PORT_ID_HET1,  4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_5     PORT_PIN(DIO_PORT_ID_HET1,  5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_6     PORT_PIN(DIO_PORT_ID_HET1,  6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_7     PORT_PIN(DIO_PORT_ID_HET1,  7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_8     PORT_PIN(DIO_PORT_ID_HET1,  8, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_9     PORT_PIN(DIO_PORT_ID_HET1,  9, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_10    PORT_PIN(DIO_PORT_ID_HET1, 10, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_11    PORT_PIN(DIO_PORT_ID_HET1, 11, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_12    PORT_PIN(DIO_PORT_ID_HET1, 12, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_13    PORT_PIN(DIO_PORT_ID_HET1, 13, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_14    PORT_PIN(DIO_PORT_ID_HET1, 14, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_15    PORT_PIN(DIO_PORT_ID_HET1, 15, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_16    PORT_PIN(DIO_PORT_ID_HET1, 16, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_17    PORT_PIN(DIO_PORT_ID_HET1, 17, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_18    PORT_PIN(DIO_PORT_ID_HET1, 18, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_19    PORT_PIN(DIO_PORT_ID_HET1, 19, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_20    PORT_PIN(DIO_PORT_ID_HET1, 20, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_21    PORT_PIN(DIO_PORT_ID_HET1, 21, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_22    PORT_PIN(DIO_PORT_ID_HET1, 22, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_23    PORT_PIN(DIO_PORT_ID_HET1, 23, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_24    PORT_PIN(DIO_PORT_ID_HET1, 24, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_25    PORT_PIN(DIO_PORT_ID_HET1, 25, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_26    PORT_PIN(DIO_PORT_ID_HET1, 26, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_27    PORT_PIN(DIO_PORT_ID_HET1, 27, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_28    PORT_PIN(DIO_PORT_ID_HET1, 28, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_29    PORT_PIN(DIO_PORT_ID_HET1, 29, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_30    PORT_PIN(DIO_PORT_ID_HET1, 30, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_31    PORT_PIN(DIO_PORT_ID_HET1, 31, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+
+/**
+ * Array of ports used as GPIO. Thanks to that array, we can
+ * determine port just by index in pin_desc at 5th bit */
+gioPORT_t *dio_port_id_map[DIO_MAX_PORT_CNT] = {
+       (gioPORT_t *)dmmPORT,
+       (gioPORT_t *)gioPORTA,
+       (gioPORT_t *)gioPORTB,
+       (gioPORT_t *)hetPORT1,
+       (gioPORT_t *)hetPORT2
+};
+
+/* Some pins are commented out, because they are pinmuxed with SCI. */
+/**
+ * Map of pin names to pin descriptors. Each pin can be then easily
+ * found just by its name given as a string to hal_gpio_get_pin_dsc
+ * function*/
+dio_pin_map_element_t dio_pin_map[DIO_MAX_PIN_CNT] = {
+               { .pin_name = DIO_PIN_NAME_GIOA0, .pin_desc = PIN_DSC_GIOA0 },
+               { .pin_name = DIO_PIN_NAME_GIOA1, .pin_desc = PIN_DSC_GIOA1 },
+               { .pin_name = DIO_PIN_NAME_GIOA2, .pin_desc = PIN_DSC_GIOA2 },
+               { .pin_name = DIO_PIN_NAME_GIOA3, .pin_desc = PIN_DSC_GIOA3 },
+               { .pin_name = DIO_PIN_NAME_GIOA4, .pin_desc = PIN_DSC_GIOA4 },
+               { .pin_name = DIO_PIN_NAME_GIOA5, .pin_desc = PIN_DSC_GIOA5 },
+               { .pin_name = DIO_PIN_NAME_GIOA6, .pin_desc = PIN_DSC_GIOA6 },
+               { .pin_name = DIO_PIN_NAME_GIOA7, .pin_desc = PIN_DSC_GIOA7 },
+               { .pin_name = DIO_PIN_NAME_GIOB0, .pin_desc = PIN_DSC_GIOB0 },
+               { .pin_name = DIO_PIN_NAME_GIOB1, .pin_desc = PIN_DSC_GIOB1 },
+               { .pin_name = DIO_PIN_NAME_GIOB2, .pin_desc = PIN_DSC_GIOB2 },
+               { .pin_name = DIO_PIN_NAME_GIOB3, .pin_desc = PIN_DSC_GIOB3 },
+               { .pin_name = DIO_PIN_NAME_GIOB4, .pin_desc = PIN_DSC_GIOB4 },
+               { .pin_name = DIO_PIN_NAME_GIOB5, .pin_desc = PIN_DSC_GIOB5 },
+               { .pin_name = DIO_PIN_NAME_GIOB6, .pin_desc = PIN_DSC_GIOB6 },
+               { .pin_name = DIO_PIN_NAME_GIOB7, .pin_desc = PIN_DSC_GIOB7 },
+               { .pin_name = DIO_PIN_NAME_NHET1_0, .pin_desc = PIN_DSC_NHET1_0 },
+               { .pin_name = DIO_PIN_NAME_NHET1_1, .pin_desc = PIN_DSC_NHET1_1 },
+               { .pin_name = DIO_PIN_NAME_NHET1_2, .pin_desc = PIN_DSC_NHET1_2 },
+               { .pin_name = DIO_PIN_NAME_NHET1_3, .pin_desc = PIN_DSC_NHET1_3 },
+               { .pin_name = DIO_PIN_NAME_NHET1_4, .pin_desc = PIN_DSC_NHET1_4 },
+               { .pin_name = DIO_PIN_NAME_NHET1_5, .pin_desc = PIN_DSC_NHET1_5 },
+               /*{ .pin_name = DIO_PIN_NAME_NHET1_6, .pin_desc = PIN_DSC_NHET1_6 },*/
+               { .pin_name = DIO_PIN_NAME_NHET1_7, .pin_desc = PIN_DSC_NHET1_7 },
+               { .pin_name = DIO_PIN_NAME_NHET1_8, .pin_desc = PIN_DSC_NHET1_8 },
+               { .pin_name = DIO_PIN_NAME_NHET1_9, .pin_desc = PIN_DSC_NHET1_9 },
+               { .pin_name = DIO_PIN_NAME_NHET1_10, .pin_desc = PIN_DSC_NHET1_10 },
+               { .pin_name = DIO_PIN_NAME_NHET1_11, .pin_desc = PIN_DSC_NHET1_11 },
+               { .pin_name = DIO_PIN_NAME_NHET1_12, .pin_desc = PIN_DSC_NHET1_12 },
+               /*{ .pin_name = DIO_PIN_NAME_NHET1_13, .pin_desc = PIN_DSC_NHET1_13 },*/
+               { .pin_name = DIO_PIN_NAME_NHET1_14, .pin_desc = PIN_DSC_NHET1_14 },
+               { .pin_name = DIO_PIN_NAME_NHET1_15, .pin_desc = PIN_DSC_NHET1_15 },
+               { .pin_name = DIO_PIN_NAME_NHET1_16, .pin_desc = PIN_DSC_NHET1_16 },
+               { .pin_name = DIO_PIN_NAME_NHET1_17, .pin_desc = PIN_DSC_NHET1_17 },
+               { .pin_name = DIO_PIN_NAME_NHET1_18, .pin_desc = PIN_DSC_NHET1_18 },
+               { .pin_name = DIO_PIN_NAME_NHET1_19, .pin_desc = PIN_DSC_NHET1_19 },
+               { .pin_name = DIO_PIN_NAME_NHET1_20, .pin_desc = PIN_DSC_NHET1_20 },
+               { .pin_name = DIO_PIN_NAME_NHET1_21, .pin_desc = PIN_DSC_NHET1_21 },
+               { .pin_name = DIO_PIN_NAME_NHET1_22, .pin_desc = PIN_DSC_NHET1_22 },
+               { .pin_name = DIO_PIN_NAME_NHET1_23, .pin_desc = PIN_DSC_NHET1_23 },
+               { .pin_name = DIO_PIN_NAME_NHET1_24, .pin_desc = PIN_DSC_NHET1_24 },
+               { .pin_name = DIO_PIN_NAME_NHET1_25, .pin_desc = PIN_DSC_NHET1_25 },
+               { .pin_name = DIO_PIN_NAME_NHET1_26, .pin_desc = PIN_DSC_NHET1_26 },
+               { .pin_name = DIO_PIN_NAME_NHET1_27, .pin_desc = PIN_DSC_NHET1_27 },
+               { .pin_name = DIO_PIN_NAME_NHET1_28, .pin_desc = PIN_DSC_NHET1_28 },
+               { .pin_name = DIO_PIN_NAME_NHET1_29, .pin_desc = PIN_DSC_NHET1_29 },
+               { .pin_name = DIO_PIN_NAME_NHET1_30, .pin_desc = PIN_DSC_NHET1_30 },
+               { .pin_name = DIO_PIN_NAME_NHET1_31, .pin_desc = PIN_DSC_NHET1_31 },
+       /* FIXME: add definitions of all unused pins DMM, HET2, SCI... */
+};
+
+// FIXME Upper layer dependency/coupling
+// Declared in drv/adc.h
+extern uint32_t adc_get_port_val(uint32_t *config, uint32_t num_channels, uint32_t *values);
+
+// Lists of pins assigned to the ports
+static uint32_t port_cfg_gioa[] = {
+               PIN_DSC_GIOA0, PIN_DSC_GIOA1, PIN_DSC_GIOA2, PIN_DSC_GIOA3,
+               PIN_DSC_GIOA4, PIN_DSC_GIOA5, PIN_DSC_GIOA6, PIN_DSC_GIOA7
+};
+static uint32_t port_cfg_giob[] = {
+               PIN_DSC_GIOB0, PIN_DSC_GIOB1, PIN_DSC_GIOB2, PIN_DSC_GIOB3,
+               PIN_DSC_GIOB4, PIN_DSC_GIOB5, PIN_DSC_GIOB6, PIN_DSC_GIOB7
+};
+static uint32_t port_cfg_nhet1[] = {
+               PIN_DSC_NHET1_0, PIN_DSC_NHET1_1, PIN_DSC_NHET1_2,
+               PIN_DSC_NHET1_3, PIN_DSC_NHET1_4, PIN_DSC_NHET1_5,
+               PIN_DSC_NHET1_7, PIN_DSC_NHET1_8, PIN_DSC_NHET1_9,
+               PIN_DSC_NHET1_10, PIN_DSC_NHET1_11, PIN_DSC_NHET1_12,
+               PIN_DSC_NHET1_14, PIN_DSC_NHET1_15, PIN_DSC_NHET1_16,
+               PIN_DSC_NHET1_17, PIN_DSC_NHET1_18, PIN_DSC_NHET1_19,
+               PIN_DSC_NHET1_20, PIN_DSC_NHET1_21, PIN_DSC_NHET1_22,
+               PIN_DSC_NHET1_23, PIN_DSC_NHET1_24, PIN_DSC_NHET1_25,
+               PIN_DSC_NHET1_26, PIN_DSC_NHET1_27, PIN_DSC_NHET1_28,
+               PIN_DSC_NHET1_29, PIN_DSC_NHET1_30, PIN_DSC_NHET1_31
+};
+static uint32_t port_cfg_adc[] = { (uint32_t)adcREG1, adcGROUP1, 1 };
+
+// Port descriptors
+static dio_port_desc_t port_desc_gioa = {
+ .config = port_cfg_gioa,
+ .numValues = 8,
+ .interfaceType = GPIO,
+ .port_getfnc_ptr = &dio_gpio_port_get_val,
+ .port_setfnc_ptr = &dio_gpio_port_set_val,
+};
+static dio_port_desc_t port_desc_giob = {
+ .config = port_cfg_giob,
+ .numValues = 8,
+ .interfaceType = GPIO,
+ .port_getfnc_ptr = &dio_gpio_port_get_val,
+ .port_setfnc_ptr = &dio_gpio_port_set_val,
+};
+static dio_port_desc_t port_desc_nhet1 = {
+ .config = port_cfg_nhet1,
+ .numValues = 30,
+ .interfaceType = GPIO,
+ .port_getfnc_ptr = &dio_gpio_port_get_val,
+ .port_setfnc_ptr = &dio_gpio_port_set_val,
+};
+static dio_port_desc_t port_desc_adc = {
+ .config = port_cfg_adc,
+ .numValues = 16,
+ .interfaceType = ADC,
+ .port_getfnc_ptr = &adc_get_port_val,
+ .port_setfnc_ptr = ((void *)0),
+};
+
+
+// Maps of port names to port descriptors
+dio_port_def_t dio_port_definition[DIO_PORT_CNT] = {
+       {.name = DIO_PORT_NAME_GIOA,      .desc = &port_desc_gioa},
+       {.name = DIO_PORT_NAME_GIOB,      .desc = &port_desc_giob},
+       {.name = DIO_PORT_NAME_NHET1,    .desc = &port_desc_nhet1},
+       {.name = DIO_PORT_NAME_ADC,      .desc = &port_desc_adc}
+};
diff --git a/rpp/src/drv/_tms570_hydctr/digital_io_def.c b/rpp/src/drv/_tms570_hydctr/digital_io_def.c
new file mode 100644 (file)
index 0000000..a39875b
--- /dev/null
@@ -0,0 +1,229 @@
+/* Copyright (C) 2012-2013 Czech Technical University in Prague
+ *
+ * Authors:
+ *     - Michal Horn <hornmich@fel.cvut.cz>
+ *
+ * This document contains proprietary information belonging to Czech
+ * Technical University in Prague. Passing on and copying of this
+ * document, and communication of its contents is not permitted
+ * without prior written authorization.
+ *
+ * Abstract:
+ *         This file contains gpio pins definitions
+ *
+ *      On TMS570 MCU pins can operates as GIO on ports DMM, GIOA, GIOB,
+ *      HET1 and HET2. Those pins, that are defined in this file, can be
+ *      accessed directly as GPIO by hal_gpio_set_value and
+ *      hal_gpio_get_value. Pin configuration can be modified by functions
+ *      defined in hal_gpio_tms570 source and header files.
+ *
+ *      NOTE: Although the configuration functions are implemented and
+ *      should be ready to use, they were only slightly tested and are not
+ *      used by the RPP software yet.
+ */
+
+#include "drv/_tms570_hydctr/digital_io_def.h"
+#include "drv/digital_io.h"
+#include "drv/spi.h"
+#include "drv/_tms570_hydctr/adc.h"
+
+
+#define PORT_PIN(p,n,conf)  (((p)<<DIO_PORT_SHIFT) | (n) | (conf))
+
+#define PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_HIGH|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PU|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON       DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_ON
+#define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODON      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_ON
+#define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF     DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_OUT_LO_PU_PDIS_ODOFF     DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PU|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_IN_HI_PU_PEN_ODON        DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_HIGH|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PU|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_ON
+#define PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON       DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_HIGH|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PU|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_ON
+#define PORT_CONF_GPIO_IN_LO_PD_PDIS_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF       DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_IN_LO_PU_PDIS_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_OFF
+
+/* Pins descriptors */
+#define PIN_DSC_GIOA0     PORT_PIN(DIO_PORT_ID_GIOA, 0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA1     PORT_PIN(DIO_PORT_ID_GIOA, 1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA2     PORT_PIN(DIO_PORT_ID_GIOA, 2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA3     PORT_PIN(DIO_PORT_ID_GIOA, 3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA4     PORT_PIN(DIO_PORT_ID_GIOA, 4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA5     PORT_PIN(DIO_PORT_ID_GIOA, 5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA6     PORT_PIN(DIO_PORT_ID_GIOA, 6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOA7     PORT_PIN(DIO_PORT_ID_GIOA, 7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+
+#define PIN_DSC_GIOB0     PORT_PIN(DIO_PORT_ID_GIOB, 0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB1     PORT_PIN(DIO_PORT_ID_GIOB, 1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB2     PORT_PIN(DIO_PORT_ID_GIOB, 2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB3     PORT_PIN(DIO_PORT_ID_GIOB, 3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB4     PORT_PIN(DIO_PORT_ID_GIOB, 4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB5     PORT_PIN(DIO_PORT_ID_GIOB, 5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB6     PORT_PIN(DIO_PORT_ID_GIOB, 6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_GIOB7     PORT_PIN(DIO_PORT_ID_GIOB, 7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+
+#define PIN_DSC_NHET1_0     PORT_PIN(DIO_PORT_ID_HET1,  0, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_1     PORT_PIN(DIO_PORT_ID_HET1,  1, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_2     PORT_PIN(DIO_PORT_ID_HET1,  2, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_3     PORT_PIN(DIO_PORT_ID_HET1,  3, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_4     PORT_PIN(DIO_PORT_ID_HET1,  4, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_5     PORT_PIN(DIO_PORT_ID_HET1,  5, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_6     PORT_PIN(DIO_PORT_ID_HET1,  6, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_7     PORT_PIN(DIO_PORT_ID_HET1,  7, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_8     PORT_PIN(DIO_PORT_ID_HET1,  8, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_9     PORT_PIN(DIO_PORT_ID_HET1,  9, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_10    PORT_PIN(DIO_PORT_ID_HET1, 10, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_11    PORT_PIN(DIO_PORT_ID_HET1, 11, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_12    PORT_PIN(DIO_PORT_ID_HET1, 12, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_13    PORT_PIN(DIO_PORT_ID_HET1, 13, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_14    PORT_PIN(DIO_PORT_ID_HET1, 14, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_15    PORT_PIN(DIO_PORT_ID_HET1, 15, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_16    PORT_PIN(DIO_PORT_ID_HET1, 16, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_17    PORT_PIN(DIO_PORT_ID_HET1, 17, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_18    PORT_PIN(DIO_PORT_ID_HET1, 18, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_19    PORT_PIN(DIO_PORT_ID_HET1, 19, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_20    PORT_PIN(DIO_PORT_ID_HET1, 20, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_21    PORT_PIN(DIO_PORT_ID_HET1, 21, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_22    PORT_PIN(DIO_PORT_ID_HET1, 22, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_23    PORT_PIN(DIO_PORT_ID_HET1, 23, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_24    PORT_PIN(DIO_PORT_ID_HET1, 24, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_25    PORT_PIN(DIO_PORT_ID_HET1, 25, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_26    PORT_PIN(DIO_PORT_ID_HET1, 26, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_27    PORT_PIN(DIO_PORT_ID_HET1, 27, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_28    PORT_PIN(DIO_PORT_ID_HET1, 28, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_29    PORT_PIN(DIO_PORT_ID_HET1, 29, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_30    PORT_PIN(DIO_PORT_ID_HET1, 30, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+#define PIN_DSC_NHET1_31    PORT_PIN(DIO_PORT_ID_HET1, 31, PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF)
+
+/**
+ * Array of ports used as GPIO. Thanks to that array, we can
+ * determine port just by index in pin_desc at 5th bit */
+gioPORT_t *dio_port_id_map[DIO_MAX_PORT_CNT] = {
+       ((void *)0),    /* DMM is missing on this target */
+       (gioPORT_t *)gioPORTA,
+       (gioPORT_t *)gioPORTB,
+       (gioPORT_t *)hetPORT1,
+       (gioPORT_t *)hetPORT2
+};
+
+/* Some pins are commented out, because they are pinmuxed with SCI. */
+/**
+ * Map of pin names to pin descriptors. Each pin can be then easily
+ * found just by its name given as a string to hal_gpio_get_pin_dsc
+ * function*/
+dio_pin_map_element_t dio_pin_map[DIO_MAX_PIN_CNT] = {
+       { .pin_name = DIO_PIN_NAME_GIOA0, .pin_desc = PIN_DSC_GIOA0 },
+       { .pin_name = DIO_PIN_NAME_GIOA1, .pin_desc = PIN_DSC_GIOA1 },
+       { .pin_name = DIO_PIN_NAME_GIOA2, .pin_desc = PIN_DSC_GIOA2 },
+       { .pin_name = DIO_PIN_NAME_GIOA3, .pin_desc = PIN_DSC_GIOA3 },
+       { .pin_name = DIO_PIN_NAME_GIOA4, .pin_desc = PIN_DSC_GIOA4 },
+       { .pin_name = DIO_PIN_NAME_GIOA5, .pin_desc = PIN_DSC_GIOA5 },
+       { .pin_name = DIO_PIN_NAME_GIOA6, .pin_desc = PIN_DSC_GIOA6 },
+       { .pin_name = DIO_PIN_NAME_GIOA7, .pin_desc = PIN_DSC_GIOA7 },
+       { .pin_name = DIO_PIN_NAME_GIOB0, .pin_desc = PIN_DSC_GIOB0 },
+       { .pin_name = DIO_PIN_NAME_GIOB1, .pin_desc = PIN_DSC_GIOB1 },
+       { .pin_name = DIO_PIN_NAME_GIOB2, .pin_desc = PIN_DSC_GIOB2 },
+       { .pin_name = DIO_PIN_NAME_GIOB3, .pin_desc = PIN_DSC_GIOB3 },
+       { .pin_name = DIO_PIN_NAME_GIOB4, .pin_desc = PIN_DSC_GIOB4 },
+       { .pin_name = DIO_PIN_NAME_GIOB5, .pin_desc = PIN_DSC_GIOB5 },
+       { .pin_name = DIO_PIN_NAME_GIOB6, .pin_desc = PIN_DSC_GIOB6 },
+       { .pin_name = DIO_PIN_NAME_GIOB7, .pin_desc = PIN_DSC_GIOB7 },
+       { .pin_name = DIO_PIN_NAME_NHET1_0, .pin_desc = PIN_DSC_NHET1_0 },
+       { .pin_name = DIO_PIN_NAME_NHET1_1, .pin_desc = PIN_DSC_NHET1_1 },
+       { .pin_name = DIO_PIN_NAME_NHET1_2, .pin_desc = PIN_DSC_NHET1_2 },
+       { .pin_name = DIO_PIN_NAME_NHET1_3, .pin_desc = PIN_DSC_NHET1_3 },
+       { .pin_name = DIO_PIN_NAME_NHET1_4, .pin_desc = PIN_DSC_NHET1_4 },
+       { .pin_name = DIO_PIN_NAME_NHET1_5, .pin_desc = PIN_DSC_NHET1_5 },
+       /*{ .pin_name = DIO_PIN_NAME_NHET1_6, .pin_desc = PIN_DSC_NHET1_6 },*/
+       { .pin_name = DIO_PIN_NAME_NHET1_7, .pin_desc = PIN_DSC_NHET1_7 },
+       { .pin_name = DIO_PIN_NAME_NHET1_8, .pin_desc = PIN_DSC_NHET1_8 },
+       { .pin_name = DIO_PIN_NAME_NHET1_9, .pin_desc = PIN_DSC_NHET1_9 },
+       { .pin_name = DIO_PIN_NAME_NHET1_10, .pin_desc = PIN_DSC_NHET1_10 },
+       { .pin_name = DIO_PIN_NAME_NHET1_11, .pin_desc = PIN_DSC_NHET1_11 },
+       { .pin_name = DIO_PIN_NAME_NHET1_12, .pin_desc = PIN_DSC_NHET1_12 },
+       /*{ .pin_name = DIO_PIN_NAME_NHET1_13, .pin_desc = PIN_DSC_NHET1_13 },*/
+       { .pin_name = DIO_PIN_NAME_NHET1_14, .pin_desc = PIN_DSC_NHET1_14 },
+       { .pin_name = DIO_PIN_NAME_NHET1_15, .pin_desc = PIN_DSC_NHET1_15 },
+       { .pin_name = DIO_PIN_NAME_NHET1_16, .pin_desc = PIN_DSC_NHET1_16 },
+       { .pin_name = DIO_PIN_NAME_NHET1_17, .pin_desc = PIN_DSC_NHET1_17 },
+       { .pin_name = DIO_PIN_NAME_NHET1_18, .pin_desc = PIN_DSC_NHET1_18 },
+       { .pin_name = DIO_PIN_NAME_NHET1_19, .pin_desc = PIN_DSC_NHET1_19 },
+       { .pin_name = DIO_PIN_NAME_NHET1_20, .pin_desc = PIN_DSC_NHET1_20 },
+       { .pin_name = DIO_PIN_NAME_NHET1_21, .pin_desc = PIN_DSC_NHET1_21 },
+       { .pin_name = DIO_PIN_NAME_NHET1_22, .pin_desc = PIN_DSC_NHET1_22 },
+       { .pin_name = DIO_PIN_NAME_NHET1_23, .pin_desc = PIN_DSC_NHET1_23 },
+       { .pin_name = DIO_PIN_NAME_NHET1_24, .pin_desc = PIN_DSC_NHET1_24 },
+       { .pin_name = DIO_PIN_NAME_NHET1_25, .pin_desc = PIN_DSC_NHET1_25 },
+       { .pin_name = DIO_PIN_NAME_NHET1_26, .pin_desc = PIN_DSC_NHET1_26 },
+       { .pin_name = DIO_PIN_NAME_NHET1_27, .pin_desc = PIN_DSC_NHET1_27 },
+       { .pin_name = DIO_PIN_NAME_NHET1_28, .pin_desc = PIN_DSC_NHET1_28 },
+       { .pin_name = DIO_PIN_NAME_NHET1_29, .pin_desc = PIN_DSC_NHET1_29 },
+       { .pin_name = DIO_PIN_NAME_NHET1_30, .pin_desc = PIN_DSC_NHET1_30 },
+       { .pin_name = DIO_PIN_NAME_NHET1_31, .pin_desc = PIN_DSC_NHET1_31 },
+       /* FIXME: add definitions of all unused pins DMM, HET2, SCI... */
+};
+
+// FIXME Upper layer dependency/coupling
+// Declared in drv/adc.h
+extern uint32_t adc_get_port_val(uint32_t *config, uint32_t num_channels, uint32_t *values);
+
+// Lists of pins assigned to the ports
+static uint32_t port_cfg_gioa[] = {
+               PIN_DSC_GIOA0, PIN_DSC_GIOA1, PIN_DSC_GIOA2, PIN_DSC_GIOA3,
+               PIN_DSC_GIOA4, PIN_DSC_GIOA5, PIN_DSC_GIOA6, PIN_DSC_GIOA7
+};
+static uint32_t port_cfg_giob[] = {
+               PIN_DSC_GIOB0, PIN_DSC_GIOB1, PIN_DSC_GIOB2, PIN_DSC_GIOB3,
+               PIN_DSC_GIOB4, PIN_DSC_GIOB5, PIN_DSC_GIOB6, PIN_DSC_GIOB7
+};
+static uint32_t port_cfg_nhet1[] = {
+               PIN_DSC_NHET1_0, PIN_DSC_NHET1_1, PIN_DSC_NHET1_2,
+               PIN_DSC_NHET1_3, PIN_DSC_NHET1_4, PIN_DSC_NHET1_5,
+               PIN_DSC_NHET1_7, PIN_DSC_NHET1_8, PIN_DSC_NHET1_9,
+               PIN_DSC_NHET1_10, PIN_DSC_NHET1_11, PIN_DSC_NHET1_12,
+               PIN_DSC_NHET1_14, PIN_DSC_NHET1_15, PIN_DSC_NHET1_16,
+               PIN_DSC_NHET1_17, PIN_DSC_NHET1_18, PIN_DSC_NHET1_19,
+               PIN_DSC_NHET1_20, PIN_DSC_NHET1_21, PIN_DSC_NHET1_22,
+               PIN_DSC_NHET1_23, PIN_DSC_NHET1_24, PIN_DSC_NHET1_25,
+               PIN_DSC_NHET1_26, PIN_DSC_NHET1_27, PIN_DSC_NHET1_28,
+               PIN_DSC_NHET1_29, PIN_DSC_NHET1_30, PIN_DSC_NHET1_31
+};
+static uint32_t port_cfg_adc[] = { (uint32_t)adcREG1, adcGROUP1, 1 };
+
+// Port descriptors
+static dio_port_desc_t port_desc_gioa = {
+ .config = port_cfg_gioa,
+ .numValues = 8,
+ .interfaceType = GPIO,
+ .port_getfnc_ptr = &dio_gpio_port_get_val,
+ .port_setfnc_ptr = &dio_gpio_port_set_val,
+};
+static dio_port_desc_t port_desc_giob = {
+ .config = port_cfg_giob,
+ .numValues = 8,
+ .interfaceType = GPIO,
+ .port_getfnc_ptr = &dio_gpio_port_get_val,
+ .port_setfnc_ptr = &dio_gpio_port_set_val,
+};
+static dio_port_desc_t port_desc_nhet1 = {
+ .config = port_cfg_nhet1,
+ .numValues = 30,
+ .interfaceType = GPIO,
+ .port_getfnc_ptr = &dio_gpio_port_get_val,
+ .port_setfnc_ptr = &dio_gpio_port_set_val,
+};
+static dio_port_desc_t port_desc_adc = {
+ .config = port_cfg_adc,
+ .numValues = 16,
+ .interfaceType = ADC,
+ .port_getfnc_ptr = &adc_get_port_val,
+ .port_setfnc_ptr = ((void *)0),
+};
+
+// Maps of port names to port descriptors
+dio_port_def_t dio_port_definition[DIO_PORT_CNT] = {
+       {.name = DIO_PORT_NAME_GIOA,      .desc = &port_desc_gioa},
+       {.name = DIO_PORT_NAME_GIOB,      .desc = &port_desc_giob},
+       {.name = DIO_PORT_NAME_NHET1,    .desc = &port_desc_nhet1},
+       {.name = DIO_PORT_NAME_ADC,      .desc = &port_desc_adc}
+};
diff --git a/rpp/src/drv/_tms570_rpp/digital_io_def.c b/rpp/src/drv/_tms570_rpp/digital_io_def.c
new file mode 100644 (file)
index 0000000..975f234
--- /dev/null
@@ -0,0 +1,386 @@
+/* Copyright (C) 2012-2013 Czech Technical University in Prague
+ *
+ * Authors:
+ *     - Michal Horn <hornmich@fel.cvut.cz>
+ *
+ * This document contains proprietary information belonging to Czech
+ * Technical University in Prague. Passing on and copying of this
+ * document, and communication of its contents is not permitted
+ * without prior written authorization.
+ *
+ * Abstract:
+ *         This file contains gpio pins definitions
+ *
+ *      On TMS570 MCU pins can operates as GIO on ports DMM, GIOA, GIOB,
+ *      HET1 and HET2. Those pins, that are defined in this file, can be
+ *      accessed directly as GPIO by hal_gpio_set_value and
+ *      hal_gpio_get_value. Pin configuration can be modified by functions
+ *      defined in hal_gpio_tms570 source and header files.
+ *
+ *      NOTE: Although the configuration functions are implemented and
+ *      should be ready to use, they were only slightly tested and are not
+ *      used by the RPP software yet.
+ */
+
+#include "drv/_tms570_rpp/digital_io_def.h"
+#include "drv/digital_io.h"
+#include "drv/spi.h"
+#include "drv/_tms570_rpp/adc.h"
+
+
+#define PORT_PIN(p,n,conf)  (((p)<<DIO_PORT_SHIFT) | (n) | (conf))
+
+#define PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_HIGH|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_OUT_LO_PU_PEN_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PU|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON       DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_ON
+#define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODON      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_ON
+#define PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF     DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_OUT_LO_PU_PDIS_ODOFF     DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_OUT|DIO_PORT_CONF_MODE_PU|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_IN_HI_PU_PEN_ODON        DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_HIGH|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PU|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_ON
+#define PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON       DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_HIGH|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PU|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_ON
+#define PORT_CONF_GPIO_IN_LO_PD_PDIS_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF       DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PEN|DIO_PORT_CONF_OD_OFF
+#define PORT_CONF_GPIO_IN_LO_PU_PDIS_ODOFF      DIO_PORT_CONF_FNC_GPIO|DIO_PORT_CONF_INIT_LOW|DIO_PORT_CONF_DIR_IN|DIO_PORT_CONF_MODE_PD|DIO_PORT_CONF_MODE_PDIS|DIO_PORT_CONF_OD_OFF
+
+/* Pins descriptors */
+#define PIN_DSC_FANCTRL     PORT_PIN(DIO_PORT_ID_DMM, 0, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+#define PIN_DSC_ETHRST      PORT_PIN(DIO_PORT_ID_DMM, 1, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+#define PIN_DSC_VBAT1EN     PORT_PIN(DIO_PORT_ID_DMM, 2, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON)
+#define PIN_DSC_VBAT2EN     PORT_PIN(DIO_PORT_ID_DMM, 3, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON)
+#define PIN_DSC_VBAT3EN     PORT_PIN(DIO_PORT_ID_DMM, 4, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON)
+#define PIN_DSC_VBATEN      PORT_PIN(DIO_PORT_ID_DMM, 5, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+#define PIN_DSC_SPICSA      PORT_PIN(DIO_PORT_ID_DMM, 7, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+#define PIN_DSC_SPICSB      PORT_PIN(DIO_PORT_ID_DMM, 8, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+#define PIN_DSC_MOUT1EN     PORT_PIN(DIO_PORT_ID_DMM, 11, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
+#define PIN_DSC_MOUT2EN     PORT_PIN(DIO_PORT_ID_DMM, 12, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
+#define PIN_DSC_CANNSTB     PORT_PIN(DIO_PORT_ID_DMM, 13, PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF)
+#define PIN_DSC_CANEN       PORT_PIN(DIO_PORT_ID_DMM, 15, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+#define PIN_DSC_LIN2NSLP    PORT_PIN(DIO_PORT_ID_DMM, 16, PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF)
+#define PIN_DSC_LIN1NSLP    PORT_PIN(DIO_PORT_ID_DMM, 17, PORT_CONF_GPIO_OUT_HI_PD_PEN_ODOFF)
+#define PIN_DSC_DININT      PORT_PIN(DIO_PORT_ID_DMM, 18, PORT_CONF_GPIO_IN_LO_PD_PDIS_ODOFF)
+#define PIN_DSC_DIN8        PORT_PIN(DIO_PORT_ID_GIOA, 0, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
+#define PIN_DSC_DIN9        PORT_PIN(DIO_PORT_ID_GIOA, 1, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
+#define PIN_DSC_DIN10       PORT_PIN(DIO_PORT_ID_GIOA, 2, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
+#define PIN_DSC_DIN11       PORT_PIN(DIO_PORT_ID_GIOA, 3, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
+#define PIN_DSC_DIN12       PORT_PIN(DIO_PORT_ID_GIOA, 4, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
+#define PIN_DSC_DIN13       PORT_PIN(DIO_PORT_ID_GIOA, 5, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
+#define PIN_DSC_DIN14       PORT_PIN(DIO_PORT_ID_GIOA, 6, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
+#define PIN_DSC_DIN15       PORT_PIN(DIO_PORT_ID_GIOA, 7, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
+#define PIN_DSC_MOUT6EN     PORT_PIN(DIO_PORT_ID_GIOB, 0, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
+#define PIN_DSC_MOUT5EN     PORT_PIN(DIO_PORT_ID_GIOB, 1, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
+#define PIN_DSC_MOUT6IN     PORT_PIN(DIO_PORT_ID_GIOB, 2, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
+#define PIN_DSC_MOUT5IN     PORT_PIN(DIO_PORT_ID_GIOB, 3, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
+#define PIN_DSC_MOUT4EN     PORT_PIN(DIO_PORT_ID_GIOB, 4, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
+#define PIN_DSC_MOUT3EN     PORT_PIN(DIO_PORT_ID_GIOB, 5, PORT_CONF_GPIO_IN_HI_PU_PDIS_ODON)
+#define PIN_DSC_MOUT4IN     PORT_PIN(DIO_PORT_ID_GIOB, 6, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
+#define PIN_DSC_MOUT3IN     PORT_PIN(DIO_PORT_ID_GIOB, 7, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
+#define PIN_DSC_HBREN       PORT_PIN(DIO_PORT_ID_HET1, 1, PORT_CONF_GPIO_OUT_LO_PU_PDIS_ODOFF)
+#define PIN_DSC_HBRDIR      PORT_PIN(DIO_PORT_ID_HET1, 4, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON)
+#define PIN_DSC_HBRPWM      PORT_PIN(DIO_PORT_ID_HET1, 7, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODON)
+#define PIN_DSC_MOUT1IN     PORT_PIN(DIO_PORT_ID_HET1, 9, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
+#define PIN_DSC_MOUT2IN     PORT_PIN(DIO_PORT_ID_HET1, 14, PORT_CONF_GPIO_OUT_LO_PD_PDIS_ODOFF)
+#define PIN_DSC_HOUT1IN     PORT_PIN(DIO_PORT_ID_HET1, 16, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+#define PIN_DSC_HOUT1DIAG   PORT_PIN(DIO_PORT_ID_HET1, 17, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
+#define PIN_DSC_HOUT2IN     PORT_PIN(DIO_PORT_ID_HET1, 18, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+#define PIN_DSC_HOUT2DIAG   PORT_PIN(DIO_PORT_ID_HET1, 19, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
+#define PIN_DSC_HOUT3IN     PORT_PIN(DIO_PORT_ID_HET1, 20, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+#define PIN_DSC_HOUT3DIAG   PORT_PIN(DIO_PORT_ID_HET1, 21, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
+#define PIN_DSC_HOUT4IN     PORT_PIN(DIO_PORT_ID_HET1, 22, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+#define PIN_DSC_HOUT4DIAG   PORT_PIN(DIO_PORT_ID_HET1, 23, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
+#define PIN_DSC_HOUT5IN     PORT_PIN(DIO_PORT_ID_HET1, 25, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+#define PIN_DSC_HOUT5DIAG   PORT_PIN(DIO_PORT_ID_HET1, 27, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
+#define PIN_DSC_HOUT6IN     PORT_PIN(DIO_PORT_ID_HET1, 29, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+#define PIN_DSC_HOUT6DIAG   PORT_PIN(DIO_PORT_ID_HET1, 31, PORT_CONF_GPIO_IN_LO_PD_PEN_ODOFF)
+#define PIN_DSC_DMM_UNUSED(b)   PORT_PIN(DIO_PORT_ID_HET2, b, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+#define PIN_DSC_GIOA_UNUSED(b)   PORT_PIN(DIO_PORT_ID_HET2, b, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+#define PIN_DSC_GIOB_UNUSED(b) PORT_PIN(DIO_PORT_ID_HET2, b, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+#define PIN_DSC_HET1_UNUSED(b) PORT_PIN(DIO_PORT_ID_HET2, b, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+#define PIN_DSC_HET2_UNUSED(b) PORT_PIN(DIO_PORT_ID_HET2, b, PORT_CONF_GPIO_OUT_LO_PD_PEN_ODOFF)
+
+/**
+ * Array of ports used as GPIO. Thanks to that array, we can
+ * determine port just by index in pin_desc at 5th bit */
+gioPORT_t *dio_port_id_map[DIO_MAX_PORT_CNT] = {
+       (gioPORT_t *)dmmPORT,
+       (gioPORT_t *)gioPORTA,
+       (gioPORT_t *)gioPORTB,
+       (gioPORT_t *)hetPORT1,
+       (gioPORT_t *)hetPORT2
+};
+
+/**
+ * Map of pin names to pin descriptors. Each pin can be then easily
+ * found just by its name given as a string to hal_gpio_get_pin_dsc
+ * function*/
+dio_pin_map_element_t dio_pin_map[DIO_MAX_PIN_CNT] = {
+       /* DMM pins */
+       { .pin_name = DIO_PIN_NAME_FANCTRL, .pin_desc = PIN_DSC_FANCTRL },
+       { .pin_name = DIO_PIN_NAME_ETHRST,  .pin_desc = PIN_DSC_ETHRST },
+       { .pin_name = DIO_PIN_NAME_VBAT1EN, .pin_desc = PIN_DSC_VBAT1EN },
+       { .pin_name = DIO_PIN_NAME_VBAT2EN, .pin_desc = PIN_DSC_VBAT2EN },
+       { .pin_name = DIO_PIN_NAME_VBAT3EN, .pin_desc = PIN_DSC_VBAT3EN },
+       { .pin_name = DIO_PIN_NAME_VBATEN,  .pin_desc = PIN_DSC_VBATEN },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_DMM_UNUSED(6) },
+       { .pin_name = DIO_PIN_NAME_SPICSA,  .pin_desc = PIN_DSC_SPICSA },
+       { .pin_name = DIO_PIN_NAME_SPICSB,  .pin_desc = PIN_DSC_SPICSB },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_DMM_UNUSED(9)},
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_DMM_UNUSED(10) },
+       { .pin_name = DIO_PIN_NAME_MOUT1EN, .pin_desc = PIN_DSC_MOUT1EN },
+       { .pin_name = DIO_PIN_NAME_MOUT2EN, .pin_desc = PIN_DSC_MOUT2EN },
+       { .pin_name = DIO_PIN_NAME_CANNSTB, .pin_desc = PIN_DSC_CANNSTB },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_DMM_UNUSED(14) },
+       { .pin_name = DIO_PIN_NAME_CANEN,   .pin_desc = PIN_DSC_CANEN },
+       { .pin_name = DIO_PIN_NAME_LIN2NSLP,.pin_desc = PIN_DSC_LIN2NSLP },
+       { .pin_name = DIO_PIN_NAME_LIN1NSLP,.pin_desc = PIN_DSC_LIN1NSLP },
+       { .pin_name = DIO_PIN_NAME_DININT,  .pin_desc = PIN_DSC_DININT },
+       /* GIOA pins */
+       { .pin_name = DIO_PIN_NAME_DIN8,    .pin_desc = PIN_DSC_DIN8 },
+       { .pin_name = DIO_PIN_NAME_DIN9,    .pin_desc = PIN_DSC_DIN9 },
+       { .pin_name = DIO_PIN_NAME_DIN10,   .pin_desc = PIN_DSC_DIN10 },
+       { .pin_name = DIO_PIN_NAME_DIN11,   .pin_desc = PIN_DSC_DIN11 },
+       { .pin_name = DIO_PIN_NAME_DIN12,   .pin_desc = PIN_DSC_DIN12 },
+       { .pin_name = DIO_PIN_NAME_DIN13,   .pin_desc = PIN_DSC_DIN13 },
+       { .pin_name = DIO_PIN_NAME_DIN14,   .pin_desc = PIN_DSC_DIN14 },
+       { .pin_name = DIO_PIN_NAME_DIN15,   .pin_desc = PIN_DSC_DIN15 },
+       /* GIOB pins */
+       { .pin_name = DIO_PIN_NAME_MOUT6EN, .pin_desc = PIN_DSC_MOUT6EN },
+       { .pin_name = DIO_PIN_NAME_MOUT5EN, .pin_desc = PIN_DSC_MOUT5EN },
+       { .pin_name = DIO_PIN_NAME_MOUT6IN, .pin_desc = PIN_DSC_MOUT6IN },
+       { .pin_name = DIO_PIN_NAME_MOUT5IN, .pin_desc = PIN_DSC_MOUT5IN },
+       { .pin_name = DIO_PIN_NAME_MOUT4EN, .pin_desc = PIN_DSC_MOUT4EN },
+       { .pin_name = DIO_PIN_NAME_MOUT3EN, .pin_desc = PIN_DSC_MOUT3EN },
+       { .pin_name = DIO_PIN_NAME_MOUT4IN, .pin_desc = PIN_DSC_MOUT4IN },
+       { .pin_name = DIO_PIN_NAME_MOUT3IN, .pin_desc = PIN_DSC_MOUT3IN },
+       /* HET1 pins */
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(0) },
+       { .pin_name = DIO_PIN_NAME_HBREN,    .pin_desc = PIN_DSC_HBREN },
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(2) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(3) },
+       { .pin_name = DIO_PIN_NAME_HBRDIR,   .pin_desc = PIN_DSC_HBRDIR },
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(5) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(6) },
+       { .pin_name = DIO_PIN_NAME_HBRPWM,   .pin_desc = PIN_DSC_HBRPWM },
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(8) },
+       { .pin_name = DIO_PIN_NAME_MOUT1IN,  .pin_desc = PIN_DSC_MOUT1IN },
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(10) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(11) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(12) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(13) },
+       { .pin_name = DIO_PIN_NAME_MOUT2IN,  .pin_desc = PIN_DSC_MOUT2IN },
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(15) },
+       { .pin_name = DIO_PIN_NAME_HOUT1IN,  .pin_desc = PIN_DSC_HOUT1IN },
+       { .pin_name = DIO_PIN_NAME_HOUT1DIAG,.pin_desc = PIN_DSC_HOUT1DIAG },
+       { .pin_name = DIO_PIN_NAME_HOUT2IN,  .pin_desc = PIN_DSC_HOUT2IN },
+       { .pin_name = DIO_PIN_NAME_HOUT2DIAG,.pin_desc = PIN_DSC_HOUT2DIAG },
+       { .pin_name = DIO_PIN_NAME_HOUT3IN,  .pin_desc = PIN_DSC_HOUT3IN },
+       { .pin_name = DIO_PIN_NAME_HOUT3DIAG,.pin_desc = PIN_DSC_HOUT3DIAG },
+       { .pin_name = DIO_PIN_NAME_HOUT4IN,  .pin_desc = PIN_DSC_HOUT4IN },
+       { .pin_name = DIO_PIN_NAME_HOUT4DIAG,.pin_desc = PIN_DSC_HOUT4DIAG },
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(22) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(23) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(24) },
+       { .pin_name = DIO_PIN_NAME_HOUT5IN,  .pin_desc = PIN_DSC_HOUT5IN },
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(26) },
+       { .pin_name = DIO_PIN_NAME_HOUT5DIAG,.pin_desc = PIN_DSC_HOUT5DIAG },
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(28) },
+       { .pin_name = DIO_PIN_NAME_HOUT6IN,  .pin_desc = PIN_DSC_HOUT6IN },
+       { .pin_name = DIO_PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(30) },
+       { .pin_name = DIO_PIN_NAME_HOUT6DIAG,.pin_desc = PIN_DSC_HOUT6DIAG },
+       /* HET2 pins */
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(0) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(1) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(2) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(3) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(4) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(5) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(6) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(7) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(8) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(9) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(10) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(11) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(12) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(13) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(14) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(15) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(16) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(17) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(18) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(19) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(20) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(21) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(22) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(23) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(24) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(25) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(26) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(27) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(28) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(29) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(30) },
+       { .pin_name = DIO_PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(31) }
+};
+
+// FIXME Upper layer dependency/coupling
+// Declared in drv/adc.h
+extern uint32_t adc_get_port_val(uint32_t *config, uint32_t num_channels, uint32_t *values);
+
+
+// Lists of pins assigned to the ports
+static uint32_t port_cfg_dinmcu[] = {
+               PIN_DSC_DIN8, PIN_DSC_DIN9, PIN_DSC_DIN10, PIN_DSC_DIN11,
+               PIN_DSC_DIN12, PIN_DSC_DIN13, PIN_DSC_DIN14, PIN_DSC_DIN15
+};
+static uint32_t port_cfg_dinspi[] = { 1, 0 };
+static uint32_t port_cfg_houtdiag[] = {
+               PIN_DSC_HOUT1DIAG, PIN_DSC_HOUT2DIAG, PIN_DSC_HOUT3DIAG,
+               PIN_DSC_HOUT4DIAG, PIN_DSC_HOUT5DIAG, PIN_DSC_HOUT6DIAG
+};
+static uint32_t port_cfg_houtin[] = {
+               PIN_DSC_HOUT1IN, PIN_DSC_HOUT2IN, PIN_DSC_HOUT3IN,
+               PIN_DSC_HOUT4IN, PIN_DSC_HOUT5IN, PIN_DSC_HOUT6IN
+};
+static uint32_t port_cfg_houtifbk[] = { (uint32_t)adcREG2, adcGROUP1, 0 };
+static uint32_t port_cfg_adc[] = { (uint32_t)adcREG1, adcGROUP1, 1 };
+static uint32_t port_cfg_lout[] = { 1, 1 };
+static uint32_t port_cfg_dac1_2[] = { 3, 0 };
+static uint32_t port_cfg_dac3_4[] = { 3, 1 };
+static uint32_t port_cfg_dacdref[] = { 3, 2 };
+static uint32_t port_cfg_hbr[] = { 4, 0 };
+static uint32_t port_cfg_fray1[] = { 4, 1 };
+static uint32_t port_cfg_fray2[] = { 4, 2 };
+static uint32_t port_cfg_mouten[] = {
+               PIN_DSC_MOUT1EN, PIN_DSC_MOUT2EN, PIN_DSC_MOUT3EN,
+               PIN_DSC_MOUT4EN, PIN_DSC_MOUT5EN, PIN_DSC_MOUT6EN
+};
+static uint32_t port_cfg_moutin[] = {
+               PIN_DSC_MOUT1IN, PIN_DSC_MOUT2IN, PIN_DSC_MOUT3IN,
+               PIN_DSC_MOUT4IN, PIN_DSC_MOUT5IN, PIN_DSC_MOUT6IN
+};
+
+// Port descriptors
+static dio_port_desc_t port_desc_dinmcu = {
+ .config = port_cfg_dinmcu,
+ .numValues = 8,
+ .interfaceType = GPIO,
+ .port_getfnc_ptr = &dio_gpio_port_get_val,
+ .port_setfnc_ptr = ((void *)0),
+};
+static dio_port_desc_t port_desc_dinspi = {
+ .config = port_cfg_dinspi,
+ .numValues = 3,
+ .interfaceType = SPI,
+ .port_getfnc_ptr = ((void *)0),
+ .port_setfnc_ptr = &dio_spi_port_transfer_command,
+};
+static dio_port_desc_t port_desc_houtdiag = {
+ .config = port_cfg_houtdiag,
+ .numValues = 6,
+ .interfaceType = GPIO,
+ .port_getfnc_ptr = &dio_gpio_port_get_val,
+ .port_setfnc_ptr = ((void *)0),
+};
+static dio_port_desc_t port_desc_houtin = {
+ .config = port_cfg_houtin,
+ .numValues = 6,
+ .interfaceType = GPIO,
+ .port_getfnc_ptr = &dio_gpio_port_get_val,
+ .port_setfnc_ptr = &dio_gpio_port_set_val,
+};
+static dio_port_desc_t port_desc_houtifbk = {
+ .config = port_cfg_houtifbk,
+ .numValues = 6,
+ .interfaceType = ADC,
+ .port_getfnc_ptr = &adc_get_port_val,
+ .port_setfnc_ptr = ((void *)0),
+};
+static dio_port_desc_t port_desc_adc = {
+ .config = port_cfg_adc,
+ .numValues = 12,
+ .interfaceType = ADC,
+ .port_getfnc_ptr = &adc_get_port_val,
+ .port_setfnc_ptr = ((void *)0),
+};
+static dio_port_desc_t port_desc_lout = {
+ .config = port_cfg_lout,
+ .numValues = 4,
+ .interfaceType = SPI,
+ .port_getfnc_ptr = ((void *)0),
+ .port_setfnc_ptr = &dio_spi_port_transfer_command,
+};
+static dio_port_desc_t port_desc_dac1_2 = {
+ .config = port_cfg_dac1_2,
+ .numValues = 2,
+ .interfaceType = SPI,
+ .port_getfnc_ptr = ((void *)0),
+ .port_setfnc_ptr = &dio_spi_port_transfer_command,
+};
+static dio_port_desc_t port_desc_dac3_4 = {
+ .config = port_cfg_dac3_4,
+ .numValues = 2,
+ .interfaceType = SPI,
+ .port_getfnc_ptr = ((void *)0),
+ .port_setfnc_ptr = &dio_spi_port_transfer_command,
+};
+static dio_port_desc_t port_desc_dacdref = {
+ .config = port_cfg_dacdref,
+ .numValues = 2,
+ .interfaceType = SPI,
+ .port_getfnc_ptr = ((void *)0),
+ .port_setfnc_ptr = &dio_spi_port_transfer_command,
+};
+static dio_port_desc_t port_desc_hbr = {
+ .config = port_cfg_hbr,
+ .numValues = 2,
+ .interfaceType = SPI,
+ .port_getfnc_ptr = ((void *)0),
+ .port_setfnc_ptr = &dio_spi_port_transfer_command,
+};
+static dio_port_desc_t port_desc_fray1 = {
+ .config = port_cfg_fray1,
+ .numValues = 2,
+ .interfaceType = SPI,
+ .port_getfnc_ptr = ((void *)0),
+ .port_setfnc_ptr = &dio_spi_port_transfer_command,
+};
+static dio_port_desc_t port_desc_fray2 = {
+ .config = port_cfg_fray2,
+ .numValues = 2,
+ .interfaceType = SPI,
+ .port_getfnc_ptr = ((void *)0),
+ .port_setfnc_ptr = &dio_spi_port_transfer_command,
+};
+static dio_port_desc_t port_desc_mouten = {
+ .config = port_cfg_mouten,
+ .numValues = 6,
+ .interfaceType = GPIO,
+ .port_getfnc_ptr = &dio_gpio_port_get_val,
+ .port_setfnc_ptr = ((void *)0),
+};
+static dio_port_desc_t port_desc_moutin = {
+ .config = port_cfg_moutin,
+ .numValues = 6,
+ .interfaceType = GPIO,
+ .port_getfnc_ptr = &dio_gpio_port_get_val,
+ .port_setfnc_ptr = &dio_gpio_port_set_val,
+};
+
+// Maps of port names to port descriptors
+dio_port_def_t dio_port_definition[DIO_PORT_CNT] = {
+       {.name = DIO_PORT_NAME_DINMCU,      .desc = &port_desc_dinmcu},
+       {.name = DIO_PORT_NAME_DINSPI,      .desc = &port_desc_dinspi},
+       {.name = DIO_PORT_NAME_HOUTDIAG,    .desc = &port_desc_houtdiag},
+       {.name = DIO_PORT_NAME_HOUTIN,      .desc = &port_desc_houtin},
+       {.name = DIO_PORT_NAME_HOUTIFBK,    .desc = &port_desc_houtifbk},
+       {.name = DIO_PORT_NAME_ADC,         .desc = &port_desc_adc},
+       {.name = DIO_PORT_NAME_LOUT,        .desc = &port_desc_lout},
+       {.name = DIO_PORT_NAME_DAC1_2,      .desc = &port_desc_dac1_2},
+       {.name = DIO_PORT_NAME_DAC3_4,      .desc = &port_desc_dac3_4},
+       {.name = DIO_PORT_NAME_DACDREF,     .desc = &port_desc_dacdref},
+       {.name = DIO_PORT_NAME_HBR,         .desc = &port_desc_hbr},
+       {.name = DIO_PORT_NAME_FRAY1,       .desc = &port_desc_fray1},
+       {.name = DIO_PORT_NAME_FRAY2,       .desc = &port_desc_fray2},
+       {.name = DIO_PORT_NAME_MOUTEN,      .desc = &port_desc_mouten},
+       {.name = DIO_PORT_NAME_MOUTIN,      .desc = &port_desc_moutin}
+};
index 4a01fdd9fe0847477c11a34991748aabfa211bc5..c2a4d2c38b2996a69da53ca4139c1e4812240c05 100644 (file)
@@ -44,10 +44,10 @@ static uint16_t dac_pin_status[DAC_PIN_NUM] = {
  * Port names for each DAC port, to be easily accessible by indexing
  */
 const char *dac_port_names[DAC_PIN_NUM] = {
-       PORT_NAME_DAC1_2,
-       PORT_NAME_DAC1_2,
-       PORT_NAME_DAC3_4,
-       PORT_NAME_DAC3_4
+       DIO_PORT_NAME_DAC1_2,
+       DIO_PORT_NAME_DAC1_2,
+       DIO_PORT_NAME_DAC3_4,
+       DIO_PORT_NAME_DAC3_4
 };
 
 /**
@@ -84,8 +84,8 @@ int drv_dac_spi_transfer(uint8_t pin, boolean_t enabled, uint16_t value)
        dac_spi_cmd = dac_pin_status[pin];
        dac_spi_cmd_sh = dac_spi_cmd;
        //--
-       port_desc_t *desc;
-       desc = hal_port_get_dsc(dac_port_names[pin], -1);
+       dio_port_desc_t *desc;
+       desc = dio_port_get_dsc(dac_port_names[pin], -1);
        commands[0] = (dac_spi_cmd_sh & 0xFF00) >> 8;
        commands[1] = (dac_spi_cmd_sh & 0xFF);
 
diff --git a/rpp/src/drv/digital_io.c b/rpp/src/drv/digital_io.c
new file mode 100644 (file)
index 0000000..ab07d2a
--- /dev/null
@@ -0,0 +1,225 @@
+/*
+ * digital_io.c
+ *
+ *  Created on: 17.7.2015
+ *      Author: michal
+ */
+
+#include "drv/digital_io.h"
+#include "drv/spi.h"
+
+extern gioPORT_t *dio_port_id_map[DIO_MAX_PORT_CNT];
+extern dio_pin_map_element_t dio_pin_map[DIO_MAX_PIN_CNT];
+extern dio_port_def_t dio_port_definition[DIO_PORT_CNT];
+
+#define SPI_PORT_BUF_LEN 4
+/** Buffer for spi command to be sent */
+uint8_t spi_port_buf_tx[SPI_PORT_BUF_LEN];
+/** Buffer for spi response */
+uint8_t spi_port_buf_rx[SPI_PORT_BUF_LEN];
+
+uint8_t dio_gpio_get_pin_cnt() {
+       return DIO_MAX_PIN_CNT;
+}
+
+dio_pin_map_element_t* dio_gpio_get_pin_map() {
+       return dio_pin_map;
+}
+
+gioPORT_t *dio_gpio_get_port_base(uint32_t port_num)
+{
+       return dio_port_id_map[port_num];
+}
+
+uint32_t dio_gpio_pin_get_port_num(uint32_t pin_dsc)
+{
+
+       return (pin_dsc & ~DIO_PORT_CONF_MASK) >> DIO_PORT_SHIFT;
+}
+
+gioPORT_t *dio_gpio_pin_get_port_base(uint32_t pin_dsc)
+{
+       return dio_gpio_get_port_base(dio_gpio_pin_get_port_num(pin_dsc));
+}
+
+
+uint32_t *dio_gpio_pin_get_dsc(const char *pin_name, int len)
+{
+       uint32_t i;
+       const char *pin_name_ptr;
+       char pin_name_term[32];
+
+       if (len != -1) {    // pin name not terminated by '\0'
+               strncpy(pin_name_term, pin_name, len);
+               pin_name_term[len] = '\0';
+               pin_name_ptr = pin_name_term;
+       }
+       else pin_name_ptr = pin_name;
+
+       for (i = 0; i < DIO_MAX_PIN_CNT; i++) {
+               if (strcmp(pin_name_ptr, dio_pin_map[i].pin_name) == 0)
+                       return &dio_pin_map[i].pin_desc;
+       }
+       return NULL;
+}
+
+
+uint32_t dio_gpio_pin_get_value(uint32_t pin_dsc)
+{
+       return ((dio_gpio_pin_get_port_base(pin_dsc)->DIN) >> (pin_dsc & 0x1f)) & 1;
+}
+
+
+void dio_gpio_pin_set_value(uint32_t pin_dsc, uint32_t value)
+{
+       if (value)
+               dio_gpio_pin_get_port_base(pin_dsc)->DSET = 1 << (pin_dsc & 0x1f);
+       else
+               dio_gpio_pin_get_port_base(pin_dsc)->DCLR = 1 << (pin_dsc & 0x1f);
+}
+
+
+int dio_gpio_pin_set_dir_in(uint32_t pin_dsc)
+{
+       dio_gpio_pin_get_port_base(pin_dsc)->DIR &= ~(1 << (pin_dsc & 0x1f));
+       return 0;
+}
+
+int dio_gpio_pin_set_dir_out(uint32_t pin_dsc, uint32_t value)
+{
+       dio_gpio_pin_set_value(pin_dsc, value);
+       dio_gpio_pin_get_port_base(pin_dsc)->DIR |= (1 << (pin_dsc & 0x1f));
+       return 0;
+}
+
+int dio_gpio_pin_get_dir(uint32_t pin_dsc)
+{
+       return (dio_gpio_pin_get_port_base(pin_dsc)->DIR >> (pin_dsc & 0x1f)) & 1;
+}
+
+
+uint32_t dio_gpio_pin_set_mode(uint32_t pin_dsc, uint32_t mode)
+{
+       gioPORT_t *gioPort = dio_gpio_pin_get_port_base(pin_dsc);
+
+       if (mode & DIO_PORT_CONF_MODE_PTYPE_MASK)
+               gioPort->PSL |= (1 << (pin_dsc & 0x1f));
+       else
+               gioPort->PSL &= ~(1 << (pin_dsc & 0x1f));
+       if (mode & DIO_PORT_CONF_MODE_PEN_MASK)
+               gioPort->PULDIS |= (1 << (pin_dsc & 0x1f));
+       else
+               gioPort->PULDIS &= ~(1 << (pin_dsc & 0x1f));
+       return 0;
+}
+
+
+uint32_t dio_gpio_pin_set_od(uint32_t pin_dsc, uint32_t od)
+{
+       gioPORT_t *gioPort = dio_gpio_pin_get_port_base(pin_dsc);
+
+       if (od & DIO_PORT_CONF_OD_ON)
+               gioPort->PDR |= (1 << (pin_dsc & 0x1f));
+       else
+               gioPort->PDR &= ~(1 << (pin_dsc & 0x1f));
+       return 0;
+}
+
+
+uint32_t dio_gpio_pin_set_config(uint32_t pin_dsc, uint32_t conf)
+{
+       pin_dsc &= ~DIO_PORT_CONF_MASK;
+       dio_gpio_pin_set_mode(pin_dsc, conf & DIO_PORT_CONF_MODE_MASK);
+       dio_gpio_pin_set_od(pin_dsc, conf & DIO_PORT_CONF_OD_MASK);
+       if (conf & DIO_PORT_CONF_SET_DIR) {
+               if ((conf & DIO_PORT_CONF_DIR_MASK) == (DIO_PORT_CONF_DIR_IN & DIO_PORT_CONF_DIR_MASK))
+                       dio_gpio_pin_set_dir_in(pin_dsc);
+               else
+                       dio_gpio_pin_set_dir_out(pin_dsc, conf & DIO_PORT_CONF_INIT_HIGH);
+       }
+
+       return 0;
+}
+
+uint32_t dio_gpio_pin_configure(uint32_t pin_dsc)
+{
+       return dio_gpio_pin_set_config(pin_dsc, pin_dsc);
+}
+
+
+uint32_t dio_gpio_port_get_val(uint32_t *config, uint32_t num_val, uint32_t *values)
+{
+       uint32_t i;
+
+       for (i = 0; i < num_val; i++) {
+               values[i] = dio_gpio_pin_get_value(config[i]);
+       }
+       return 0;
+}
+
+uint32_t dio_gpio_port_set_val(uint32_t *config, uint32_t num_val, const uint32_t *values)
+{
+       uint32_t i;
+
+       for (i = 0; i < num_val; i++) {
+               dio_gpio_pin_set_value(config[i], (values[i/8] >> i%8) & 0x1);
+       }
+       return 0;
+}
+
+const dio_port_def_t *dio_port_get_map()
+{
+       return (const dio_port_def_t *)dio_port_definition;
+}
+
+dio_port_desc_t *dio_port_get_dsc(const char *port_name, int len)
+{
+       uint32_t i;
+       const char *port_name_ptr;
+       char port_name_term[32];
+
+       if (len != -1) {    // port name not terminated by '\0'
+               strncpy(port_name_term, port_name, len);
+               port_name_term[len] = '\0';
+               port_name_ptr = port_name_term;
+       }
+       else port_name_ptr = port_name;
+
+       for (i = 0; i < DIO_PORT_CNT; i++) {
+               if (strcmp(port_name_ptr, dio_port_definition[i].name) == 0)
+                       return dio_port_definition[i].desc;
+       }
+       return NULL;
+}
+
+uint32_t dio_port_get_val_cnt(const dio_port_desc_t* port_desc) {
+       if (port_desc != NULL) {
+               return port_desc->numValues;
+       }
+       else {
+               return 0;
+       }
+}
+
+uint32_t dio_spi_port_transfer_command(uint32_t *config, uint32_t num_bytes, const uint32_t *commands)
+{
+       spi_drv_t *ifc;
+       int i;
+       uint32_t ret;
+
+       for (i = 0; i < num_bytes; i++)
+               spi_port_buf_tx[i] = commands[i];
+
+       ifc = spi_find_drv(NULL, config[0]);
+       if (ifc == NULL)
+               return 0;
+
+       if (!(ifc->flags & SPI_IFC_ON))
+               return 0;
+
+       spi_transfer(ifc, config[1], num_bytes, spi_port_buf_tx, spi_port_buf_rx);
+       ret = 0;
+       for (i = 0; i < num_bytes; i++)
+               ret |= spi_port_buf_rx[i] << i*8;
+       return ret;
+}
index b824d5aff9a810dba1e6b08889bd63d2f4bcb4a2..ccdafb23548e3248503fe90a8fc5ef4d06f9d760 100644 (file)
@@ -38,19 +38,6 @@ static uint32_t din_spi_resp = 0;
 /** Store commands in shadow registers */
 static uint16_t shadow_reg_list[DIN_NUM_SPI_CMD];
 
-
-const static uint32_t dsc_pin_map[8U] = {
-       PIN_DSC_DIN8,
-       PIN_DSC_DIN9,
-       PIN_DSC_DIN10,
-       PIN_DSC_DIN11,
-       PIN_DSC_DIN12,
-       PIN_DSC_DIN13,
-       PIN_DSC_DIN14,
-       PIN_DSC_DIN15
-};
-
-
 /******************************************************************************
 *   Function Prototypes
 ******************************************************************************/
@@ -111,7 +98,7 @@ int8_t drv_din_ref(uint16_t ref_a, uint16_t ref_b)
 
        // Get descriptor
        uint32_t commands[2];
-       port_desc_t *desc = hal_port_get_dsc(PORT_NAME_DACDREF, -1);
+       dio_port_desc_t *desc = dio_port_get_dsc(DIO_PORT_NAME_DACDREF, -1);
 
        // Send command for DAC A
        cmd = DACA_INIT_VAL | (ref_a & 0x0FFF);
@@ -139,7 +126,11 @@ int8_t drv_din_get_varthr(uint8_t pin)
        if ((pin < 8) || (pin > 15))
                return FAILURE;
 
-       return hal_gpio_pin_get_value(dsc_pin_map[pin - 8]);
+       dio_port_desc_t* port = dio_port_get_dsc(DIO_PORT_NAME_DINMCU, -1);
+       if (pin-8 >= port->numValues)
+               return FAILURE;
+
+       return dio_gpio_pin_get_value(port->config[pin - 8]);
 }
 
 uint16_t din_get_val_word()
@@ -180,9 +171,9 @@ int din_spi_response()
  */
 int din_spi_transfer_mst(const uint32_t din_spi_cmd)
 {
-       port_desc_t *desc;
+       dio_port_desc_t *desc;
 
-       desc = hal_port_get_dsc(PORT_NAME_DINSPI, -1);
+       desc = dio_port_get_dsc(DIO_PORT_NAME_DINSPI, -1);
        uint32_t commands[3];
        commands[0] = (din_spi_cmd & 0xFF0000) >> 16;   // command
        commands[1] = (din_spi_cmd & 0xFF00) >> 8;      // 1.st B of data
index eb75c9389087db596b9287c962a78723632b2e07..b5be0ebbc578f23e2a62d6cac5c1ff96ad5cef92 100644 (file)
@@ -17,7 +17,7 @@
 #include "drv/drv.h"
 #include "sys/ti_drv_fray.h"
 #include "binary.h"
-#include "hal/hal.h"
+#include "drv/digital_io.h"
 
 /**
  * The structure maps a RX/TX buffer to a slot in the communication cycle.
@@ -48,7 +48,7 @@ static uint32_t fray_spi_cmd_sh;
 /** Array of responses for each fray driver */
 static uint32_t fray_spi_resp[FRAY_NUM_PORTS];
 /** Array of port names to be easily accessible by indexing */
-static const char *fray_port_names[FRAY_NUM_PORTS] = { PORT_NAME_FRAY1, PORT_NAME_FRAY2 };
+static const char *fray_port_names[FRAY_NUM_PORTS] = { DIO_PORT_NAME_FRAY1, DIO_PORT_NAME_FRAY2 };
 /** Array of integers, where FlexRay cluster and node configuration
  * parameters are stored to be accessible by indexes defined in Fr_GeneralTypes.h.
  */
@@ -2198,10 +2198,10 @@ Std_ReturnType Fr_ReadCCConfig( uint8_t Fr_CtrlIdx, uint8_t Fr_ConfigParamIdx, u
 int Fr_spi_transfer(uint8_t port)
 {
        uint32_t commands[2];
-       port_desc_t *desc;
+       dio_port_desc_t *desc;
 
        if (port > FRAY_NUM_PORTS) return -1;
-       desc = hal_port_get_dsc(fray_port_names[port], -1);
+       desc = dio_port_get_dsc(fray_port_names[port], -1);
        fray_spi_cmd_sh = fray_spi_cmd;
        commands[0] = (fray_spi_cmd_sh & 0xFF00) >> 8;
        commands[1] = (fray_spi_cmd_sh & 0xFF);
index e4236a18c0b5330402e4ffc8851c6c2470a9ebdb..36d0552869c944392f5ca0eb9b5cfdd93ecb858a 100644 (file)
@@ -277,7 +277,7 @@ double drv_hbr_pwm_get_period()
  */
 void drv_hbr_set_dir(int direction)
 {
-       hal_gpio_pin_set_value(PIN_DSC_HBRDIR, direction);
+       dio_gpio_pin_set_value(*dio_gpio_pin_get_dsc(DIO_PIN_NAME_HBRDIR, -1), direction);
 }
 
 /**
@@ -287,7 +287,7 @@ void drv_hbr_set_dir(int direction)
  */
 int drv_hbr_get_dir()
 {
-       return hal_gpio_pin_get_value(PIN_DSC_HBRDIR);
+       return dio_gpio_pin_get_value(*dio_gpio_pin_get_dsc(DIO_PIN_NAME_HBRDIR, -1));
 }
 
 /**
@@ -297,7 +297,7 @@ int drv_hbr_get_dir()
  */
 void drv_hbr_set_en(int value)
 {
-       hal_gpio_pin_set_value(PIN_DSC_HBREN, value);
+       dio_gpio_pin_set_value(*dio_gpio_pin_get_dsc(DIO_PIN_NAME_HBREN, -1), value);
 }
 
 /**
@@ -307,5 +307,5 @@ void drv_hbr_set_en(int value)
  */
 int drv_hbr_get_en()
 {
-       return hal_gpio_pin_get_value(PIN_DSC_HBREN);
+       return dio_gpio_pin_get_value(*dio_gpio_pin_get_dsc(DIO_PIN_NAME_HBREN, -1));
 }
index 80bad2e4688998477a391ffabf31aa6d2dce83b5..ebf052531e850ddecae5174444a0bc03989da327 100644 (file)
 #define HOUT_PWM_INITIALIZED    0x1
 #define HOUT_PWM_RUNNING        0x100
 
-/** Map of hout_in pin descriptors to their index **/
-static uint32_t hout_pin_in_descs[] = {PIN_DSC_HOUT1IN, PIN_DSC_HOUT2IN, PIN_DSC_HOUT3IN, PIN_DSC_HOUT4IN, PIN_DSC_HOUT5IN, PIN_DSC_HOUT6IN};
-/** Map of hout_diag pin descriptors to their index **/
-static uint32_t hout_pin_diag_descs[] = {PIN_DSC_HOUT1DIAG, PIN_DSC_HOUT2DIAG, PIN_DSC_HOUT3DIAG, PIN_DSC_HOUT4DIAG, PIN_DSC_HOUT5DIAG, PIN_DSC_HOUT6DIAG};
 /** PWM modules from N2HET mapped to HOUT pin ID 0-5 **/
 static uint8_t hout_pwm_map[] = {pwm1, pwm2, pwm3, pwm4, pwm5, pwm6};
 /** Flag variable
@@ -143,8 +139,11 @@ int hout_fail(uint8_t hout_id)
        uint32_t i;
        uint16_t pwm_running;
        int err_cnt = 0;
+       dio_port_desc_t* hout_in_port = dio_port_get_dsc(DIO_PORT_NAME_HOUTIN, -1);
+       dio_port_desc_t* hout_diag_port = dio_port_get_dsc(DIO_PORT_NAME_HOUTDIAG, -1);
 
-       if (hout_id >= hal_port_get_val_cnt(hal_port_get_dsc(PORT_NAME_HOUTIN, -1)))
+
+       if (hout_id >= dio_port_get_val_cnt(dio_port_get_dsc(DIO_PORT_NAME_HOUTIN, -1)))
                return -1;   // Bad parameter
        pwm_running = hout_pwm_state & (HOUT_PWM_RUNNING << hout_id);
 
@@ -153,13 +152,13 @@ int hout_fail(uint8_t hout_id)
        else
                hout_pwm_stop(hout_id);
        vTaskDelay(1/portTICK_RATE_MS);
-       hal_gpio_pin_set_value(hout_pin_in_descs[hout_id], 1);
+       dio_gpio_pin_set_value(hout_in_port->config[hout_id], 1);
        for (i = 0; i < 4; i++) {
-               if (hal_gpio_pin_get_value(hout_pin_diag_descs[hout_id]) != 1)
+               if (dio_gpio_pin_get_value(hout_diag_port->config[hout_id]) != 1)
                        err_cnt++;  // Input value and output value are not equal
                vTaskDelay(1/portTICK_RATE_MS);
        }
-       hal_gpio_pin_set_value(hout_pin_in_descs[hout_id], 0);
+       dio_gpio_pin_set_value(hout_diag_port->config[hout_id], 0);
        if (pwm_running) hout_pwm_start(hout_id);
        return (err_cnt == 0) ? HOUT_OK : HOUT_FAILED;
 }
index 0ec425c5f3b17099d27b48ffe85e1e4715afbd64..88b8088cbcf620c69a2b272de7510d039a88fd0c 100644 (file)
@@ -131,9 +131,9 @@ uint8_t lout_get_word()
 int lout_spi_transfer()
 {
 
-       port_desc_t *desc;
+       dio_port_desc_t *desc;
 
-       desc = hal_port_get_dsc(PORT_NAME_LOUT, -1);
+       desc = dio_port_get_dsc(DIO_PORT_NAME_LOUT, -1);
 
        lout_spi_cmd_sh = lout_spi_cmd;
        uint32_t commands[4];
index 323305183068c3694be92c4b5c7782b24d94cf10..a57816ec4ee36f8c4bc3e6cf7a9d2d94a60aef0b 100644 (file)
 
 #include "drv/mout.h"
 
-const static uint32_t dsc_pin_map[6U][2U] = {
-       {PIN_DSC_MOUT1IN, PIN_DSC_MOUT1EN},
-       {PIN_DSC_MOUT2IN, PIN_DSC_MOUT2EN},
-       {PIN_DSC_MOUT3IN, PIN_DSC_MOUT3EN},
-       {PIN_DSC_MOUT4IN, PIN_DSC_MOUT4EN},
-       {PIN_DSC_MOUT5IN, PIN_DSC_MOUT5EN},
-       {PIN_DSC_MOUT6IN, PIN_DSC_MOUT6EN}
-};
-
-
 int8_t drv_mout_set(uint8_t pin, uint8_t val)
 {
        // Check range
        if (pin > 5)
                return -1;
 
-       hal_gpio_pin_set_value(dsc_pin_map[pin][0], val);
+       dio_port_desc_t* mout_in_port = dio_port_get_dsc(DIO_PORT_NAME_MOUTIN, -1);
+
+       dio_gpio_pin_set_value(mout_in_port->config[pin], val);
        return SUCCESS;
 }
 
@@ -47,7 +39,9 @@ int8_t drv_mout_diag(uint8_t pin)
        if (pin > 5)
                return -1;
 
-       if (hal_gpio_pin_get_value(dsc_pin_map[pin][1]) == 1)
+       dio_port_desc_t* mout_en_port = dio_port_get_dsc(DIO_PORT_NAME_MOUTEN, -1);
+
+       if (dio_gpio_pin_get_value(mout_en_port->config[pin]) == 1)
                return HIGH;
        return LOW;
 }
diff --git a/rpp/src/hal/_rm48_hdk/.gitattributes b/rpp/src/hal/_rm48_hdk/.gitattributes
deleted file mode 100644 (file)
index 3dbecf5..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-/gpio_def.c    eaton
-/port_def.c    eaton
diff --git a/rpp/src/hal/_rm48_hdk/gpio_def.c b/rpp/src/hal/_rm48_hdk/gpio_def.c
deleted file mode 100644 (file)
index e88bd3e..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright (C) 2012-2013, 2015 Czech Technical University in Prague
- *
- * Authors:
- *     - Michal Horn <hornmich@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : hal_gpio_rm48_def.c
- *
- * Abstract:
- *         This file contains gpio pins definitions
- *
- *      On RM48 MCU pins can operates as GIO on ports DMM, GIOA, GIOB,
- *      HET1 and HET2. Those pins, that are defined in this file, can be
- *      accessed directly as GPIO by hal_gpio_set_value and
- *      hal_gpio_get_value. Pin configuration can be modified by functions
- *      defined in hal_gpio_rm48 source and header files.
- *
- *      NOTE: Although the configuration functions are implemented and
- *      should be ready to use, they were only slightly tested and are not
- *      used by the RPP software yet.
- */
-
-//#include "hal/gpio_rm48_def.h"
-#include "hal/hal.h"
-
-/**
- * Array of ports used as GPIO. Thanks to that array, we can
- * determine port just by index in pin_desc at 5th bit */
-gioPORT_t *port_id_map[MAX_PORT_CNT] = {
-       [PORT_ID_DMM]  = (gioPORT_t *)dmmPORT,
-       [PORT_ID_GIOA] = (gioPORT_t *)gioPORTA,
-       [PORT_ID_GIOB] = (gioPORT_t *)gioPORTB,
-       [PORT_ID_HET1] = (gioPORT_t *)hetPORT1,
-       [PORT_ID_HET2] = (gioPORT_t *)hetPORT2
-};
-
-/* Some pins are commented out, because they are pinmuxed with SCI. */
-/**
- * Map of pin names to pin descriptors. Each pin can be then easily
- * found just by its name given as a string to hal_gpio_get_pin_dsc
- * function*/
-pin_map_element_t pin_map[MAX_PIN_CNT] = {
-       /* DMM pins */
-       { .pin_name = PIN_NAME_GIOA0, .pin_desc = PIN_DSC_GIOA0 },
-       { .pin_name = PIN_NAME_GIOA1, .pin_desc = PIN_DSC_GIOA1 },
-       { .pin_name = PIN_NAME_GIOA2, .pin_desc = PIN_DSC_GIOA2 },
-       { .pin_name = PIN_NAME_GIOA3, .pin_desc = PIN_DSC_GIOA3 },
-       { .pin_name = PIN_NAME_GIOA4, .pin_desc = PIN_DSC_GIOA4 },
-       { .pin_name = PIN_NAME_GIOA5, .pin_desc = PIN_DSC_GIOA5 },
-       { .pin_name = PIN_NAME_GIOA6, .pin_desc = PIN_DSC_GIOA6 },
-       { .pin_name = PIN_NAME_GIOA7, .pin_desc = PIN_DSC_GIOA7 },
-       { .pin_name = PIN_NAME_GIOB0, .pin_desc = PIN_DSC_GIOB0 },
-       { .pin_name = PIN_NAME_GIOB1, .pin_desc = PIN_DSC_GIOB1 },
-       { .pin_name = PIN_NAME_GIOB2, .pin_desc = PIN_DSC_GIOB2 },
-       { .pin_name = PIN_NAME_GIOB3, .pin_desc = PIN_DSC_GIOB3 },
-       { .pin_name = PIN_NAME_GIOB4, .pin_desc = PIN_DSC_GIOB4 },
-       { .pin_name = PIN_NAME_GIOB5, .pin_desc = PIN_DSC_GIOB5 },
-       { .pin_name = PIN_NAME_GIOB6, .pin_desc = PIN_DSC_GIOB6 },
-       { .pin_name = PIN_NAME_GIOB7, .pin_desc = PIN_DSC_GIOB7 },
-       { .pin_name = PIN_NAME_NHET1_0, .pin_desc = PIN_DSC_NHET1_0 },
-       { .pin_name = PIN_NAME_NHET1_1, .pin_desc = PIN_DSC_NHET1_1 },
-       { .pin_name = PIN_NAME_NHET1_2, .pin_desc = PIN_DSC_NHET1_2 },
-       { .pin_name = PIN_NAME_NHET1_3, .pin_desc = PIN_DSC_NHET1_3 },
-       { .pin_name = PIN_NAME_NHET1_4, .pin_desc = PIN_DSC_NHET1_4 },
-       { .pin_name = PIN_NAME_NHET1_5, .pin_desc = PIN_DSC_NHET1_5 },
-       /*{ .pin_name = PIN_NAME_NHET1_6, .pin_desc = PIN_DSC_NHET1_6 },*/
-       { .pin_name = PIN_NAME_NHET1_7, .pin_desc = PIN_DSC_NHET1_7 },
-       { .pin_name = PIN_NAME_NHET1_8, .pin_desc = PIN_DSC_NHET1_8 },
-       { .pin_name = PIN_NAME_NHET1_9, .pin_desc = PIN_DSC_NHET1_9 },
-       { .pin_name = PIN_NAME_NHET1_10, .pin_desc = PIN_DSC_NHET1_10 },
-       { .pin_name = PIN_NAME_NHET1_11, .pin_desc = PIN_DSC_NHET1_11 },
-       { .pin_name = PIN_NAME_NHET1_12, .pin_desc = PIN_DSC_NHET1_12 },
-       /*{ .pin_name = PIN_NAME_NHET1_13, .pin_desc = PIN_DSC_NHET1_13 },*/
-       { .pin_name = PIN_NAME_NHET1_14, .pin_desc = PIN_DSC_NHET1_14 },
-       { .pin_name = PIN_NAME_NHET1_15, .pin_desc = PIN_DSC_NHET1_15 },
-       { .pin_name = PIN_NAME_NHET1_16, .pin_desc = PIN_DSC_NHET1_16 },
-       { .pin_name = PIN_NAME_NHET1_17, .pin_desc = PIN_DSC_NHET1_17 },
-       { .pin_name = PIN_NAME_NHET1_18, .pin_desc = PIN_DSC_NHET1_18 },
-       { .pin_name = PIN_NAME_NHET1_19, .pin_desc = PIN_DSC_NHET1_19 },
-       { .pin_name = PIN_NAME_NHET1_20, .pin_desc = PIN_DSC_NHET1_20 },
-       { .pin_name = PIN_NAME_NHET1_21, .pin_desc = PIN_DSC_NHET1_21 },
-       { .pin_name = PIN_NAME_NHET1_22, .pin_desc = PIN_DSC_NHET1_22 },
-       { .pin_name = PIN_NAME_NHET1_23, .pin_desc = PIN_DSC_NHET1_23 },
-       { .pin_name = PIN_NAME_NHET1_24, .pin_desc = PIN_DSC_NHET1_24 },
-       { .pin_name = PIN_NAME_NHET1_25, .pin_desc = PIN_DSC_NHET1_25 },
-       { .pin_name = PIN_NAME_NHET1_26, .pin_desc = PIN_DSC_NHET1_26 },
-       { .pin_name = PIN_NAME_NHET1_27, .pin_desc = PIN_DSC_NHET1_27 },
-       { .pin_name = PIN_NAME_NHET1_28, .pin_desc = PIN_DSC_NHET1_28 },
-       { .pin_name = PIN_NAME_NHET1_29, .pin_desc = PIN_DSC_NHET1_29 },
-       { .pin_name = PIN_NAME_NHET1_30, .pin_desc = PIN_DSC_NHET1_30 },
-       { .pin_name = PIN_NAME_NHET1_31, .pin_desc = PIN_DSC_NHET1_31 },
-       /* FIXME: add definitions of all unused pins DMM, HET2, SCI... */
-};
diff --git a/rpp/src/hal/_rm48_hdk/port_def.c b/rpp/src/hal/_rm48_hdk/port_def.c
deleted file mode 100644 (file)
index 61f4521..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Copyright (C) 2012-2013 Czech Technical University in Prague
- *
- * Authors:
- *     - Michal Horn <hornmich@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : port_def.c
- *
- * Abstract:
- *         This file contains general ports definitions. Ports are defined according to their names on
- *      the RPP board.
- *      Each port is define by port descriptor, which consists of:
- *          - list of its pin (pin descriptors),
- *          - number of pins,
- *          - get value function pointer,
- *          - set value function pointer.
- *      Finally each port descriptor is mapped to the port name string.
- *
- *      Get and set value function are defined for each port style (ADC, SPI, GPIO) in separated files.
- */
-
-#include "hal/hal.h"
-#include "drv/spi.h"
-#include "drv/_rm48_hdk/adc.h"
-
-// Lists of pins assigned to the ports
-static uint32_t port_cfg_gioa[] = {
-               PIN_DSC_GIOA0, PIN_DSC_GIOA1, PIN_DSC_GIOA2, PIN_DSC_GIOA3,
-               PIN_DSC_GIOA4, PIN_DSC_GIOA5, PIN_DSC_GIOA6, PIN_DSC_GIOA7
-};
-static uint32_t port_cfg_giob[] = {
-               PIN_DSC_GIOB0, PIN_DSC_GIOB1, PIN_DSC_GIOB2, PIN_DSC_GIOB3,
-               PIN_DSC_GIOB4, PIN_DSC_GIOB5, PIN_DSC_GIOB6, PIN_DSC_GIOB7
-};
-static uint32_t port_cfg_nhet1[] = {
-               PIN_DSC_NHET1_0, PIN_DSC_NHET1_1, PIN_DSC_NHET1_2,
-               PIN_DSC_NHET1_3, PIN_DSC_NHET1_4, PIN_DSC_NHET1_5,
-               PIN_DSC_NHET1_7, PIN_DSC_NHET1_8, PIN_DSC_NHET1_9,
-               PIN_DSC_NHET1_10, PIN_DSC_NHET1_11, PIN_DSC_NHET1_12,
-               PIN_DSC_NHET1_14, PIN_DSC_NHET1_15, PIN_DSC_NHET1_16,
-               PIN_DSC_NHET1_17, PIN_DSC_NHET1_18, PIN_DSC_NHET1_19,
-               PIN_DSC_NHET1_20, PIN_DSC_NHET1_21, PIN_DSC_NHET1_22,
-               PIN_DSC_NHET1_23, PIN_DSC_NHET1_24, PIN_DSC_NHET1_25,
-               PIN_DSC_NHET1_26, PIN_DSC_NHET1_27, PIN_DSC_NHET1_28,
-               PIN_DSC_NHET1_29, PIN_DSC_NHET1_30, PIN_DSC_NHET1_31
-};
-static uint32_t port_cfg_adc[] = { (uint32_t)adcREG1, adcGROUP1, 1 };
-
-// Port descriptors
-static port_desc_t port_desc_gioa = {
- .config = port_cfg_gioa,
- .numValues = 8,
- .interfaceType = GPIO,
- .port_getfnc_ptr = &hal_gpio_port_get_val,
- .port_setfnc_ptr = &hal_gpio_port_set_val,
-};
-static port_desc_t port_desc_giob = {
- .config = port_cfg_giob,
- .numValues = 8,
- .interfaceType = GPIO,
- .port_getfnc_ptr = &hal_gpio_port_get_val,
- .port_setfnc_ptr = &hal_gpio_port_set_val,
-};
-static port_desc_t port_desc_nhet1 = {
- .config = port_cfg_nhet1,
- .numValues = 30,
- .interfaceType = GPIO,
- .port_getfnc_ptr = &hal_gpio_port_get_val,
- .port_setfnc_ptr = &hal_gpio_port_set_val,
-};
-static port_desc_t port_desc_adc = {
- .config = port_cfg_adc,
- .numValues = 16,
- .interfaceType = ADC,
- .port_getfnc_ptr = &adc_get_port_val,
- .port_setfnc_ptr = ((void *)0),
-};
-
-
-// Maps of port names to port descriptors
-port_def_t port_definition[PORT_CNT] = {
-       {.name = PORT_NAME_GIOA,      .desc = &port_desc_gioa},
-       {.name = PORT_NAME_GIOB,      .desc = &port_desc_giob},
-       {.name = PORT_NAME_NHET1,    .desc = &port_desc_nhet1},
-       {.name = PORT_NAME_ADC,      .desc = &port_desc_adc}
-};
-
-/**
- *  Get port descriptor assigned to port name.
- *  @param[in]  port_name   Pointer to string - the name of the port.
- *  @param[in]  len         Length of the name, if terminated by '/0', then len=-1
- *  @return Port descriptor or NULL if not found
- */
-port_desc_t *hal_port_get_dsc(const char *port_name, int len)
-{
-       uint32_t i;
-       const char *port_name_ptr;
-       char port_name_term[32];
-
-       if (len != -1) {    // port name not terminated by '\0'
-               strncpy(port_name_term, port_name, len);
-               port_name_term[len] = '\0';
-               port_name_ptr = port_name_term;
-       }
-       else port_name_ptr = port_name;
-
-       for (i = 0; i < PORT_CNT; i++) {
-               if (strcmp(port_name_ptr, port_definition[i].name) == 0)
-                       return port_definition[i].desc;
-       }
-       return NULL;
-}
-
-/**
- *  Get port descriptor assigned to port name.
- *  @param[in]  port_name   Pointer to string - the name of the port.
- *  @param[in]  len         Length of the name, if terminated by '/0', then len=-1
- *  @return Port descriptor or NULL if not found
- */
-const port_def_t *hal_port_get_map()
-{
-       return (const port_def_t *)port_definition;
-}
diff --git a/rpp/src/hal/_tms570_hdk/.gitattributes b/rpp/src/hal/_tms570_hdk/.gitattributes
deleted file mode 100644 (file)
index 3dbecf5..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-/gpio_def.c    eaton
-/port_def.c    eaton
diff --git a/rpp/src/hal/_tms570_hdk/gpio_def.c b/rpp/src/hal/_tms570_hdk/gpio_def.c
deleted file mode 100644 (file)
index e88bd3e..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright (C) 2012-2013, 2015 Czech Technical University in Prague
- *
- * Authors:
- *     - Michal Horn <hornmich@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : hal_gpio_rm48_def.c
- *
- * Abstract:
- *         This file contains gpio pins definitions
- *
- *      On RM48 MCU pins can operates as GIO on ports DMM, GIOA, GIOB,
- *      HET1 and HET2. Those pins, that are defined in this file, can be
- *      accessed directly as GPIO by hal_gpio_set_value and
- *      hal_gpio_get_value. Pin configuration can be modified by functions
- *      defined in hal_gpio_rm48 source and header files.
- *
- *      NOTE: Although the configuration functions are implemented and
- *      should be ready to use, they were only slightly tested and are not
- *      used by the RPP software yet.
- */
-
-//#include "hal/gpio_rm48_def.h"
-#include "hal/hal.h"
-
-/**
- * Array of ports used as GPIO. Thanks to that array, we can
- * determine port just by index in pin_desc at 5th bit */
-gioPORT_t *port_id_map[MAX_PORT_CNT] = {
-       [PORT_ID_DMM]  = (gioPORT_t *)dmmPORT,
-       [PORT_ID_GIOA] = (gioPORT_t *)gioPORTA,
-       [PORT_ID_GIOB] = (gioPORT_t *)gioPORTB,
-       [PORT_ID_HET1] = (gioPORT_t *)hetPORT1,
-       [PORT_ID_HET2] = (gioPORT_t *)hetPORT2
-};
-
-/* Some pins are commented out, because they are pinmuxed with SCI. */
-/**
- * Map of pin names to pin descriptors. Each pin can be then easily
- * found just by its name given as a string to hal_gpio_get_pin_dsc
- * function*/
-pin_map_element_t pin_map[MAX_PIN_CNT] = {
-       /* DMM pins */
-       { .pin_name = PIN_NAME_GIOA0, .pin_desc = PIN_DSC_GIOA0 },
-       { .pin_name = PIN_NAME_GIOA1, .pin_desc = PIN_DSC_GIOA1 },
-       { .pin_name = PIN_NAME_GIOA2, .pin_desc = PIN_DSC_GIOA2 },
-       { .pin_name = PIN_NAME_GIOA3, .pin_desc = PIN_DSC_GIOA3 },
-       { .pin_name = PIN_NAME_GIOA4, .pin_desc = PIN_DSC_GIOA4 },
-       { .pin_name = PIN_NAME_GIOA5, .pin_desc = PIN_DSC_GIOA5 },
-       { .pin_name = PIN_NAME_GIOA6, .pin_desc = PIN_DSC_GIOA6 },
-       { .pin_name = PIN_NAME_GIOA7, .pin_desc = PIN_DSC_GIOA7 },
-       { .pin_name = PIN_NAME_GIOB0, .pin_desc = PIN_DSC_GIOB0 },
-       { .pin_name = PIN_NAME_GIOB1, .pin_desc = PIN_DSC_GIOB1 },
-       { .pin_name = PIN_NAME_GIOB2, .pin_desc = PIN_DSC_GIOB2 },
-       { .pin_name = PIN_NAME_GIOB3, .pin_desc = PIN_DSC_GIOB3 },
-       { .pin_name = PIN_NAME_GIOB4, .pin_desc = PIN_DSC_GIOB4 },
-       { .pin_name = PIN_NAME_GIOB5, .pin_desc = PIN_DSC_GIOB5 },
-       { .pin_name = PIN_NAME_GIOB6, .pin_desc = PIN_DSC_GIOB6 },
-       { .pin_name = PIN_NAME_GIOB7, .pin_desc = PIN_DSC_GIOB7 },
-       { .pin_name = PIN_NAME_NHET1_0, .pin_desc = PIN_DSC_NHET1_0 },
-       { .pin_name = PIN_NAME_NHET1_1, .pin_desc = PIN_DSC_NHET1_1 },
-       { .pin_name = PIN_NAME_NHET1_2, .pin_desc = PIN_DSC_NHET1_2 },
-       { .pin_name = PIN_NAME_NHET1_3, .pin_desc = PIN_DSC_NHET1_3 },
-       { .pin_name = PIN_NAME_NHET1_4, .pin_desc = PIN_DSC_NHET1_4 },
-       { .pin_name = PIN_NAME_NHET1_5, .pin_desc = PIN_DSC_NHET1_5 },
-       /*{ .pin_name = PIN_NAME_NHET1_6, .pin_desc = PIN_DSC_NHET1_6 },*/
-       { .pin_name = PIN_NAME_NHET1_7, .pin_desc = PIN_DSC_NHET1_7 },
-       { .pin_name = PIN_NAME_NHET1_8, .pin_desc = PIN_DSC_NHET1_8 },
-       { .pin_name = PIN_NAME_NHET1_9, .pin_desc = PIN_DSC_NHET1_9 },
-       { .pin_name = PIN_NAME_NHET1_10, .pin_desc = PIN_DSC_NHET1_10 },
-       { .pin_name = PIN_NAME_NHET1_11, .pin_desc = PIN_DSC_NHET1_11 },
-       { .pin_name = PIN_NAME_NHET1_12, .pin_desc = PIN_DSC_NHET1_12 },
-       /*{ .pin_name = PIN_NAME_NHET1_13, .pin_desc = PIN_DSC_NHET1_13 },*/
-       { .pin_name = PIN_NAME_NHET1_14, .pin_desc = PIN_DSC_NHET1_14 },
-       { .pin_name = PIN_NAME_NHET1_15, .pin_desc = PIN_DSC_NHET1_15 },
-       { .pin_name = PIN_NAME_NHET1_16, .pin_desc = PIN_DSC_NHET1_16 },
-       { .pin_name = PIN_NAME_NHET1_17, .pin_desc = PIN_DSC_NHET1_17 },
-       { .pin_name = PIN_NAME_NHET1_18, .pin_desc = PIN_DSC_NHET1_18 },
-       { .pin_name = PIN_NAME_NHET1_19, .pin_desc = PIN_DSC_NHET1_19 },
-       { .pin_name = PIN_NAME_NHET1_20, .pin_desc = PIN_DSC_NHET1_20 },
-       { .pin_name = PIN_NAME_NHET1_21, .pin_desc = PIN_DSC_NHET1_21 },
-       { .pin_name = PIN_NAME_NHET1_22, .pin_desc = PIN_DSC_NHET1_22 },
-       { .pin_name = PIN_NAME_NHET1_23, .pin_desc = PIN_DSC_NHET1_23 },
-       { .pin_name = PIN_NAME_NHET1_24, .pin_desc = PIN_DSC_NHET1_24 },
-       { .pin_name = PIN_NAME_NHET1_25, .pin_desc = PIN_DSC_NHET1_25 },
-       { .pin_name = PIN_NAME_NHET1_26, .pin_desc = PIN_DSC_NHET1_26 },
-       { .pin_name = PIN_NAME_NHET1_27, .pin_desc = PIN_DSC_NHET1_27 },
-       { .pin_name = PIN_NAME_NHET1_28, .pin_desc = PIN_DSC_NHET1_28 },
-       { .pin_name = PIN_NAME_NHET1_29, .pin_desc = PIN_DSC_NHET1_29 },
-       { .pin_name = PIN_NAME_NHET1_30, .pin_desc = PIN_DSC_NHET1_30 },
-       { .pin_name = PIN_NAME_NHET1_31, .pin_desc = PIN_DSC_NHET1_31 },
-       /* FIXME: add definitions of all unused pins DMM, HET2, SCI... */
-};
diff --git a/rpp/src/hal/_tms570_hdk/port_def.c b/rpp/src/hal/_tms570_hdk/port_def.c
deleted file mode 100644 (file)
index aaab689..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Copyright (C) 2012-2013 Czech Technical University in Prague
- *
- * Authors:
- *     - Michal Horn <hornmich@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : port_def.c
- *
- * Abstract:
- *         This file contains general ports definitions. Ports are defined according to their names on
- *      the RPP board.
- *      Each port is define by port descriptor, which consists of:
- *          - list of its pin (pin descriptors),
- *          - number of pins,
- *          - get value function pointer,
- *          - set value function pointer.
- *      Finally each port descriptor is mapped to the port name string.
- *
- *      Get and set value function are defined for each port style (ADC, SPI, GPIO) in separated files.
- */
-
-#include "hal/hal.h"
-#include "drv/spi.h"
-#include "drv/_tms570_hdk/adc.h"
-
-// Lists of pins assigned to the ports
-static uint32_t port_cfg_gioa[] = {
-               PIN_DSC_GIOA0, PIN_DSC_GIOA1, PIN_DSC_GIOA2, PIN_DSC_GIOA3,
-               PIN_DSC_GIOA4, PIN_DSC_GIOA5, PIN_DSC_GIOA6, PIN_DSC_GIOA7
-};
-static uint32_t port_cfg_giob[] = {
-               PIN_DSC_GIOB0, PIN_DSC_GIOB1, PIN_DSC_GIOB2, PIN_DSC_GIOB3,
-               PIN_DSC_GIOB4, PIN_DSC_GIOB5, PIN_DSC_GIOB6, PIN_DSC_GIOB7
-};
-static uint32_t port_cfg_nhet1[] = {
-               PIN_DSC_NHET1_0, PIN_DSC_NHET1_1, PIN_DSC_NHET1_2,
-               PIN_DSC_NHET1_3, PIN_DSC_NHET1_4, PIN_DSC_NHET1_5,
-               PIN_DSC_NHET1_7, PIN_DSC_NHET1_8, PIN_DSC_NHET1_9,
-               PIN_DSC_NHET1_10, PIN_DSC_NHET1_11, PIN_DSC_NHET1_12,
-               PIN_DSC_NHET1_14, PIN_DSC_NHET1_15, PIN_DSC_NHET1_16,
-               PIN_DSC_NHET1_17, PIN_DSC_NHET1_18, PIN_DSC_NHET1_19,
-               PIN_DSC_NHET1_20, PIN_DSC_NHET1_21, PIN_DSC_NHET1_22,
-               PIN_DSC_NHET1_23, PIN_DSC_NHET1_24, PIN_DSC_NHET1_25,
-               PIN_DSC_NHET1_26, PIN_DSC_NHET1_27, PIN_DSC_NHET1_28,
-               PIN_DSC_NHET1_29, PIN_DSC_NHET1_30, PIN_DSC_NHET1_31
-};
-static uint32_t port_cfg_adc[] = { (uint32_t)adcREG1, adcGROUP1, 1 };
-
-// Port descriptors
-static port_desc_t port_desc_gioa = {
- .config = port_cfg_gioa,
- .numValues = 8,
- .interfaceType = GPIO,
- .port_getfnc_ptr = &hal_gpio_port_get_val,
- .port_setfnc_ptr = &hal_gpio_port_set_val,
-};
-static port_desc_t port_desc_giob = {
- .config = port_cfg_giob,
- .numValues = 8,
- .interfaceType = GPIO,
- .port_getfnc_ptr = &hal_gpio_port_get_val,
- .port_setfnc_ptr = &hal_gpio_port_set_val,
-};
-static port_desc_t port_desc_nhet1 = {
- .config = port_cfg_nhet1,
- .numValues = 30,
- .interfaceType = GPIO,
- .port_getfnc_ptr = &hal_gpio_port_get_val,
- .port_setfnc_ptr = &hal_gpio_port_set_val,
-};
-static port_desc_t port_desc_adc = {
- .config = port_cfg_adc,
- .numValues = 16,
- .interfaceType = ADC,
- .port_getfnc_ptr = &adc_get_port_val,
- .port_setfnc_ptr = ((void *)0),
-};
-
-
-// Maps of port names to port descriptors
-port_def_t port_definition[PORT_CNT] = {
-       {.name = PORT_NAME_GIOA,      .desc = &port_desc_gioa},
-       {.name = PORT_NAME_GIOB,      .desc = &port_desc_giob},
-       {.name = PORT_NAME_NHET1,    .desc = &port_desc_nhet1},
-       {.name = PORT_NAME_ADC,      .desc = &port_desc_adc}
-};
-
-/**
- *  Get port descriptor assigned to port name.
- *  @param[in]  port_name   Pointer to string - the name of the port.
- *  @param[in]  len         Length of the name, if terminated by '/0', then len=-1
- *  @return Port descriptor or NULL if not found
- */
-port_desc_t *hal_port_get_dsc(const char *port_name, int len)
-{
-       uint32_t i;
-       const char *port_name_ptr;
-       char port_name_term[32];
-
-       if (len != -1) {    // port name not terminated by '\0'
-               strncpy(port_name_term, port_name, len);
-               port_name_term[len] = '\0';
-               port_name_ptr = port_name_term;
-       }
-       else port_name_ptr = port_name;
-
-       for (i = 0; i < PORT_CNT; i++) {
-               if (strcmp(port_name_ptr, port_definition[i].name) == 0)
-                       return port_definition[i].desc;
-       }
-       return NULL;
-}
-
-/**
- *  Get port descriptor assigned to port name.
- *  @param[in]  port_name   Pointer to string - the name of the port.
- *  @param[in]  len         Length of the name, if terminated by '/0', then len=-1
- *  @return Port descriptor or NULL if not found
- */
-const port_def_t *hal_port_get_map()
-{
-       return (const port_def_t *)port_definition;
-}
diff --git a/rpp/src/hal/_tms570_hydctr/.gitattributes b/rpp/src/hal/_tms570_hydctr/.gitattributes
deleted file mode 100644 (file)
index 3dbecf5..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-/gpio_def.c    eaton
-/port_def.c    eaton
diff --git a/rpp/src/hal/_tms570_hydctr/gpio_def.c b/rpp/src/hal/_tms570_hydctr/gpio_def.c
deleted file mode 100644 (file)
index 98a8b2f..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright (C) 2012-2013, 2015 Czech Technical University in Prague
- *
- * Authors:
- *     - Michal Horn <hornmich@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : hal_gpio_rm48_def.c
- *
- * Abstract:
- *         This file contains gpio pins definitions
- *
- *      On RM48 MCU pins can operates as GIO on ports DMM, GIOA, GIOB,
- *      HET1 and HET2. Those pins, that are defined in this file, can be
- *      accessed directly as GPIO by hal_gpio_set_value and
- *      hal_gpio_get_value. Pin configuration can be modified by functions
- *      defined in hal_gpio_rm48 source and header files.
- *
- *      NOTE: Although the configuration functions are implemented and
- *      should be ready to use, they were only slightly tested and are not
- *      used by the RPP software yet.
- */
-
-//#include "hal/gpio_rm48_def.h"
-#include "hal/hal.h"
-
-/**
- * Array of ports used as GPIO. Thanks to that array, we can
- * determine port just by index in pin_desc at 5th bit */
-gioPORT_t *port_id_map[MAX_PORT_CNT] = {
-       [PORT_ID_GIOA] = (gioPORT_t *)gioPORTA,
-       [PORT_ID_GIOB] = (gioPORT_t *)gioPORTB,
-       [PORT_ID_HET1] = (gioPORT_t *)hetPORT1,
-       [PORT_ID_HET2] = (gioPORT_t *)hetPORT2
-};
-
-/* Some pins are commented out, because they are pinmuxed with SCI. */
-/**
- * Map of pin names to pin descriptors. Each pin can be then easily
- * found just by its name given as a string to hal_gpio_get_pin_dsc
- * function*/
-pin_map_element_t pin_map[MAX_PIN_CNT] = {
-       /* DMM pins */
-       { .pin_name = PIN_NAME_GIOA0, .pin_desc = PIN_DSC_GIOA0 },
-       { .pin_name = PIN_NAME_GIOA1, .pin_desc = PIN_DSC_GIOA1 },
-       { .pin_name = PIN_NAME_GIOA2, .pin_desc = PIN_DSC_GIOA2 },
-       { .pin_name = PIN_NAME_GIOA3, .pin_desc = PIN_DSC_GIOA3 },
-       { .pin_name = PIN_NAME_GIOA4, .pin_desc = PIN_DSC_GIOA4 },
-       { .pin_name = PIN_NAME_GIOA5, .pin_desc = PIN_DSC_GIOA5 },
-       { .pin_name = PIN_NAME_GIOA6, .pin_desc = PIN_DSC_GIOA6 },
-       { .pin_name = PIN_NAME_GIOA7, .pin_desc = PIN_DSC_GIOA7 },
-       { .pin_name = PIN_NAME_GIOB0, .pin_desc = PIN_DSC_GIOB0 },
-       { .pin_name = PIN_NAME_GIOB1, .pin_desc = PIN_DSC_GIOB1 },
-       { .pin_name = PIN_NAME_GIOB2, .pin_desc = PIN_DSC_GIOB2 },
-       { .pin_name = PIN_NAME_GIOB3, .pin_desc = PIN_DSC_GIOB3 },
-       { .pin_name = PIN_NAME_GIOB4, .pin_desc = PIN_DSC_GIOB4 },
-       { .pin_name = PIN_NAME_GIOB5, .pin_desc = PIN_DSC_GIOB5 },
-       { .pin_name = PIN_NAME_GIOB6, .pin_desc = PIN_DSC_GIOB6 },
-       { .pin_name = PIN_NAME_GIOB7, .pin_desc = PIN_DSC_GIOB7 },
-       { .pin_name = PIN_NAME_NHET1_0, .pin_desc = PIN_DSC_NHET1_0 },
-       { .pin_name = PIN_NAME_NHET1_1, .pin_desc = PIN_DSC_NHET1_1 },
-       { .pin_name = PIN_NAME_NHET1_2, .pin_desc = PIN_DSC_NHET1_2 },
-       { .pin_name = PIN_NAME_NHET1_3, .pin_desc = PIN_DSC_NHET1_3 },
-       { .pin_name = PIN_NAME_NHET1_4, .pin_desc = PIN_DSC_NHET1_4 },
-       { .pin_name = PIN_NAME_NHET1_5, .pin_desc = PIN_DSC_NHET1_5 },
-       /*{ .pin_name = PIN_NAME_NHET1_6, .pin_desc = PIN_DSC_NHET1_6 },*/
-       { .pin_name = PIN_NAME_NHET1_7, .pin_desc = PIN_DSC_NHET1_7 },
-       { .pin_name = PIN_NAME_NHET1_8, .pin_desc = PIN_DSC_NHET1_8 },
-       { .pin_name = PIN_NAME_NHET1_9, .pin_desc = PIN_DSC_NHET1_9 },
-       { .pin_name = PIN_NAME_NHET1_10, .pin_desc = PIN_DSC_NHET1_10 },
-       { .pin_name = PIN_NAME_NHET1_11, .pin_desc = PIN_DSC_NHET1_11 },
-       { .pin_name = PIN_NAME_NHET1_12, .pin_desc = PIN_DSC_NHET1_12 },
-       /*{ .pin_name = PIN_NAME_NHET1_13, .pin_desc = PIN_DSC_NHET1_13 },*/
-       { .pin_name = PIN_NAME_NHET1_14, .pin_desc = PIN_DSC_NHET1_14 },
-       { .pin_name = PIN_NAME_NHET1_15, .pin_desc = PIN_DSC_NHET1_15 },
-       { .pin_name = PIN_NAME_NHET1_16, .pin_desc = PIN_DSC_NHET1_16 },
-       { .pin_name = PIN_NAME_NHET1_17, .pin_desc = PIN_DSC_NHET1_17 },
-       { .pin_name = PIN_NAME_NHET1_18, .pin_desc = PIN_DSC_NHET1_18 },
-       { .pin_name = PIN_NAME_NHET1_19, .pin_desc = PIN_DSC_NHET1_19 },
-       { .pin_name = PIN_NAME_NHET1_20, .pin_desc = PIN_DSC_NHET1_20 },
-       { .pin_name = PIN_NAME_NHET1_21, .pin_desc = PIN_DSC_NHET1_21 },
-       { .pin_name = PIN_NAME_NHET1_22, .pin_desc = PIN_DSC_NHET1_22 },
-       { .pin_name = PIN_NAME_NHET1_23, .pin_desc = PIN_DSC_NHET1_23 },
-       { .pin_name = PIN_NAME_NHET1_24, .pin_desc = PIN_DSC_NHET1_24 },
-       { .pin_name = PIN_NAME_NHET1_25, .pin_desc = PIN_DSC_NHET1_25 },
-       { .pin_name = PIN_NAME_NHET1_26, .pin_desc = PIN_DSC_NHET1_26 },
-       { .pin_name = PIN_NAME_NHET1_27, .pin_desc = PIN_DSC_NHET1_27 },
-       { .pin_name = PIN_NAME_NHET1_28, .pin_desc = PIN_DSC_NHET1_28 },
-       { .pin_name = PIN_NAME_NHET1_29, .pin_desc = PIN_DSC_NHET1_29 },
-       { .pin_name = PIN_NAME_NHET1_30, .pin_desc = PIN_DSC_NHET1_30 },
-       { .pin_name = PIN_NAME_NHET1_31, .pin_desc = PIN_DSC_NHET1_31 },
-       /* FIXME: add definitions of all unused pins DMM, HET2, SCI... */
-};
diff --git a/rpp/src/hal/_tms570_hydctr/port_def.c b/rpp/src/hal/_tms570_hydctr/port_def.c
deleted file mode 100644 (file)
index c9537ef..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-/* Copyright (C) 2012-2013 Czech Technical University in Prague
- *
- * Authors:
- *     - Michal Horn <hornmich@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : port_def.c
- *
- * Abstract:
- *         This file contains general ports definitions. Ports are defined according to their names on
- *      the RPP board.
- *      Each port is define by port descriptor, which consists of:
- *          - list of its pin (pin descriptors),
- *          - number of pins,
- *          - get value function pointer,
- *          - set value function pointer.
- *      Finally each port descriptor is mapped to the port name string.
- *
- *      Get and set value function are defined for each port style (ADC, SPI, GPIO) in separated files.
- */
-
-#include "hal/hal.h"
-#include "drv/spi.h"
-#include "drv/_tms570_hydctr/adc.h"
-
-// FIXME Upper layer dependency/coupling
-// Declared in drv/adc.h
-extern uint32_t adc_get_port_val(uint32_t *config, uint32_t num_channels, uint32_t *values);
-
-// Lists of pins assigned to the ports
-static uint32_t port_cfg_gioa[] = {
-               PIN_DSC_GIOA0, PIN_DSC_GIOA1, PIN_DSC_GIOA2, PIN_DSC_GIOA3,
-               PIN_DSC_GIOA4, PIN_DSC_GIOA5, PIN_DSC_GIOA6, PIN_DSC_GIOA7
-};
-static uint32_t port_cfg_giob[] = {
-               PIN_DSC_GIOB0, PIN_DSC_GIOB1, PIN_DSC_GIOB2, PIN_DSC_GIOB3,
-               PIN_DSC_GIOB4, PIN_DSC_GIOB5, PIN_DSC_GIOB6, PIN_DSC_GIOB7
-};
-static uint32_t port_cfg_nhet1[] = {
-               PIN_DSC_NHET1_0, PIN_DSC_NHET1_1, PIN_DSC_NHET1_2,
-               PIN_DSC_NHET1_3, PIN_DSC_NHET1_4, PIN_DSC_NHET1_5,
-               PIN_DSC_NHET1_7, PIN_DSC_NHET1_8, PIN_DSC_NHET1_9,
-               PIN_DSC_NHET1_10, PIN_DSC_NHET1_11, PIN_DSC_NHET1_12,
-               PIN_DSC_NHET1_14, PIN_DSC_NHET1_15, PIN_DSC_NHET1_16,
-               PIN_DSC_NHET1_17, PIN_DSC_NHET1_18, PIN_DSC_NHET1_19,
-               PIN_DSC_NHET1_20, PIN_DSC_NHET1_21, PIN_DSC_NHET1_22,
-               PIN_DSC_NHET1_23, PIN_DSC_NHET1_24, PIN_DSC_NHET1_25,
-               PIN_DSC_NHET1_26, PIN_DSC_NHET1_27, PIN_DSC_NHET1_28,
-               PIN_DSC_NHET1_29, PIN_DSC_NHET1_30, PIN_DSC_NHET1_31
-};
-static uint32_t port_cfg_adc[] = { (uint32_t)adcREG1, adcGROUP1, 1 };
-
-// Port descriptors
-static port_desc_t port_desc_gioa = {
- .config = port_cfg_gioa,
- .numValues = 8,
- .interfaceType = GPIO,
- .port_getfnc_ptr = &hal_gpio_port_get_val,
- .port_setfnc_ptr = &hal_gpio_port_set_val,
-};
-static port_desc_t port_desc_giob = {
- .config = port_cfg_giob,
- .numValues = 8,
- .interfaceType = GPIO,
- .port_getfnc_ptr = &hal_gpio_port_get_val,
- .port_setfnc_ptr = &hal_gpio_port_set_val,
-};
-static port_desc_t port_desc_nhet1 = {
- .config = port_cfg_nhet1,
- .numValues = 30,
- .interfaceType = GPIO,
- .port_getfnc_ptr = &hal_gpio_port_get_val,
- .port_setfnc_ptr = &hal_gpio_port_set_val,
-};
-static port_desc_t port_desc_adc = {
- .config = port_cfg_adc,
- .numValues = 16,
- .interfaceType = ADC,
- .port_getfnc_ptr = &adc_get_port_val,
- .port_setfnc_ptr = ((void *)0),
-};
-
-// Maps of port names to port descriptors
-port_def_t port_definition[PORT_CNT] = {
-       {.name = PORT_NAME_GIOA,      .desc = &port_desc_gioa},
-       {.name = PORT_NAME_GIOB,      .desc = &port_desc_giob},
-       {.name = PORT_NAME_NHET1,    .desc = &port_desc_nhet1},
-       {.name = PORT_NAME_ADC,      .desc = &port_desc_adc}
-};
-
-/**
- *  Get port descriptor assigned to port name.
- *  @param[in]  port_name   Pointer to string - the name of the port.
- *  @param[in]  len         Length of the name, if terminated by '/0', then len=-1
- *  @return Port descriptor or NULL if not found
- */
-port_desc_t *hal_port_get_dsc(const char *port_name, int len)
-{
-       uint32_t i;
-       const char *port_name_ptr;
-       char port_name_term[32];
-
-       if (len != -1) {    // port name not terminated by '\0'
-               strncpy(port_name_term, port_name, len);
-               port_name_term[len] = '\0';
-               port_name_ptr = port_name_term;
-       }
-       else port_name_ptr = port_name;
-
-       for (i = 0; i < PORT_CNT; i++) {
-               if (strcmp(port_name_ptr, port_definition[i].name) == 0)
-                       return port_definition[i].desc;
-       }
-       return NULL;
-}
-
-/**
- *  Get port descriptor assigned to port name.
- *  @param[in]  port_name   Pointer to string - the name of the port.
- *  @param[in]  len         Length of the name, if terminated by '/0', then len=-1
- *  @return Port descriptor or NULL if not found
- */
-const port_def_t *hal_port_get_map()
-{
-       return (const port_def_t *)port_definition;
-}
diff --git a/rpp/src/hal/_tms570_rpp/gpio_def.c b/rpp/src/hal/_tms570_rpp/gpio_def.c
deleted file mode 100644 (file)
index 042db2f..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-/* Copyright (C) 2012-2013 Czech Technical University in Prague
- *
- * Authors:
- *     - Michal Horn <hornmich@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : hal_gpio_tms570_def.c
- *
- * Abstract:
- *         This file contains gpio pins definitions
- *
- *      On TMS570 MCU pins can operates as GIO on ports DMM, GIOA, GIOB,
- *      HET1 and HET2. Those pins, that are defined in this file, can be
- *      accessed directly as GPIO by hal_gpio_set_value and
- *      hal_gpio_get_value. Pin configuration can be modified by functions
- *      defined in hal_gpio_tms570 source and header files.
- *
- *      NOTE: Although the configuration functions are implemented and
- *      should be ready to use, they were only slightly tested and are not
- *      used by the RPP software yet.
- */
-
-//#include "hal/gpio_tms570_def.h"
-#include "hal/hal.h"
-
-/**
- * Array of ports used as GPIO. Thanks to that array, we can
- * determine port just by index in pin_desc at 5th bit */
-gioPORT_t *port_id_map[MAX_PORT_CNT] = {
-       (gioPORT_t *)dmmPORT,
-       (gioPORT_t *)gioPORTA,
-       (gioPORT_t *)gioPORTB,
-       (gioPORT_t *)hetPORT1,
-       (gioPORT_t *)hetPORT2
-};
-
-/**
- * Map of pin names to pin descriptors. Each pin can be then easily
- * found just by its name given as a string to hal_gpio_get_pin_dsc
- * function*/
-pin_map_element_t pin_map[MAX_PIN_CNT] = {
-       /* DMM pins */
-       { .pin_name = PIN_NAME_FANCTRL, .pin_desc = PIN_DSC_FANCTRL },
-       { .pin_name = PIN_NAME_ETHRST,  .pin_desc = PIN_DSC_ETHRST },
-       { .pin_name = PIN_NAME_VBAT1EN, .pin_desc = PIN_DSC_VBAT1EN },
-       { .pin_name = PIN_NAME_VBAT2EN, .pin_desc = PIN_DSC_VBAT2EN },
-       { .pin_name = PIN_NAME_VBAT3EN, .pin_desc = PIN_DSC_VBAT3EN },
-       { .pin_name = PIN_NAME_VBATEN,  .pin_desc = PIN_DSC_VBATEN },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_DMM_UNUSED(6) },
-       { .pin_name = PIN_NAME_SPICSA,  .pin_desc = PIN_DSC_SPICSA },
-       { .pin_name = PIN_NAME_SPICSB,  .pin_desc = PIN_DSC_SPICSB },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_DMM_UNUSED(9)},
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_DMM_UNUSED(10) },
-       { .pin_name = PIN_NAME_MOUT1EN, .pin_desc = PIN_DSC_MOUT1EN },
-       { .pin_name = PIN_NAME_MOUT2EN, .pin_desc = PIN_DSC_MOUT2EN },
-       { .pin_name = PIN_NAME_CANNSTB, .pin_desc = PIN_DSC_CANNSTB },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_DMM_UNUSED(14) },
-       { .pin_name = PIN_NAME_CANEN,   .pin_desc = PIN_DSC_CANEN },
-       { .pin_name = PIN_NAME_LIN2NSLP,.pin_desc = PIN_DSC_LIN2NSLP },
-       { .pin_name = PIN_NAME_LIN1NSLP,.pin_desc = PIN_DSC_LIN1NSLP },
-       { .pin_name = PIN_NAME_DININT,  .pin_desc = PIN_DSC_DININT },
-       /* GIOA pins */
-       { .pin_name = PIN_NAME_DIN8,    .pin_desc = PIN_DSC_DIN8 },
-       { .pin_name = PIN_NAME_DIN9,    .pin_desc = PIN_DSC_DIN9 },
-       { .pin_name = PIN_NAME_DIN10,   .pin_desc = PIN_DSC_DIN10 },
-       { .pin_name = PIN_NAME_DIN11,   .pin_desc = PIN_DSC_DIN11 },
-       { .pin_name = PIN_NAME_DIN12,   .pin_desc = PIN_DSC_DIN12 },
-       { .pin_name = PIN_NAME_DIN13,   .pin_desc = PIN_DSC_DIN13 },
-       { .pin_name = PIN_NAME_DIN14,   .pin_desc = PIN_DSC_DIN14 },
-       { .pin_name = PIN_NAME_DIN15,   .pin_desc = PIN_DSC_DIN15 },
-       /* GIOB pins */
-       { .pin_name = PIN_NAME_MOUT6EN, .pin_desc = PIN_DSC_MOUT6EN },
-       { .pin_name = PIN_NAME_MOUT5EN, .pin_desc = PIN_DSC_MOUT5EN },
-       { .pin_name = PIN_NAME_MOUT6IN, .pin_desc = PIN_DSC_MOUT6IN },
-       { .pin_name = PIN_NAME_MOUT5IN, .pin_desc = PIN_DSC_MOUT5IN },
-       { .pin_name = PIN_NAME_MOUT4EN, .pin_desc = PIN_DSC_MOUT4EN },
-       { .pin_name = PIN_NAME_MOUT3EN, .pin_desc = PIN_DSC_MOUT3EN },
-       { .pin_name = PIN_NAME_MOUT4IN, .pin_desc = PIN_DSC_MOUT4IN },
-       { .pin_name = PIN_NAME_MOUT3IN, .pin_desc = PIN_DSC_MOUT3IN },
-       /* HET1 pins */
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(0) },
-       { .pin_name = PIN_NAME_HBREN,    .pin_desc = PIN_DSC_HBREN },
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(2) },
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(3) },
-       { .pin_name = PIN_NAME_HBRDIR,   .pin_desc = PIN_DSC_HBRDIR },
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(5) },
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(6) },
-       { .pin_name = PIN_NAME_HBRPWM,   .pin_desc = PIN_DSC_HBRPWM },
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(8) },
-       { .pin_name = PIN_NAME_MOUT1IN,  .pin_desc = PIN_DSC_MOUT1IN },
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(10) },
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(11) },
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(12) },
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(13) },
-       { .pin_name = PIN_NAME_MOUT2IN,  .pin_desc = PIN_DSC_MOUT2IN },
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(15) },
-       { .pin_name = PIN_NAME_HOUT1IN,  .pin_desc = PIN_DSC_HOUT1IN },
-       { .pin_name = PIN_NAME_HOUT1DIAG,.pin_desc = PIN_DSC_HOUT1DIAG },
-       { .pin_name = PIN_NAME_HOUT2IN,  .pin_desc = PIN_DSC_HOUT2IN },
-       { .pin_name = PIN_NAME_HOUT2DIAG,.pin_desc = PIN_DSC_HOUT2DIAG },
-       { .pin_name = PIN_NAME_HOUT3IN,  .pin_desc = PIN_DSC_HOUT3IN },
-       { .pin_name = PIN_NAME_HOUT3DIAG,.pin_desc = PIN_DSC_HOUT3DIAG },
-       { .pin_name = PIN_NAME_HOUT4IN,  .pin_desc = PIN_DSC_HOUT4IN },
-       { .pin_name = PIN_NAME_HOUT4DIAG,.pin_desc = PIN_DSC_HOUT4DIAG },
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(22) },
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(23) },
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(24) },
-       { .pin_name = PIN_NAME_HOUT5IN,  .pin_desc = PIN_DSC_HOUT5IN },
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(26) },
-       { .pin_name = PIN_NAME_HOUT5DIAG,.pin_desc = PIN_DSC_HOUT5DIAG },
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(28) },
-       { .pin_name = PIN_NAME_HOUT6IN,  .pin_desc = PIN_DSC_HOUT6IN },
-       { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(30) },
-       { .pin_name = PIN_NAME_HOUT6DIAG,.pin_desc = PIN_DSC_HOUT6DIAG },
-       /* HET2 pins */
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(0) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(1) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(2) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(3) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(4) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(5) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(6) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(7) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(8) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(9) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(10) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(11) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(12) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(13) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(14) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(15) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(16) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(17) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(18) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(19) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(20) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(21) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(22) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(23) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(24) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(25) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(26) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(27) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(28) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(29) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(30) },
-       { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(31) }
-};
diff --git a/rpp/src/hal/_tms570_rpp/port_def.c b/rpp/src/hal/_tms570_rpp/port_def.c
deleted file mode 100644 (file)
index bc48325..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-/* Copyright (C) 2012-2013, 2015 Czech Technical University in Prague
- *
- * Authors:
- *     - Michal Horn <hornmich@fel.cvut.cz>
- *
- * This document contains proprietary information belonging to Czech
- * Technical University in Prague. Passing on and copying of this
- * document, and communication of its contents is not permitted
- * without prior written authorization.
- *
- * File : port_def.c
- *
- * Abstract:
- *         This file contains general ports definitions. Ports are defined according to their names on
- *      the RPP board.
- *      Each port is define by port descriptor, which consists of:
- *          - list of its pin (pin descriptors),
- *          - number of pins,
- *          - get value function pointer,
- *          - set value function pointer.
- *      Finally each port descriptor is mapped to the port name string.
- *
- *      Get and set value function are defined for each port style (ADC, SPI, GPIO) in separated files.
- */
-
-#include "hal/hal.h"
-#include "drv/spi.h"
-#include "drv/_tms570_rpp/adc.h"
-
-// FIXME Upper layer dependency/coupling
-// Declared in drv/adc.h
-extern uint32_t adc_get_port_val(uint32_t *config, uint32_t num_channels, uint32_t *values);
-
-
-// Lists of pins assigned to the ports
-static uint32_t port_cfg_dinmcu[] = {
-               PIN_DSC_DIN8, PIN_DSC_DIN9, PIN_DSC_DIN10, PIN_DSC_DIN11,
-               PIN_DSC_DIN12, PIN_DSC_DIN13, PIN_DSC_DIN14, PIN_DSC_DIN15
-};
-static uint32_t port_cfg_dinspi[] = { 1, 0 };
-static uint32_t port_cfg_houtdiag[] = {
-               PIN_DSC_HOUT1DIAG, PIN_DSC_HOUT2DIAG, PIN_DSC_HOUT3DIAG,
-               PIN_DSC_HOUT4DIAG, PIN_DSC_HOUT5DIAG, PIN_DSC_HOUT6DIAG
-};
-static uint32_t port_cfg_houtin[] = {
-               PIN_DSC_HOUT1IN, PIN_DSC_HOUT2IN, PIN_DSC_HOUT3IN,
-               PIN_DSC_HOUT4IN, PIN_DSC_HOUT5IN, PIN_DSC_HOUT6IN
-};
-static uint32_t port_cfg_houtifbk[] = { (uint32_t)adcREG2, adcGROUP1, 0 };
-static uint32_t port_cfg_adc[] = { (uint32_t)adcREG1, adcGROUP1, 1 };
-static uint32_t port_cfg_lout[] = { 1, 1 };
-static uint32_t port_cfg_dac1_2[] = { 3, 0 };
-static uint32_t port_cfg_dac3_4[] = { 3, 1 };
-static uint32_t port_cfg_dacdref[] = { 3, 2 };
-static uint32_t port_cfg_hbr[] = { 4, 0 };
-static uint32_t port_cfg_fray1[] = { 4, 1 };
-static uint32_t port_cfg_fray2[] = { 4, 2 };
-static uint32_t port_cfg_mouten[] = {
-               PIN_DSC_MOUT1EN, PIN_DSC_MOUT2EN, PIN_DSC_MOUT3EN,
-               PIN_DSC_MOUT4EN, PIN_DSC_MOUT5EN, PIN_DSC_MOUT6EN
-};
-static uint32_t port_cfg_moutin[] = {
-               PIN_DSC_MOUT1IN, PIN_DSC_MOUT2IN, PIN_DSC_MOUT3IN,
-               PIN_DSC_MOUT4IN, PIN_DSC_MOUT5IN, PIN_DSC_MOUT6IN
-};
-
-// Port descriptors
-static port_desc_t port_desc_dinmcu = {
- .config = port_cfg_dinmcu,
- .numValues = 8,
- .interfaceType = GPIO,
- .port_getfnc_ptr = &hal_gpio_port_get_val,
- .port_setfnc_ptr = ((void *)0),
-};
-static port_desc_t port_desc_dinspi = {
- .config = port_cfg_dinspi,
- .numValues = 3,
- .interfaceType = SPI,
- .port_getfnc_ptr = ((void *)0),
- .port_setfnc_ptr = &hal_spi_port_transfer_command,
-};
-static port_desc_t port_desc_houtdiag = {
- .config = port_cfg_houtdiag,
- .numValues = 6,
- .interfaceType = GPIO,
- .port_getfnc_ptr = &hal_gpio_port_get_val,
- .port_setfnc_ptr = ((void *)0),
-};
-static port_desc_t port_desc_houtin = {
- .config = port_cfg_houtin,
- .numValues = 6,
- .interfaceType = GPIO,
- .port_getfnc_ptr = &hal_gpio_port_get_val,
- .port_setfnc_ptr = &hal_gpio_port_set_val,
-};
-static port_desc_t port_desc_houtifbk = {
- .config = port_cfg_houtifbk,
- .numValues = 6,
- .interfaceType = ADC,
- .port_getfnc_ptr = &adc_get_port_val,
- .port_setfnc_ptr = ((void *)0),
-};
-static port_desc_t port_desc_adc = {
- .config = port_cfg_adc,
- .numValues = 12,
- .interfaceType = ADC,
- .port_getfnc_ptr = &adc_get_port_val,
- .port_setfnc_ptr = ((void *)0),
-};
-static port_desc_t port_desc_lout = {
- .config = port_cfg_lout,
- .numValues = 4,
- .interfaceType = SPI,
- .port_getfnc_ptr = ((void *)0),
- .port_setfnc_ptr = &hal_spi_port_transfer_command,
-};
-static port_desc_t port_desc_dac1_2 = {
- .config = port_cfg_dac1_2,
- .numValues = 2,
- .interfaceType = SPI,
- .port_getfnc_ptr = ((void *)0),
- .port_setfnc_ptr = &hal_spi_port_transfer_command,
-};
-static port_desc_t port_desc_dac3_4 = {
- .config = port_cfg_dac3_4,
- .numValues = 2,
- .interfaceType = SPI,
- .port_getfnc_ptr = ((void *)0),
- .port_setfnc_ptr = &hal_spi_port_transfer_command,
-};
-static port_desc_t port_desc_dacdref = {
- .config = port_cfg_dacdref,
- .numValues = 2,
- .interfaceType = SPI,
- .port_getfnc_ptr = ((void *)0),
- .port_setfnc_ptr = &hal_spi_port_transfer_command,
-};
-static port_desc_t port_desc_hbr = {
- .config = port_cfg_hbr,
- .numValues = 2,
- .interfaceType = SPI,
- .port_getfnc_ptr = ((void *)0),
- .port_setfnc_ptr = &hal_spi_port_transfer_command,
-};
-static port_desc_t port_desc_fray1 = {
- .config = port_cfg_fray1,
- .numValues = 2,
- .interfaceType = SPI,
- .port_getfnc_ptr = ((void *)0),
- .port_setfnc_ptr = &hal_spi_port_transfer_command,
-};
-static port_desc_t port_desc_fray2 = {
- .config = port_cfg_fray2,
- .numValues = 2,
- .interfaceType = SPI,
- .port_getfnc_ptr = ((void *)0),
- .port_setfnc_ptr = &hal_spi_port_transfer_command,
-};
-static port_desc_t port_desc_mouten = {
- .config = port_cfg_mouten,
- .numValues = 6,
- .interfaceType = GPIO,
- .port_getfnc_ptr = &hal_gpio_port_get_val,
- .port_setfnc_ptr = ((void *)0),
-};
-static port_desc_t port_desc_moutin = {
- .config = port_cfg_moutin,
- .numValues = 6,
- .interfaceType = GPIO,
- .port_getfnc_ptr = &hal_gpio_port_get_val,
- .port_setfnc_ptr = &hal_gpio_port_set_val,
-};
-
-// Maps of port names to port descriptors
-port_def_t port_definition[PORT_CNT] = {
-       {.name = PORT_NAME_DINMCU,      .desc = &port_desc_dinmcu},
-       {.name = PORT_NAME_DINSPI,      .desc = &port_desc_dinspi},
-       {.name = PORT_NAME_HOUTDIAG,    .desc = &port_desc_houtdiag},
-       {.name = PORT_NAME_HOUTIN,      .desc = &port_desc_houtin},
-       {.name = PORT_NAME_HOUTIFBK,    .desc = &port_desc_houtifbk},
-       {.name = PORT_NAME_ADC,         .desc = &port_desc_adc},
-       {.name = PORT_NAME_LOUT,        .desc = &port_desc_lout},
-       {.name = PORT_NAME_DAC1_2,      .desc = &port_desc_dac1_2},
-       {.name = PORT_NAME_DAC3_4,      .desc = &port_desc_dac3_4},
-       {.name = PORT_NAME_DACDREF,     .desc = &port_desc_dacdref},
-       {.name = PORT_NAME_HBR,         .desc = &port_desc_hbr},
-       {.name = PORT_NAME_FRAY1,       .desc = &port_desc_fray1},
-       {.name = PORT_NAME_FRAY2,       .desc = &port_desc_fray2},
-       {.name = PORT_NAME_MOUTEN,      .desc = &port_desc_mouten},
-       {.name = PORT_NAME_MOUTIN,      .desc = &port_desc_moutin}
-};
-
diff --git a/rpp/src/hal/hal.c b/rpp/src/hal/hal.c
deleted file mode 100644 (file)
index c7c3483..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-/*
- * hal.c
- *
- *  Created on: 16.7.2015
- *      Author: michal
- */
-
-#include "hal/hal.h"
-#include "drv/spi.h"
-
-extern gioPORT_t *port_id_map[MAX_PORT_CNT];
-extern pin_map_element_t pin_map[MAX_PIN_CNT];
-extern port_def_t port_definition[PORT_CNT];
-
-#define SPI_PORT_BUF_LEN 4
-/** Buffer for spi command to be sent */
-uint8_t spi_port_buf_tx[SPI_PORT_BUF_LEN];
-/** Buffer for spi response */
-uint8_t spi_port_buf_rx[SPI_PORT_BUF_LEN];
-
-uint8_t hal_gpio_get_pin_cnt() {
-       return MAX_PIN_CNT;
-}
-
-pin_map_element_t* hal_gpio_get_pin_map() {
-       return pin_map;
-}
-
-gioPORT_t *hal_gpio_get_port_base(uint32_t port_num)
-{
-       return port_id_map[port_num];
-}
-
-uint32_t hal_gpio_pin_get_port_num(uint32_t pin_dsc)
-{
-
-       return (pin_dsc & ~PORT_CONF_MASK) >> PORT_SHIFT;
-}
-
-gioPORT_t *hal_gpio_pin_get_port_base(uint32_t pin_dsc)
-{
-       return hal_gpio_get_port_base(hal_gpio_pin_get_port_num(pin_dsc));
-}
-
-
-uint32_t *hal_gpio_pin_get_dsc(const char *pin_name, int len)
-{
-       uint32_t i;
-       const char *pin_name_ptr;
-       char pin_name_term[32];
-
-       if (len != -1) {    // pin name not terminated by '\0'
-               strncpy(pin_name_term, pin_name, len);
-               pin_name_term[len] = '\0';
-               pin_name_ptr = pin_name_term;
-       }
-       else pin_name_ptr = pin_name;
-
-       for (i = 0; i < MAX_PIN_CNT; i++) {
-               if (strcmp(pin_name_ptr, pin_map[i].pin_name) == 0)
-                       return &pin_map[i].pin_desc;
-       }
-       return NULL;
-}
-
-
-uint32_t hal_gpio_pin_get_value(uint32_t pin_dsc)
-{
-       return ((hal_gpio_pin_get_port_base(pin_dsc)->DIN) >> (pin_dsc & 0x1f)) & 1;
-}
-
-
-void hal_gpio_pin_set_value(uint32_t pin_dsc, uint32_t value)
-{
-       if (value)
-               hal_gpio_pin_get_port_base(pin_dsc)->DSET = 1 << (pin_dsc & 0x1f);
-       else
-               hal_gpio_pin_get_port_base(pin_dsc)->DCLR = 1 << (pin_dsc & 0x1f);
-}
-
-
-int hal_gpio_pin_set_dir_in(uint32_t pin_dsc)
-{
-       hal_gpio_pin_get_port_base(pin_dsc)->DIR &= ~(1 << (pin_dsc & 0x1f));
-       return 0;
-}
-
-int hal_gpio_pin_set_dir_out(uint32_t pin_dsc, uint32_t value)
-{
-       hal_gpio_pin_set_value(pin_dsc, value);
-       hal_gpio_pin_get_port_base(pin_dsc)->DIR |= (1 << (pin_dsc & 0x1f));
-       return 0;
-}
-
-int hal_gpio_pin_get_dir(uint32_t pin_dsc)
-{
-       return (hal_gpio_pin_get_port_base(pin_dsc)->DIR >> (pin_dsc & 0x1f)) & 1;
-}
-
-
-uint32_t hal_gpio_pin_set_mode(uint32_t pin_dsc, uint32_t mode)
-{
-       gioPORT_t *gioPort = hal_gpio_pin_get_port_base(pin_dsc);
-
-       if (mode & PORT_CONF_MODE_PTYPE_MASK)
-               gioPort->PSL |= (1 << (pin_dsc & 0x1f));
-       else
-               gioPort->PSL &= ~(1 << (pin_dsc & 0x1f));
-       if (mode & PORT_CONF_MODE_PEN_MASK)
-               gioPort->PULDIS |= (1 << (pin_dsc & 0x1f));
-       else
-               gioPort->PULDIS &= ~(1 << (pin_dsc & 0x1f));
-       return 0;
-}
-
-
-uint32_t hal_gpio_pin_set_od(uint32_t pin_dsc, uint32_t od)
-{
-       gioPORT_t *gioPort = hal_gpio_pin_get_port_base(pin_dsc);
-
-       if (od & PORT_CONF_OD_ON)
-               gioPort->PDR |= (1 << (pin_dsc & 0x1f));
-       else
-               gioPort->PDR &= ~(1 << (pin_dsc & 0x1f));
-       return 0;
-}
-
-
-uint32_t hal_gpio_pin_set_config(uint32_t pin_dsc, uint32_t conf)
-{
-       pin_dsc &= ~PORT_CONF_MASK;
-       hal_gpio_pin_set_mode(pin_dsc, conf & PORT_CONF_MODE_MASK);
-       hal_gpio_pin_set_od(pin_dsc, conf & PORT_CONF_OD_MASK);
-       if (conf & PORT_CONF_SET_DIR) {
-               if ((conf & PORT_CONF_DIR_MASK) == (PORT_CONF_DIR_IN & PORT_CONF_DIR_MASK))
-                       hal_gpio_pin_set_dir_in(pin_dsc);
-               else
-                       hal_gpio_pin_set_dir_out(pin_dsc, conf & PORT_CONF_INIT_HIGH);
-       }
-
-       return 0;
-}
-
-uint32_t hal_gpio_pin_configure(uint32_t pin_dsc)
-{
-       return hal_gpio_pin_set_config(pin_dsc, pin_dsc);
-}
-
-
-uint32_t hal_gpio_port_get_val(uint32_t *config, uint32_t num_val, uint32_t *values)
-{
-       uint32_t i;
-
-       for (i = 0; i < num_val; i++) {
-               values[i] = hal_gpio_pin_get_value(config[i]);
-       }
-       return 0;
-}
-
-uint32_t hal_gpio_port_set_val(uint32_t *config, uint32_t num_val, const uint32_t *values)
-{
-       uint32_t i;
-
-       for (i = 0; i < num_val; i++) {
-               hal_gpio_pin_set_value(config[i], (values[i/8] >> i%8) & 0x1);
-       }
-       return 0;
-}
-
-const port_def_t *hal_port_get_map()
-{
-       return (const port_def_t *)port_definition;
-}
-
-port_desc_t *hal_port_get_dsc(const char *port_name, int len)
-{
-       uint32_t i;
-       const char *port_name_ptr;
-       char port_name_term[32];
-
-       if (len != -1) {    // port name not terminated by '\0'
-               strncpy(port_name_term, port_name, len);
-               port_name_term[len] = '\0';
-               port_name_ptr = port_name_term;
-       }
-       else port_name_ptr = port_name;
-
-       for (i = 0; i < PORT_CNT; i++) {
-               if (strcmp(port_name_ptr, port_definition[i].name) == 0)
-                       return port_definition[i].desc;
-       }
-       return NULL;
-}
-
-uint32_t hal_port_get_val_cnt(const port_desc_t* port_desc) {
-       if (port_desc != NULL) {
-               return port_desc->numValues;
-       }
-       else {
-               return 0;
-       }
-}
-
-uint32_t hal_spi_port_transfer_command(uint32_t *config, uint32_t num_bytes, const uint32_t *commands)
-{
-       spi_drv_t *ifc;
-       int i;
-       uint32_t ret;
-
-       for (i = 0; i < num_bytes; i++)
-               spi_port_buf_tx[i] = commands[i];
-
-       ifc = spi_find_drv(NULL, config[0]);
-       if (ifc == NULL)
-               return 0;
-
-       if (!(ifc->flags & SPI_IFC_ON))
-               return 0;
-
-       spi_transfer(ifc, config[1], num_bytes, spi_port_buf_tx, spi_port_buf_rx);
-       ret = 0;
-       for (i = 0; i < num_bytes; i++)
-               ret |= spi_port_buf_rx[i] << i*8;
-       return ret;
-}
index 0edfc3b2317bb13c18184ec8d29b519991574cf5..967025ffa8ad873e4da07fcfc27db0ad51b8cced 100644 (file)
@@ -26,7 +26,7 @@
  *      bit or group of bits in the response.
  */
 
-#include "hal/hal.h"
+#include "drv/digital_io.h"
 #include "drv/spi.h"
 #include "hal/spi_resp_transl.h"
 
@@ -268,13 +268,13 @@ static const spitr_cmd_map_t hbr_cmd_map[HBR_NUM_CMD_D] = {
 
 /* Map command maps to SPI peripheral name */
 static const spitr_name_map_t spitr_map[NUM_SPI_DEVICES] = {
-       { .spi_name = PORT_NAME_DINSPI,     .cmd_map = din_cmd_map,     .num_cmd = DIN_NUM_CMD_D},
-       { .spi_name = PORT_NAME_LOUT,       .cmd_map = lout_cmd_map,    .num_cmd = LOUT_NUM_CMD_D },
-       { .spi_name = PORT_NAME_DAC1_2,     .cmd_map = dac_cmd_map,     .num_cmd = DAC_NUM_CMD_D },
-       { .spi_name = PORT_NAME_DAC3_4,     .cmd_map = dac_cmd_map,     .num_cmd = DAC_NUM_CMD_D },
-       { .spi_name = PORT_NAME_HBR,        .cmd_map = hbr_cmd_map,     .num_cmd = HBR_NUM_CMD_D },
-       { .spi_name = PORT_NAME_FRAY1,      .cmd_map = fray_cmd_map,    .num_cmd = FRAY_NUM_CMD_D },
-       { .spi_name = PORT_NAME_FRAY2,      .cmd_map = fray_cmd_map,    .num_cmd = FRAY_NUM_CMD_D }
+       { .spi_name = DIO_PORT_NAME_DINSPI,     .cmd_map = din_cmd_map,     .num_cmd = DIN_NUM_CMD_D},
+       { .spi_name = DIO_PORT_NAME_LOUT,       .cmd_map = lout_cmd_map,    .num_cmd = LOUT_NUM_CMD_D },
+       { .spi_name = DIO_PORT_NAME_DAC1_2,     .cmd_map = dac_cmd_map,     .num_cmd = DAC_NUM_CMD_D },
+       { .spi_name = DIO_PORT_NAME_DAC3_4,     .cmd_map = dac_cmd_map,     .num_cmd = DAC_NUM_CMD_D },
+       { .spi_name = DIO_PORT_NAME_HBR,        .cmd_map = hbr_cmd_map,     .num_cmd = HBR_NUM_CMD_D },
+       { .spi_name = DIO_PORT_NAME_FRAY1,      .cmd_map = fray_cmd_map,    .num_cmd = FRAY_NUM_CMD_D },
+       { .spi_name = DIO_PORT_NAME_FRAY2,      .cmd_map = fray_cmd_map,    .num_cmd = FRAY_NUM_CMD_D }
 };
 
 
index bf8efb832fdfd45f736218b299eb2f0de5e52a42..0d3fd7230e6fc59c8a15e68514a0fec677eb6506 100644 (file)
@@ -60,7 +60,7 @@
 #include "netif/ppp_oe.h"
 /* end - lwIP headers */
 
-#include "hal/hal.h"
+#include "drv/digital_io.h"
 #include "sys/sys.h" /* includes - sys/phy_dp83848h.h */
 #include "drv/emac.h"
 #include "os/os.h"
@@ -521,16 +521,17 @@ static err_t rpp_eth_hw_init(struct hdkif *hdkif)
         */
        index = configCPU_CLOCK_HZ/1000000;
 #endif /* NO_SYS */
-       hal_gpio_pin_set_value(*hal_gpio_pin_get_dsc(PIN_NAME_ETHRST, -1), 0);
-       while(index--)
-               ;
+       dio_gpio_pin_set_value(*dio_gpio_pin_get_dsc(PIN_NAME_ETHRST, -1), 0);
+       while (index--) ;
 #endif /* !INIT_ONLY_AFTER_RESET */
+          /* we have pull-down resistor, so after reset, we only need to put ETHRST pin to log. high */
+       dio_gpio_pin_set_value(*dio_gpio_pin_get_dsc(DIO_PIN_NAME_ETHRST, -1), 1);
 
        /*
         * We have pull-down resistor, so after reset, we only need
         * to put ETHRST pin to log. high
         */
-       hal_gpio_pin_set_value(*hal_gpio_pin_get_dsc(PIN_NAME_ETHRST, -1), 1);
+       dio_gpio_pin_set_value(*dio_gpio_pin_get_dsc(DIO_PIN_NAME_ETHRST, -1), 1);
 
        /* Initialize EMAC control module and EMAC module */
        EMACInit(hdkif->emac_ctrl_base, hdkif->emac_base);
index 0c3b1d83c246427845c204573331565b08fd5354..37d8cdbf8ac5b3710f45c9bc8f610664a11c48be 100644 (file)
@@ -14,9 +14,9 @@
 static uint32_t ports_initialized = 0;
 
 /* Configuration consistency check */
-#if RPP_GIO_PORT_GIOA != (1 << PORT_ID_GIOA) || \
-       RPP_GIO_PORT_GIOB != (1 << PORT_ID_GIOB) || \
-       RPP_GIO_PORT_NHET1 != (1 << PORT_ID_HET1)
+#if RPP_GIO_PORT_GIOA != (1 << DIO_PORT_ID_GIOA) || \
+       RPP_GIO_PORT_GIOB != (1 << DIO_PORT_ID_GIOB) || \
+       RPP_GIO_PORT_NHET1 != (1 << DIO_PORT_ID_HET1)
 #error Port configuration is not consistent.
 #endif
 
@@ -25,14 +25,14 @@ int8_t rpp_gio_init(uint32_t init_ports)
        unsigned pin;
 
        gioREG->GCR0 = 1;   // Bring GIO out of reset
-       pin_map_element_t* pin_map = hal_gpio_get_pin_map();
+       dio_pin_map_element_t* pin_map = dio_gpio_get_pin_map();
 
 
-       for (pin = 0; pin < hal_gpio_get_pin_cnt(); pin++) {
-               int port_num = hal_gpio_pin_get_port_num(pin_map[pin].pin_desc);
+       for (pin = 0; pin < dio_gpio_get_pin_cnt(); pin++) {
+               int port_num = dio_gpio_pin_get_port_num(pin_map[pin].pin_desc);
                if ((init_ports & (1 << port_num)) &&
                        !(ports_initialized & (1 << port_num)))
-                       hal_gpio_pin_configure(pin_map[pin].pin_desc);
+                       dio_gpio_pin_configure(pin_map[pin].pin_desc);
        }
 
        ports_initialized |= init_ports;