]> begriffs open source - cmsis/blob - CMSIS/Driver/DriverTemplates/Driver_I2C.c
Updated Core documentation (startup file).
[cmsis] / CMSIS / Driver / DriverTemplates / Driver_I2C.c
1 /*\r
2  * Copyright (c) 2013-2016 ARM Limited. All rights reserved.\r
3  *\r
4  * SPDX-License-Identifier: Apache-2.0\r
5  *\r
6  * Licensed under the Apache License, Version 2.0 (the License); you may\r
7  * not use this file except in compliance with the License.\r
8  * You may obtain a copy of the License at\r
9  *\r
10  * http://www.apache.org/licenses/LICENSE-2.0\r
11  *\r
12  * Unless required by applicable law or agreed to in writing, software\r
13  * distributed under the License is distributed on an AS IS BASIS, WITHOUT\r
14  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
15  * See the License for the specific language governing permissions and\r
16  * limitations under the License.\r
17  */\r
18  \r
19 #include "Driver_I2C.h"\r
20 \r
21 #define ARM_I2C_DRV_VERSION    ARM_DRIVER_VERSION_MAJOR_MINOR(2, 0) /* driver version */\r
22 \r
23 /* Driver Version */\r
24 static const ARM_DRIVER_VERSION DriverVersion = {\r
25     ARM_I2C_API_VERSION,\r
26     ARM_I2C_DRV_VERSION\r
27 };\r
28 \r
29 /* Driver Capabilities */\r
30 static const ARM_I2C_CAPABILITIES DriverCapabilities = {\r
31     0  /* supports 10-bit addressing */\r
32 };\r
33 \r
34 //\r
35 //  Functions\r
36 //\r
37 \r
38 ARM_DRIVER_VERSION ARM_I2C_GetVersion(void)\r
39 {\r
40 }\r
41 \r
42 ARM_I2C_CAPABILITIES ARM_I2C_GetCapabilities(void)\r
43 {\r
44 }\r
45 \r
46 int32_t ARM_I2C_Initialize(ARM_I2C_SignalEvent_t cb_event)\r
47 {\r
48 }\r
49 \r
50 int32_t ARM_I2C_Uninitialize(void)\r
51 {\r
52 }\r
53 \r
54 int32_t ARM_I2C_PowerControl(ARM_POWER_STATE state)\r
55 {\r
56     switch (state)\r
57     {\r
58     case ARM_POWER_OFF:\r
59         break;\r
60 \r
61     case ARM_POWER_LOW:\r
62         break;\r
63 \r
64     case ARM_POWER_FULL:\r
65         break;\r
66 \r
67     default:\r
68         return ARM_DRIVER_ERROR_UNSUPPORTED;\r
69     }\r
70 }\r
71 \r
72 int32_t ARM_I2C_MasterTransmit(uint32_t addr, const uint8_t *data, uint32_t num, bool xfer_pending)\r
73 {\r
74 }\r
75 \r
76 int32_t ARM_I2C_MasterReceive(uint32_t addr, uint8_t *data, uint32_t num, bool xfer_pending)\r
77 {\r
78 }\r
79 \r
80 int32_t ARM_I2C_SlaveTransmit(const uint8_t *data, uint32_t num)\r
81 {\r
82 }\r
83 \r
84 int32_t ARM_I2C_SlaveReceive(uint8_t *data, uint32_t num)\r
85 {\r
86 }\r
87 \r
88 int32_t ARM_I2C_GetDataCount(void)\r
89 {\r
90 }\r
91 \r
92 int32_t ARM_I2C_Control(uint32_t control, uint32_t arg)\r
93 {\r
94     switch (control)\r
95     {\r
96     case ARM_I2C_OWN_ADDRESS:\r
97         break;\r
98 \r
99     case ARM_I2C_BUS_SPEED:\r
100         switch (arg)\r
101         {\r
102         case ARM_I2C_BUS_SPEED_STANDARD:\r
103             break;\r
104         case ARM_I2C_BUS_SPEED_FAST:\r
105             break;\r
106         case ARM_I2C_BUS_SPEED_FAST_PLUS:\r
107             break;\r
108         default:\r
109             return ARM_DRIVER_ERROR_UNSUPPORTED;\r
110         }\r
111         break;\r
112 \r
113     case ARM_I2C_BUS_CLEAR:\r
114         break;\r
115 \r
116     case ARM_I2C_ABORT_TRANSFER:\r
117         break;\r
118 \r
119     default:\r
120         return ARM_DRIVER_ERROR_UNSUPPORTED;\r
121     }\r
122 }\r
123 \r
124 ARM_I2C_STATUS ARM_I2C_GetStatus(void)\r
125 {\r
126 }\r
127 \r
128 void ARM_I2C_SignalEvent(uint32_t event)\r
129 {\r
130     // function body\r
131 }\r
132 \r
133 // End I2C Interface\r
134 \r
135 ARM_DRIVER_I2C Driver_I2C = {\r
136     ARM_I2C_GetVersion,\r
137     ARM_I2C_GetCapabilities,\r
138     ARM_I2C_Initialize,\r
139     ARM_I2C_Uninitialize,\r
140     ARM_I2C_PowerControl,\r
141     ARM_I2C_MasterTransmit,\r
142     ARM_I2C_MasterReceive,\r
143     ARM_I2C_SlaveTransmit,\r
144     ARM_I2C_SlaveReceive,\r
145     ARM_I2C_GetDataCount,\r
146     ARM_I2C_Control,\r
147     ARM_I2C_GetStatus\r
148 };\r