1 /* Copyright (C) 2012-2013, 2015 Czech Technical University in Prague
4 * - Michal Horn <hornmich@fel.cvut.cz>
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.
11 * File : hal_gpio_rm48_def.c
14 * This file contains gpio pins definitions
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.
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.
27 //#include "hal/gpio_rm48_def.h"
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_GIOA] = (gioPORT_t *)gioPORTA,
35 [PORT_ID_GIOB] = (gioPORT_t *)gioPORTB,
36 [PORT_ID_HET1] = (gioPORT_t *)hetPORT1,
37 [PORT_ID_HET2] = (gioPORT_t *)hetPORT2
40 /* Some pins are commented out, because they are pinmuxed with SCI. */
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
45 pin_map_element_t pin_map[MAX_PIN_CNT] = {
47 { .pin_name = PIN_NAME_GIOA0, .pin_desc = PIN_DSC_GIOA0 },
48 { .pin_name = PIN_NAME_GIOA1, .pin_desc = PIN_DSC_GIOA1 },
49 { .pin_name = PIN_NAME_GIOA2, .pin_desc = PIN_DSC_GIOA2 },
50 { .pin_name = PIN_NAME_GIOA3, .pin_desc = PIN_DSC_GIOA3 },
51 { .pin_name = PIN_NAME_GIOA4, .pin_desc = PIN_DSC_GIOA4 },
52 { .pin_name = PIN_NAME_GIOA5, .pin_desc = PIN_DSC_GIOA5 },
53 { .pin_name = PIN_NAME_GIOA6, .pin_desc = PIN_DSC_GIOA6 },
54 { .pin_name = PIN_NAME_GIOA7, .pin_desc = PIN_DSC_GIOA7 },
55 { .pin_name = PIN_NAME_GIOB0, .pin_desc = PIN_DSC_GIOB0 },
56 { .pin_name = PIN_NAME_GIOB1, .pin_desc = PIN_DSC_GIOB1 },
57 { .pin_name = PIN_NAME_GIOB2, .pin_desc = PIN_DSC_GIOB2 },
58 { .pin_name = PIN_NAME_GIOB3, .pin_desc = PIN_DSC_GIOB3 },
59 { .pin_name = PIN_NAME_GIOB4, .pin_desc = PIN_DSC_GIOB4 },
60 { .pin_name = PIN_NAME_GIOB5, .pin_desc = PIN_DSC_GIOB5 },
61 { .pin_name = PIN_NAME_GIOB6, .pin_desc = PIN_DSC_GIOB6 },
62 { .pin_name = PIN_NAME_GIOB7, .pin_desc = PIN_DSC_GIOB7 },
63 { .pin_name = PIN_NAME_NHET1_0, .pin_desc = PIN_DSC_NHET1_0 },
64 { .pin_name = PIN_NAME_NHET1_1, .pin_desc = PIN_DSC_NHET1_1 },
65 { .pin_name = PIN_NAME_NHET1_2, .pin_desc = PIN_DSC_NHET1_2 },
66 { .pin_name = PIN_NAME_NHET1_3, .pin_desc = PIN_DSC_NHET1_3 },
67 { .pin_name = PIN_NAME_NHET1_4, .pin_desc = PIN_DSC_NHET1_4 },
68 { .pin_name = PIN_NAME_NHET1_5, .pin_desc = PIN_DSC_NHET1_5 },
69 /*{ .pin_name = PIN_NAME_NHET1_6, .pin_desc = PIN_DSC_NHET1_6 },*/
70 { .pin_name = PIN_NAME_NHET1_7, .pin_desc = PIN_DSC_NHET1_7 },
71 { .pin_name = PIN_NAME_NHET1_8, .pin_desc = PIN_DSC_NHET1_8 },
72 { .pin_name = PIN_NAME_NHET1_9, .pin_desc = PIN_DSC_NHET1_9 },
73 { .pin_name = PIN_NAME_NHET1_10, .pin_desc = PIN_DSC_NHET1_10 },
74 { .pin_name = PIN_NAME_NHET1_11, .pin_desc = PIN_DSC_NHET1_11 },
75 { .pin_name = PIN_NAME_NHET1_12, .pin_desc = PIN_DSC_NHET1_12 },
76 /*{ .pin_name = PIN_NAME_NHET1_13, .pin_desc = PIN_DSC_NHET1_13 },*/
77 { .pin_name = PIN_NAME_NHET1_14, .pin_desc = PIN_DSC_NHET1_14 },
78 { .pin_name = PIN_NAME_NHET1_15, .pin_desc = PIN_DSC_NHET1_15 },
79 { .pin_name = PIN_NAME_NHET1_16, .pin_desc = PIN_DSC_NHET1_16 },
80 { .pin_name = PIN_NAME_NHET1_17, .pin_desc = PIN_DSC_NHET1_17 },
81 { .pin_name = PIN_NAME_NHET1_18, .pin_desc = PIN_DSC_NHET1_18 },
82 { .pin_name = PIN_NAME_NHET1_19, .pin_desc = PIN_DSC_NHET1_19 },
83 { .pin_name = PIN_NAME_NHET1_20, .pin_desc = PIN_DSC_NHET1_20 },
84 { .pin_name = PIN_NAME_NHET1_21, .pin_desc = PIN_DSC_NHET1_21 },
85 { .pin_name = PIN_NAME_NHET1_22, .pin_desc = PIN_DSC_NHET1_22 },
86 { .pin_name = PIN_NAME_NHET1_23, .pin_desc = PIN_DSC_NHET1_23 },
87 { .pin_name = PIN_NAME_NHET1_24, .pin_desc = PIN_DSC_NHET1_24 },
88 { .pin_name = PIN_NAME_NHET1_25, .pin_desc = PIN_DSC_NHET1_25 },
89 { .pin_name = PIN_NAME_NHET1_26, .pin_desc = PIN_DSC_NHET1_26 },
90 { .pin_name = PIN_NAME_NHET1_27, .pin_desc = PIN_DSC_NHET1_27 },
91 { .pin_name = PIN_NAME_NHET1_28, .pin_desc = PIN_DSC_NHET1_28 },
92 { .pin_name = PIN_NAME_NHET1_29, .pin_desc = PIN_DSC_NHET1_29 },
93 { .pin_name = PIN_NAME_NHET1_30, .pin_desc = PIN_DSC_NHET1_30 },
94 { .pin_name = PIN_NAME_NHET1_31, .pin_desc = PIN_DSC_NHET1_31 },
95 /* FIXME: add definitions of all unused pins DMM, HET2, SCI... */