]> rtime.felk.cvut.cz Git - pes-rpp/rpp-lib.git/blob - rpp/src/hal/_tms570_rpp/gpio_def.c
Merge branch 'tms570_emac' of git@rtime.felk.cvut.cz:pes-rpp/rpp-lib into personal...
[pes-rpp/rpp-lib.git] / rpp / src / hal / _tms570_rpp / gpio_def.c
1 /* Copyright (C) 2012-2013 Czech Technical University in Prague
2  *
3  * Authors:
4  *     - Michal Horn <hornmich@fel.cvut.cz>
5  *
6  * This document contains proprietary information belonging to Czech
7  * Technical University in Prague. Passing on and copying of this
8  * document, and communication of its contents is not permitted
9  * without prior written authorization.
10  *
11  * File : hal_gpio_tms570_def.c
12  *
13  * Abstract:
14  *          This file contains gpio pins definitions
15  *
16  *      On TMS570 MCU pins can operates as GIO on ports DMM, GIOA, GIOB,
17  *      HET1 and HET2. Those pins, that are defined in this file, can be
18  *      accessed directly as GPIO by hal_gpio_set_value and
19  *      hal_gpio_get_value. Pin configuration can be modified by functions
20  *      defined in hal_gpio_tms570 source and header files.
21  *
22  *      NOTE: Although the configuration functions are implemented and
23  *      should be ready to use, they were only slightly tested and are not
24  *      used by the RPP software yet.
25  */
26
27 //#include "hal/gpio_tms570_def.h"
28 #include "hal/hal.h"
29
30 /**
31  * Array of ports used as GPIO. Thanks to that array, we can
32  * determine port just by index in pin_desc at 5th bit */
33 gioPORT_t *port_id_map[MAX_PORT_CNT] = {
34         (gioPORT_t *)dmmPORT,
35         (gioPORT_t *)gioPORTA,
36         (gioPORT_t *)gioPORTB,
37         (gioPORT_t *)hetPORT1,
38         (gioPORT_t *)hetPORT2
39 };
40
41 /**
42  * Map of pin names to pin descriptors. Each pin can be then easily
43  * found just by its name given as a string to hal_gpio_get_pin_dsc
44  * function*/
45 pin_map_element_t pin_map[MAX_PIN_CNT] = {
46         /* DMM pins */
47         { .pin_name = PIN_NAME_FANCTRL, .pin_desc = PIN_DSC_FANCTRL },
48         { .pin_name = PIN_NAME_ETHRST,  .pin_desc = PIN_DSC_ETHRST },
49         { .pin_name = PIN_NAME_VBAT1EN, .pin_desc = PIN_DSC_VBAT1EN },
50         { .pin_name = PIN_NAME_VBAT2EN, .pin_desc = PIN_DSC_VBAT2EN },
51         { .pin_name = PIN_NAME_VBAT3EN, .pin_desc = PIN_DSC_VBAT3EN },
52         { .pin_name = PIN_NAME_VBATEN,  .pin_desc = PIN_DSC_VBATEN },
53         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_DMM_UNUSED(6) },
54         { .pin_name = PIN_NAME_SPICSA,  .pin_desc = PIN_DSC_SPICSA },
55         { .pin_name = PIN_NAME_SPICSB,  .pin_desc = PIN_DSC_SPICSB },
56         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_DMM_UNUSED(9)},
57         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_DMM_UNUSED(10) },
58         { .pin_name = PIN_NAME_MOUT1EN, .pin_desc = PIN_DSC_MOUT1EN },
59         { .pin_name = PIN_NAME_MOUT2EN, .pin_desc = PIN_DSC_MOUT2EN },
60         { .pin_name = PIN_NAME_CANNSTB, .pin_desc = PIN_DSC_CANNSTB },
61         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_DMM_UNUSED(14) },
62         { .pin_name = PIN_NAME_CANEN,   .pin_desc = PIN_DSC_CANEN },
63         { .pin_name = PIN_NAME_LIN2NSLP,.pin_desc = PIN_DSC_LIN2NSLP },
64         { .pin_name = PIN_NAME_LIN1NSLP,.pin_desc = PIN_DSC_LIN1NSLP },
65         { .pin_name = PIN_NAME_DININT,  .pin_desc = PIN_DSC_DININT },
66         /* GIOA pins */
67         { .pin_name = PIN_NAME_DIN8,    .pin_desc = PIN_DSC_DIN8 },
68         { .pin_name = PIN_NAME_DIN9,    .pin_desc = PIN_DSC_DIN9 },
69         { .pin_name = PIN_NAME_DIN10,   .pin_desc = PIN_DSC_DIN10 },
70         { .pin_name = PIN_NAME_DIN11,   .pin_desc = PIN_DSC_DIN11 },
71         { .pin_name = PIN_NAME_DIN12,   .pin_desc = PIN_DSC_DIN12 },
72         { .pin_name = PIN_NAME_DIN13,   .pin_desc = PIN_DSC_DIN13 },
73         { .pin_name = PIN_NAME_DIN14,   .pin_desc = PIN_DSC_DIN14 },
74         { .pin_name = PIN_NAME_DIN15,   .pin_desc = PIN_DSC_DIN15 },
75         /* GIOB pins */
76         { .pin_name = PIN_NAME_MOUT6EN, .pin_desc = PIN_DSC_MOUT6EN },
77         { .pin_name = PIN_NAME_MOUT5EN, .pin_desc = PIN_DSC_MOUT5EN },
78         { .pin_name = PIN_NAME_MOUT6IN, .pin_desc = PIN_DSC_MOUT6IN },
79         { .pin_name = PIN_NAME_MOUT5IN, .pin_desc = PIN_DSC_MOUT5IN },
80         { .pin_name = PIN_NAME_MOUT4EN, .pin_desc = PIN_DSC_MOUT4EN },
81         { .pin_name = PIN_NAME_MOUT3EN, .pin_desc = PIN_DSC_MOUT3EN },
82         { .pin_name = PIN_NAME_MOUT4IN, .pin_desc = PIN_DSC_MOUT4IN },
83         { .pin_name = PIN_NAME_MOUT3IN, .pin_desc = PIN_DSC_MOUT3IN },
84         /* HET1 pins */
85         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(0) },
86         { .pin_name = PIN_NAME_HBREN,    .pin_desc = PIN_DSC_HBREN },
87         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(2) },
88         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(3) },
89         { .pin_name = PIN_NAME_HBRDIR,   .pin_desc = PIN_DSC_HBRDIR },
90         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(5) },
91         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(6) },
92         { .pin_name = PIN_NAME_HBRPWM,   .pin_desc = PIN_DSC_HBRPWM },
93         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(8) },
94         { .pin_name = PIN_NAME_MOUT1IN,  .pin_desc = PIN_DSC_MOUT1IN },
95         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(10) },
96         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(11) },
97         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(12) },
98         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(13) },
99         { .pin_name = PIN_NAME_MOUT2IN,  .pin_desc = PIN_DSC_MOUT2IN },
100         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(15) },
101         { .pin_name = PIN_NAME_HOUT1IN,  .pin_desc = PIN_DSC_HOUT1IN },
102         { .pin_name = PIN_NAME_HOUT1DIAG,.pin_desc = PIN_DSC_HOUT1DIAG },
103         { .pin_name = PIN_NAME_HOUT2IN,  .pin_desc = PIN_DSC_HOUT2IN },
104         { .pin_name = PIN_NAME_HOUT2DIAG,.pin_desc = PIN_DSC_HOUT2DIAG },
105         { .pin_name = PIN_NAME_HOUT3IN,  .pin_desc = PIN_DSC_HOUT3IN },
106         { .pin_name = PIN_NAME_HOUT3DIAG,.pin_desc = PIN_DSC_HOUT3DIAG },
107         { .pin_name = PIN_NAME_HOUT4IN,  .pin_desc = PIN_DSC_HOUT4IN },
108         { .pin_name = PIN_NAME_HOUT4DIAG,.pin_desc = PIN_DSC_HOUT4DIAG },
109         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(22) },
110         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(23) },
111         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(24) },
112         { .pin_name = PIN_NAME_HOUT5IN,  .pin_desc = PIN_DSC_HOUT5IN },
113         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(26) },
114         { .pin_name = PIN_NAME_HOUT5DIAG,.pin_desc = PIN_DSC_HOUT5DIAG },
115         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(28) },
116         { .pin_name = PIN_NAME_HOUT6IN,  .pin_desc = PIN_DSC_HOUT6IN },
117         { .pin_name = PIN_NAME_UNUSED,   .pin_desc = PIN_DSC_HET1_UNUSED(30) },
118         { .pin_name = PIN_NAME_HOUT6DIAG,.pin_desc = PIN_DSC_HOUT6DIAG },
119         /* HET2 pins */
120         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(0) },
121         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(1) },
122         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(2) },
123         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(3) },
124         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(4) },
125         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(5) },
126         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(6) },
127         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(7) },
128         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(8) },
129         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(9) },
130         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(10) },
131         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(11) },
132         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(12) },
133         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(13) },
134         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(14) },
135         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(15) },
136         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(16) },
137         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(17) },
138         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(18) },
139         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(19) },
140         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(20) },
141         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(21) },
142         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(22) },
143         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(23) },
144         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(24) },
145         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(25) },
146         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(26) },
147         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(27) },
148         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(28) },
149         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(29) },
150         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(30) },
151         { .pin_name = PIN_NAME_UNUSED,  .pin_desc = PIN_DSC_HET2_UNUSED(31) }
152 };