2 * Author: Brendan Le Foll <brendan.le.foll@intel.com>
3 * Copyright © 2014 Intel Corporation
5 * Permission is hereby granted, free of charge, to any person obtaining a copy
6 * of this software and associated documentation files (the "Software"), to
7 * deal in the Software without restriction, including without limitation the
8 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
9 * sell copies of the Software, and to permit persons to whom the Software is
10 * furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice shall be included in
13 * all copies or substantial portions of the Software.
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
28 * This file defines the basic shared types for libmraa
29 * this file is different to common.h in that swig takes this as an input
37 * MRAA supported platform types
40 MRAA_INTEL_GALILEO_GEN1 = 0, /**< The Generation 1 Galileo platform (RevD) */
41 MRAA_INTEL_GALILEO_GEN2 = 1, /**< The Generation 2 Galileo platform (RevG/H) */
42 MRAA_INTEL_EDISON_FAB_C = 2, /**< The Intel Edison (FAB C) */
43 MRAA_INTEL_DE3815 = 3, /**< The Intel DE3815 Baytrail NUC */
44 MRAA_INTEL_MINNOWBOARD_MAX = 4, /**< The Intel Minnow Board Max */
45 MRAA_RASPBERRY_PI = 5, /**< The different Raspberry PI Models -like A,B,A+,B+ */
47 MRAA_UNKNOWN_PLATFORM =
48 99 /**< An unknown platform type, typically will load INTEL_GALILEO_GEN1 */
52 * Intel edison miniboard numbering enum
55 MRAA_INTEL_EDISON_MINIBOARD_J17_1 = 0,
56 MRAA_INTEL_EDISON_MINIBOARD_J17_5 = 4,
57 MRAA_INTEL_EDISON_MINIBOARD_J17_7 = 6,
58 MRAA_INTEL_EDISON_MINIBOARD_J17_8 = 7,
59 MRAA_INTEL_EDISON_MINIBOARD_J17_9 = 8,
60 MRAA_INTEL_EDISON_MINIBOARD_J17_10 = 9,
61 MRAA_INTEL_EDISON_MINIBOARD_J17_11 = 10,
62 MRAA_INTEL_EDISON_MINIBOARD_J17_12 = 11,
63 MRAA_INTEL_EDISON_MINIBOARD_J17_14 = 13,
64 MRAA_INTEL_EDISON_MINIBOARD_J18_1 = 14,
65 MRAA_INTEL_EDISON_MINIBOARD_J18_2 = 15,
66 MRAA_INTEL_EDISON_MINIBOARD_J18_6 = 19,
67 MRAA_INTEL_EDISON_MINIBOARD_J18_7 = 20,
68 MRAA_INTEL_EDISON_MINIBOARD_J18_8 = 21,
69 MRAA_INTEL_EDISON_MINIBOARD_J18_10 = 23,
70 MRAA_INTEL_EDISON_MINIBOARD_J18_11 = 24,
71 MRAA_INTEL_EDISON_MINIBOARD_J18_12 = 25,
72 MRAA_INTEL_EDISON_MINIBOARD_J18_13 = 26,
73 MRAA_INTEL_EDISON_MINIBOARD_J19_4 = 31,
74 MRAA_INTEL_EDISON_MINIBOARD_J19_5 = 32,
75 MRAA_INTEL_EDISON_MINIBOARD_J19_6 = 33,
76 MRAA_INTEL_EDISON_MINIBOARD_J19_8 = 35,
77 MRAA_INTEL_EDISON_MINIBOARD_J19_9 = 36,
78 MRAA_INTEL_EDISON_MINIBOARD_J19_10 = 37,
79 MRAA_INTEL_EDISON_MINIBOARD_J19_11 = 38,
80 MRAA_INTEL_EDISON_MINIBOARD_J19_12 = 39,
81 MRAA_INTEL_EDISON_MINIBOARD_J19_13 = 40,
82 MRAA_INTEL_EDISON_MINIBOARD_J19_14 = 41,
83 MRAA_INTEL_EDISON_MINIBOARD_J20_3 = 44,
84 MRAA_INTEL_EDISON_MINIBOARD_J20_4 = 45,
85 MRAA_INTEL_EDISON_MINIBOARD_J20_5 = 46,
86 MRAA_INTEL_EDISON_MINIBOARD_J20_6 = 47,
87 MRAA_INTEL_EDISON_MINIBOARD_J20_7 = 48,
88 MRAA_INTEL_EDISON_MINIBOARD_J20_8 = 49,
89 MRAA_INTEL_EDISON_MINIBOARD_J20_9 = 50,
90 MRAA_INTEL_EDISON_MINIBOARD_J20_10 = 51,
91 MRAA_INTEL_EDISON_MINIBOARD_J20_11 = 52,
92 MRAA_INTEL_EDISON_MINIBOARD_J20_12 = 53,
93 MRAA_INTEL_EDISON_MINIBOARD_J20_13 = 54,
94 MRAA_INTEL_EDISON_MINIBOARD_J20_14 = 55
95 } mraa_intel_edison_miniboard_t;
98 * Intel Edison raw GPIO numbering enum
101 MRAA_INTEL_EDISON_GP182 = 0,
102 MRAA_INTEL_EDISON_GP135 = 4,
103 MRAA_INTEL_EDISON_GP27 = 6,
104 MRAA_INTEL_EDISON_GP20 = 7,
105 MRAA_INTEL_EDISON_GP28 = 8,
106 MRAA_INTEL_EDISON_GP111 = 0,
107 MRAA_INTEL_EDISON_GP109 = 10,
108 MRAA_INTEL_EDISON_GP115 = 11,
109 MRAA_INTEL_EDISON_GP128 = 13,
110 MRAA_INTEL_EDISON_GP13 = 14,
111 MRAA_INTEL_EDISON_GP165 = 15,
112 MRAA_INTEL_EDISON_GP19 = 19,
113 MRAA_INTEL_EDISON_GP12 = 20,
114 MRAA_INTEL_EDISON_GP183 = 21,
115 MRAA_INTEL_EDISON_GP110 = 23,
116 MRAA_INTEL_EDISON_GP114 = 24,
117 MRAA_INTEL_EDISON_GP129 = 25,
118 MRAA_INTEL_EDISON_GP130 = 26,
119 MRAA_INTEL_EDISON_GP44 = 31,
120 MRAA_INTEL_EDISON_GP46 = 32,
121 MRAA_INTEL_EDISON_GP48 = 33,
122 MRAA_INTEL_EDISON_GP131 = 35,
123 MRAA_INTEL_EDISON_GP14 = 36,
124 MRAA_INTEL_EDISON_GP40 = 37,
125 MRAA_INTEL_EDISON_GP43 = 38,
126 MRAA_INTEL_EDISON_GP77 = 39,
127 MRAA_INTEL_EDISON_GP82 = 40,
128 MRAA_INTEL_EDISON_GP83 = 41,
129 MRAA_INTEL_EDISON_GP134 = 44,
130 MRAA_INTEL_EDISON_GP45 = 45,
131 MRAA_INTEL_EDISON_GP47 = 46,
132 MRAA_INTEL_EDISON_GP49 = 47,
133 MRAA_INTEL_EDISON_GP15 = 48,
134 MRAA_INTEL_EDISON_GP84 = 49,
135 MRAA_INTEL_EDISON_GP42 = 50,
136 MRAA_INTEL_EDISON_GP41 = 51,
137 MRAA_INTEL_EDISON_GP78 = 52,
138 MRAA_INTEL_EDISON_GP79 = 53,
139 MRAA_INTEL_EDISON_GP80 = 54,
140 MRAA_INTEL_EDISON_GP81 = 55
141 } mraa_intel_edison_t;
144 * Raspberry PI Wiring compatible numbering enum
147 MRAA_RASPBERRY_WIRING_PIN8 = 3,
148 MRAA_RASPBERRY_WIRING_PIN9 = 5,
149 MRAA_RASPBERRY_WIRING_PIN7 = 7,
150 MRAA_RASPBERRY_WIRING_PIN15 = 8,
151 MRAA_RASPBERRY_WIRING_PIN16 = 10,
152 MRAA_RASPBERRY_WIRING_PIN0 = 11,
153 MRAA_RASPBERRY_WIRING_PIN1 = 12,
154 MRAA_RASPBERRY_WIRING_PIN2 = 13,
155 MRAA_RASPBERRY_WIRING_PIN3 = 15,
156 MRAA_RASPBERRY_WIRING_PIN4 = 16,
157 MRAA_RASPBERRY_WIRING_PIN5 = 18,
158 MRAA_RASPBERRY_WIRING_PIN12 = 19,
159 MRAA_RASPBERRY_WIRING_PIN13 = 21,
160 MRAA_RASPBERRY_WIRING_PIN6 = 22,
161 MRAA_RASPBERRY_WIRING_PIN14 = 23,
162 MRAA_RASPBERRY_WIRING_PIN10 = 24,
163 MRAA_RASPBERRY_WIRING_PIN11 = 26,
164 MRAA_RASPBERRY_WIRING_PIN17 = 29, // RPi B V2
165 MRAA_RASPBERRY_WIRING_PIN21 = 29,
166 MRAA_RASPBERRY_WIRING_PIN18 = 30, // RPi B V2
167 MRAA_RASPBERRY_WIRING_PIN19 = 31, // RPI B V2
168 MRAA_RASPBERRY_WIRING_PIN22 = 31,
169 MRAA_RASPBERRY_WIRING_PIN20 = 32, // RPi B V2
170 MRAA_RASPBERRY_WIRING_PIN26 = 32,
171 MRAA_RASPBERRY_WIRING_PIN23 = 33,
172 MRAA_RASPBERRY_WIRING_PIN24 = 35,
173 MRAA_RASPBERRY_WIRING_PIN27 = 36,
174 MRAA_RASPBERRY_WIRING_PIN25 = 37,
175 MRAA_RASPBERRY_WIRING_PIN28 = 38,
176 MRAA_RASPBERRY_WIRING_PIN29 = 40
177 } mraa_raspberry_wiring_t;
183 MRAA_SUCCESS = 0, /**< Expected response */
184 MRAA_ERROR_FEATURE_NOT_IMPLEMENTED = 1, /**< Feature TODO */
185 MRAA_ERROR_FEATURE_NOT_SUPPORTED = 2, /**< Feature not supported by HW */
186 MRAA_ERROR_INVALID_VERBOSITY_LEVEL = 3, /**< Verbosity level wrong */
187 MRAA_ERROR_INVALID_PARAMETER = 4, /**< Parameter invalid */
188 MRAA_ERROR_INVALID_HANDLE = 5, /**< Handle invalid */
189 MRAA_ERROR_NO_RESOURCES = 6, /**< No resource of that type avail */
190 MRAA_ERROR_INVALID_RESOURCE = 7, /**< Resource invalid */
191 MRAA_ERROR_INVALID_QUEUE_TYPE = 8, /**< Queue type incorrect */
192 MRAA_ERROR_NO_DATA_AVAILABLE = 9, /**< No data available */
193 MRAA_ERROR_INVALID_PLATFORM = 10, /**< Platform not recognised */
194 MRAA_ERROR_PLATFORM_NOT_INITIALISED = 11, /**< Board information not initialised */
195 MRAA_ERROR_PLATFORM_ALREADY_INITIALISED = 12, /**< Board is already initialised */
197 MRAA_ERROR_UNSPECIFIED = 99 /**< Unknown Error */
201 * Enum representing different possible modes for a pin.
204 MRAA_PIN_VALID = 0, /**< Pin Valid */
205 MRAA_PIN_GPIO = 1, /**< General Purpose IO */
206 MRAA_PIN_PWM = 2, /**< Pulse Width Modulation */
207 MRAA_PIN_FAST_GPIO = 3, /**< Faster GPIO */
208 MRAA_PIN_SPI = 4, /**< SPI */
209 MRAA_PIN_I2C = 5, /**< I2C */
210 MRAA_PIN_AIO = 6, /**< Analog in */
211 MRAA_PIN_UART = 7 /**< UART */
215 * Enum reprensenting different i2c speeds/modes
218 MRAA_I2C_STD = 0, /**< up to 100Khz */
219 MRAA_I2C_FAST = 1, /**< up to 400Khz */
220 MRAA_I2C_HIGH = 2 /**< up to 3.4Mhz */