]> rtime.felk.cvut.cz Git - pes-rpp/rpp-lib.git/blob - rpp/src/hal/_rm48_hdk/gpio_def.c
Remove indirect port definition and the related macros
[pes-rpp/rpp-lib.git] / rpp / src / hal / _rm48_hdk / gpio_def.c
1 /* Copyright (C) 2012-2013, 2015 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_rm48_def.c
12  *
13  * Abstract:
14  *          This file contains gpio pins definitions
15  *
16  *      On RM48 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_rm48 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_rm48_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         [PORT_ID_DMM]  = (gioPORT_t *)dmmPORT,
35         [PORT_ID_GIOA] = (gioPORT_t *)gioPORTA,
36         [PORT_ID_GIOB] = (gioPORT_t *)gioPORTB,
37         [PORT_ID_HET1] = (gioPORT_t *)hetPORT1,
38         [PORT_ID_HET2] = (gioPORT_t *)hetPORT2
39 };
40
41 /* Some pins are commented out, because they are pinmuxed with SCI. */
42 /**
43  * Map of pin names to pin descriptors. Each pin can be then easily
44  * found just by its name given as a string to hal_gpio_get_pin_dsc
45  * function*/
46 pin_map_element_t pin_map[MAX_PIN_CNT] = {
47         /* DMM pins */
48         { .pin_name = PIN_NAME_GIOA0, .pin_desc = PIN_DSC_GIOA0 },
49         { .pin_name = PIN_NAME_GIOA1, .pin_desc = PIN_DSC_GIOA1 },
50         { .pin_name = PIN_NAME_GIOA2, .pin_desc = PIN_DSC_GIOA2 },
51         { .pin_name = PIN_NAME_GIOA3, .pin_desc = PIN_DSC_GIOA3 },
52         { .pin_name = PIN_NAME_GIOA4, .pin_desc = PIN_DSC_GIOA4 },
53         { .pin_name = PIN_NAME_GIOA5, .pin_desc = PIN_DSC_GIOA5 },
54         { .pin_name = PIN_NAME_GIOA6, .pin_desc = PIN_DSC_GIOA6 },
55         { .pin_name = PIN_NAME_GIOA7, .pin_desc = PIN_DSC_GIOA7 },
56         { .pin_name = PIN_NAME_GIOB0, .pin_desc = PIN_DSC_GIOB0 },
57         { .pin_name = PIN_NAME_GIOB1, .pin_desc = PIN_DSC_GIOB1 },
58         { .pin_name = PIN_NAME_GIOB2, .pin_desc = PIN_DSC_GIOB2 },
59         { .pin_name = PIN_NAME_GIOB3, .pin_desc = PIN_DSC_GIOB3 },
60         { .pin_name = PIN_NAME_GIOB4, .pin_desc = PIN_DSC_GIOB4 },
61         { .pin_name = PIN_NAME_GIOB5, .pin_desc = PIN_DSC_GIOB5 },
62         { .pin_name = PIN_NAME_GIOB6, .pin_desc = PIN_DSC_GIOB6 },
63         { .pin_name = PIN_NAME_GIOB7, .pin_desc = PIN_DSC_GIOB7 },
64         { .pin_name = PIN_NAME_NHET1_0, .pin_desc = PIN_DSC_NHET1_0 },
65         { .pin_name = PIN_NAME_NHET1_1, .pin_desc = PIN_DSC_NHET1_1 },
66         { .pin_name = PIN_NAME_NHET1_2, .pin_desc = PIN_DSC_NHET1_2 },
67         { .pin_name = PIN_NAME_NHET1_3, .pin_desc = PIN_DSC_NHET1_3 },
68         { .pin_name = PIN_NAME_NHET1_4, .pin_desc = PIN_DSC_NHET1_4 },
69         { .pin_name = PIN_NAME_NHET1_5, .pin_desc = PIN_DSC_NHET1_5 },
70         /*{ .pin_name = PIN_NAME_NHET1_6, .pin_desc = PIN_DSC_NHET1_6 },*/
71         { .pin_name = PIN_NAME_NHET1_7, .pin_desc = PIN_DSC_NHET1_7 },
72         { .pin_name = PIN_NAME_NHET1_8, .pin_desc = PIN_DSC_NHET1_8 },
73         { .pin_name = PIN_NAME_NHET1_9, .pin_desc = PIN_DSC_NHET1_9 },
74         { .pin_name = PIN_NAME_NHET1_10, .pin_desc = PIN_DSC_NHET1_10 },
75         { .pin_name = PIN_NAME_NHET1_11, .pin_desc = PIN_DSC_NHET1_11 },
76         { .pin_name = PIN_NAME_NHET1_12, .pin_desc = PIN_DSC_NHET1_12 },
77         /*{ .pin_name = PIN_NAME_NHET1_13, .pin_desc = PIN_DSC_NHET1_13 },*/
78         { .pin_name = PIN_NAME_NHET1_14, .pin_desc = PIN_DSC_NHET1_14 },
79         { .pin_name = PIN_NAME_NHET1_15, .pin_desc = PIN_DSC_NHET1_15 },
80         { .pin_name = PIN_NAME_NHET1_16, .pin_desc = PIN_DSC_NHET1_16 },
81         { .pin_name = PIN_NAME_NHET1_17, .pin_desc = PIN_DSC_NHET1_17 },
82         { .pin_name = PIN_NAME_NHET1_18, .pin_desc = PIN_DSC_NHET1_18 },
83         { .pin_name = PIN_NAME_NHET1_19, .pin_desc = PIN_DSC_NHET1_19 },
84         { .pin_name = PIN_NAME_NHET1_20, .pin_desc = PIN_DSC_NHET1_20 },
85         { .pin_name = PIN_NAME_NHET1_21, .pin_desc = PIN_DSC_NHET1_21 },
86         { .pin_name = PIN_NAME_NHET1_22, .pin_desc = PIN_DSC_NHET1_22 },
87         { .pin_name = PIN_NAME_NHET1_23, .pin_desc = PIN_DSC_NHET1_23 },
88         { .pin_name = PIN_NAME_NHET1_24, .pin_desc = PIN_DSC_NHET1_24 },
89         { .pin_name = PIN_NAME_NHET1_25, .pin_desc = PIN_DSC_NHET1_25 },
90         { .pin_name = PIN_NAME_NHET1_26, .pin_desc = PIN_DSC_NHET1_26 },
91         { .pin_name = PIN_NAME_NHET1_27, .pin_desc = PIN_DSC_NHET1_27 },
92         { .pin_name = PIN_NAME_NHET1_28, .pin_desc = PIN_DSC_NHET1_28 },
93         { .pin_name = PIN_NAME_NHET1_29, .pin_desc = PIN_DSC_NHET1_29 },
94         { .pin_name = PIN_NAME_NHET1_30, .pin_desc = PIN_DSC_NHET1_30 },
95         { .pin_name = PIN_NAME_NHET1_31, .pin_desc = PIN_DSC_NHET1_31 },
96         /* FIXME: add definitions of all unused pins DMM, HET2, SCI... */
97 };