]> rtime.felk.cvut.cz Git - pes-rpp/rpp-lib.git/blobdiff - rpp/include/hal/_tms570_rpp/gpio_def.h
Move platform specific header files to platform specific directories
[pes-rpp/rpp-lib.git] / rpp / include / hal / _tms570_rpp / gpio_def.h
diff --git a/rpp/include/hal/_tms570_rpp/gpio_def.h b/rpp/include/hal/_tms570_rpp/gpio_def.h
new file mode 100644 (file)
index 0000000..21c52b0
--- /dev/null
@@ -0,0 +1,194 @@
+/**
+ *
+ * @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_ */