NNN50 WIFI_API library
Dependents: NNN50_CE_Test_UDP NNN50_linux_firmware NNN50_SoftAP_HelloWorld NNN50_BLEWIFISensor ... more
This is mbed compatible EthernetInterface lib exclude for Delta DFCM-NNN50 platform.
Additional information and examples can be found in mbed Handbook
wifi_host_driver/driver/source/nmi2c.c@32:8298a2fb074f, 2017-09-04 (annotated)
- Committer:
- tsungta
- Date:
- Mon Sep 04 05:40:11 2017 +0000
- Revision:
- 32:8298a2fb074f
- Parent:
- 28:2abbf8463fa8
56:f4cc53f; Add getRSSI() to readout RSSI while connected with AP router; Add SSL support refer to TCPSocketConnection.connect()
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tsungta | 28:2abbf8463fa8 | 1 | /** |
tsungta | 28:2abbf8463fa8 | 2 | * |
tsungta | 28:2abbf8463fa8 | 3 | * \file |
tsungta | 28:2abbf8463fa8 | 4 | * |
tsungta | 28:2abbf8463fa8 | 5 | * \brief This module contains NMC1000 I2C protocol bus APIs implementation. |
tsungta | 28:2abbf8463fa8 | 6 | * |
tsungta | 28:2abbf8463fa8 | 7 | * Copyright (c) 2016 Atmel Corporation. All rights reserved. |
tsungta | 28:2abbf8463fa8 | 8 | * |
tsungta | 28:2abbf8463fa8 | 9 | * \asf_license_start |
tsungta | 28:2abbf8463fa8 | 10 | * |
tsungta | 28:2abbf8463fa8 | 11 | * \page License |
tsungta | 28:2abbf8463fa8 | 12 | * |
tsungta | 28:2abbf8463fa8 | 13 | * Redistribution and use in source and binary forms, with or without |
tsungta | 28:2abbf8463fa8 | 14 | * modification, are permitted provided that the following conditions are met: |
tsungta | 28:2abbf8463fa8 | 15 | * |
tsungta | 28:2abbf8463fa8 | 16 | * 1. Redistributions of source code must retain the above copyright notice, |
tsungta | 28:2abbf8463fa8 | 17 | * this list of conditions and the following disclaimer. |
tsungta | 28:2abbf8463fa8 | 18 | * |
tsungta | 28:2abbf8463fa8 | 19 | * 2. Redistributions in binary form must reproduce the above copyright notice, |
tsungta | 28:2abbf8463fa8 | 20 | * this list of conditions and the following disclaimer in the documentation |
tsungta | 28:2abbf8463fa8 | 21 | * and/or other materials provided with the distribution. |
tsungta | 28:2abbf8463fa8 | 22 | * |
tsungta | 28:2abbf8463fa8 | 23 | * 3. The name of Atmel may not be used to endorse or promote products derived |
tsungta | 28:2abbf8463fa8 | 24 | * from this software without specific prior written permission. |
tsungta | 28:2abbf8463fa8 | 25 | * |
tsungta | 28:2abbf8463fa8 | 26 | * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED |
tsungta | 28:2abbf8463fa8 | 27 | * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
tsungta | 28:2abbf8463fa8 | 28 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE |
tsungta | 28:2abbf8463fa8 | 29 | * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR |
tsungta | 28:2abbf8463fa8 | 30 | * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
tsungta | 28:2abbf8463fa8 | 31 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
tsungta | 28:2abbf8463fa8 | 32 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
tsungta | 28:2abbf8463fa8 | 33 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
tsungta | 28:2abbf8463fa8 | 34 | * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
tsungta | 28:2abbf8463fa8 | 35 | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
tsungta | 28:2abbf8463fa8 | 36 | * POSSIBILITY OF SUCH DAMAGE. |
tsungta | 28:2abbf8463fa8 | 37 | * |
tsungta | 28:2abbf8463fa8 | 38 | * \asf_license_stop |
tsungta | 28:2abbf8463fa8 | 39 | * |
tsungta | 28:2abbf8463fa8 | 40 | */ |
tsungta | 28:2abbf8463fa8 | 41 | |
tsungta | 28:2abbf8463fa8 | 42 | #include "common/include/nm_common.h" |
tsungta | 28:2abbf8463fa8 | 43 | |
tsungta | 28:2abbf8463fa8 | 44 | #ifdef CONF_WINC_USE_I2C |
tsungta | 28:2abbf8463fa8 | 45 | |
tsungta | 28:2abbf8463fa8 | 46 | #include "nmi2c.h" |
tsungta | 28:2abbf8463fa8 | 47 | #include "bus_wrapper/include/nm_bus_wrapper.h" |
tsungta | 28:2abbf8463fa8 | 48 | |
tsungta | 28:2abbf8463fa8 | 49 | |
tsungta | 28:2abbf8463fa8 | 50 | /* |
tsungta | 28:2abbf8463fa8 | 51 | * @fn nm_i2c_read_reg_with_ret |
tsungta | 28:2abbf8463fa8 | 52 | * @brief Read register with error code return |
tsungta | 28:2abbf8463fa8 | 53 | * @param [in] u32Addr |
tsungta | 28:2abbf8463fa8 | 54 | * Register address |
tsungta | 28:2abbf8463fa8 | 55 | * @param [out] pu32RetVal |
tsungta | 28:2abbf8463fa8 | 56 | * Pointer to u32 variable used to return the read value |
tsungta | 28:2abbf8463fa8 | 57 | * @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure |
tsungta | 28:2abbf8463fa8 | 58 | * @author M. Abdelmawla |
tsungta | 28:2abbf8463fa8 | 59 | * @date 11 July 2012 |
tsungta | 28:2abbf8463fa8 | 60 | * @version 1.0 |
tsungta | 28:2abbf8463fa8 | 61 | */ |
tsungta | 28:2abbf8463fa8 | 62 | sint8 nm_i2c_read_reg_with_ret(uint32 u32Addr, uint32* pu32RetVal) |
tsungta | 28:2abbf8463fa8 | 63 | { |
tsungta | 28:2abbf8463fa8 | 64 | uint8 b[6]; |
tsungta | 28:2abbf8463fa8 | 65 | uint8 rsz; |
tsungta | 28:2abbf8463fa8 | 66 | tstrNmI2cDefault strI2c; |
tsungta | 28:2abbf8463fa8 | 67 | sint8 s8Ret = M2M_SUCCESS; |
tsungta | 28:2abbf8463fa8 | 68 | |
tsungta | 28:2abbf8463fa8 | 69 | if(u32Addr < 0xff) { /* clockless i2c */ |
tsungta | 28:2abbf8463fa8 | 70 | b[0] = 0x09; |
tsungta | 28:2abbf8463fa8 | 71 | b[1] = (uint8)(u32Addr); |
tsungta | 28:2abbf8463fa8 | 72 | rsz = 1; |
tsungta | 28:2abbf8463fa8 | 73 | strI2c.u16Sz = 2; |
tsungta | 28:2abbf8463fa8 | 74 | } else { |
tsungta | 28:2abbf8463fa8 | 75 | b[0] = 0x80; |
tsungta | 28:2abbf8463fa8 | 76 | b[1] = (uint8)(u32Addr >> 24); |
tsungta | 28:2abbf8463fa8 | 77 | b[2] = (uint8)(u32Addr >> 16); |
tsungta | 28:2abbf8463fa8 | 78 | b[3] = (uint8)(u32Addr >> 8); |
tsungta | 28:2abbf8463fa8 | 79 | b[4] = (uint8)(u32Addr); |
tsungta | 28:2abbf8463fa8 | 80 | b[5] = 0x04; |
tsungta | 28:2abbf8463fa8 | 81 | rsz = 4; |
tsungta | 28:2abbf8463fa8 | 82 | strI2c.u16Sz = 6; |
tsungta | 28:2abbf8463fa8 | 83 | } |
tsungta | 28:2abbf8463fa8 | 84 | |
tsungta | 28:2abbf8463fa8 | 85 | strI2c.pu8Buf = b; |
tsungta | 28:2abbf8463fa8 | 86 | |
tsungta | 28:2abbf8463fa8 | 87 | if(M2M_SUCCESS == nm_bus_ioctl(NM_BUS_IOCTL_W, &strI2c)) |
tsungta | 28:2abbf8463fa8 | 88 | { |
tsungta | 28:2abbf8463fa8 | 89 | strI2c.u16Sz = rsz; |
tsungta | 28:2abbf8463fa8 | 90 | if(M2M_SUCCESS != nm_bus_ioctl(NM_BUS_IOCTL_R, &strI2c)) |
tsungta | 28:2abbf8463fa8 | 91 | { |
tsungta | 28:2abbf8463fa8 | 92 | //M2M_ERR("read error\n"); |
tsungta | 28:2abbf8463fa8 | 93 | s8Ret = M2M_ERR_BUS_FAIL; |
tsungta | 28:2abbf8463fa8 | 94 | } |
tsungta | 28:2abbf8463fa8 | 95 | } |
tsungta | 28:2abbf8463fa8 | 96 | else |
tsungta | 28:2abbf8463fa8 | 97 | { |
tsungta | 28:2abbf8463fa8 | 98 | M2M_ERR("failed to send cfg bytes\n"); |
tsungta | 28:2abbf8463fa8 | 99 | s8Ret = M2M_ERR_BUS_FAIL; |
tsungta | 28:2abbf8463fa8 | 100 | } |
tsungta | 28:2abbf8463fa8 | 101 | |
tsungta | 28:2abbf8463fa8 | 102 | if (rsz == 1) { |
tsungta | 28:2abbf8463fa8 | 103 | *pu32RetVal = b[0]; |
tsungta | 28:2abbf8463fa8 | 104 | } else { |
tsungta | 28:2abbf8463fa8 | 105 | *pu32RetVal = b[0] | ((uint32)b[1] << 8) | ((uint32)b[2] << 16) | ((uint32)b[3] << 24); |
tsungta | 28:2abbf8463fa8 | 106 | } |
tsungta | 28:2abbf8463fa8 | 107 | return s8Ret; |
tsungta | 28:2abbf8463fa8 | 108 | } |
tsungta | 28:2abbf8463fa8 | 109 | |
tsungta | 28:2abbf8463fa8 | 110 | /* |
tsungta | 28:2abbf8463fa8 | 111 | * @fn nm_i2c_read_reg |
tsungta | 28:2abbf8463fa8 | 112 | * @brief Read register |
tsungta | 28:2abbf8463fa8 | 113 | * @param [in] u32Addr |
tsungta | 28:2abbf8463fa8 | 114 | * Register address |
tsungta | 28:2abbf8463fa8 | 115 | * @return Register value |
tsungta | 28:2abbf8463fa8 | 116 | * @author M. Abdelmawla |
tsungta | 28:2abbf8463fa8 | 117 | * @date 11 July 2012 |
tsungta | 28:2abbf8463fa8 | 118 | * @version 1.0 |
tsungta | 28:2abbf8463fa8 | 119 | */ |
tsungta | 28:2abbf8463fa8 | 120 | uint32 nm_i2c_read_reg(uint32 u32Addr) |
tsungta | 28:2abbf8463fa8 | 121 | { |
tsungta | 28:2abbf8463fa8 | 122 | uint32 val; |
tsungta | 28:2abbf8463fa8 | 123 | nm_i2c_read_reg_with_ret(u32Addr, &val); |
tsungta | 28:2abbf8463fa8 | 124 | return val; |
tsungta | 28:2abbf8463fa8 | 125 | } |
tsungta | 28:2abbf8463fa8 | 126 | |
tsungta | 28:2abbf8463fa8 | 127 | /* |
tsungta | 28:2abbf8463fa8 | 128 | * @fn nm_i2c_write_reg |
tsungta | 28:2abbf8463fa8 | 129 | * @brief write register |
tsungta | 28:2abbf8463fa8 | 130 | * @param [in] u32Addr |
tsungta | 28:2abbf8463fa8 | 131 | * Register address |
tsungta | 28:2abbf8463fa8 | 132 | * @param [in] u32Val |
tsungta | 28:2abbf8463fa8 | 133 | * Value to be written to the register |
tsungta | 28:2abbf8463fa8 | 134 | * @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure |
tsungta | 28:2abbf8463fa8 | 135 | * @author M. Abdelmawla |
tsungta | 28:2abbf8463fa8 | 136 | * @date 11 July 2012 |
tsungta | 28:2abbf8463fa8 | 137 | * @version 1.0 |
tsungta | 28:2abbf8463fa8 | 138 | */ |
tsungta | 28:2abbf8463fa8 | 139 | sint8 nm_i2c_write_reg(uint32 u32Addr, uint32 u32Val) |
tsungta | 28:2abbf8463fa8 | 140 | { |
tsungta | 28:2abbf8463fa8 | 141 | tstrNmI2cDefault strI2c; |
tsungta | 28:2abbf8463fa8 | 142 | uint8 b[16]; |
tsungta | 28:2abbf8463fa8 | 143 | sint8 s8Ret = M2M_SUCCESS; |
tsungta | 28:2abbf8463fa8 | 144 | |
tsungta | 28:2abbf8463fa8 | 145 | if(u32Addr < 0xff) { /* clockless i2c */ |
tsungta | 28:2abbf8463fa8 | 146 | b[0] = 0x19; |
tsungta | 28:2abbf8463fa8 | 147 | b[1] = (uint8)(u32Addr); |
tsungta | 28:2abbf8463fa8 | 148 | b[2] = (uint8)(u32Val); |
tsungta | 28:2abbf8463fa8 | 149 | strI2c.u16Sz = 3; |
tsungta | 28:2abbf8463fa8 | 150 | } else { |
tsungta | 28:2abbf8463fa8 | 151 | b[0] = 0x90; |
tsungta | 28:2abbf8463fa8 | 152 | b[1] = (uint8)(u32Addr >> 24); |
tsungta | 28:2abbf8463fa8 | 153 | b[2] = (uint8)(u32Addr >> 16); |
tsungta | 28:2abbf8463fa8 | 154 | b[3] = (uint8)(u32Addr >> 8); |
tsungta | 28:2abbf8463fa8 | 155 | b[4] = (uint8)u32Addr; |
tsungta | 28:2abbf8463fa8 | 156 | b[5] = 0x04; |
tsungta | 28:2abbf8463fa8 | 157 | b[6] = (uint8)u32Val; |
tsungta | 28:2abbf8463fa8 | 158 | b[7] = (uint8)(u32Val >> 8); |
tsungta | 28:2abbf8463fa8 | 159 | b[8] = (uint8)(u32Val >> 16); |
tsungta | 28:2abbf8463fa8 | 160 | b[9] = (uint8)(u32Val >> 24); |
tsungta | 28:2abbf8463fa8 | 161 | strI2c.u16Sz = 10; |
tsungta | 28:2abbf8463fa8 | 162 | } |
tsungta | 28:2abbf8463fa8 | 163 | |
tsungta | 28:2abbf8463fa8 | 164 | strI2c.pu8Buf = b; |
tsungta | 28:2abbf8463fa8 | 165 | |
tsungta | 28:2abbf8463fa8 | 166 | if(M2M_SUCCESS != nm_bus_ioctl(NM_BUS_IOCTL_W, &strI2c)) |
tsungta | 28:2abbf8463fa8 | 167 | { |
tsungta | 28:2abbf8463fa8 | 168 | M2M_ERR("write error\n"); |
tsungta | 28:2abbf8463fa8 | 169 | s8Ret = M2M_ERR_BUS_FAIL; |
tsungta | 28:2abbf8463fa8 | 170 | } |
tsungta | 28:2abbf8463fa8 | 171 | |
tsungta | 28:2abbf8463fa8 | 172 | return s8Ret; |
tsungta | 28:2abbf8463fa8 | 173 | } |
tsungta | 28:2abbf8463fa8 | 174 | |
tsungta | 28:2abbf8463fa8 | 175 | /* |
tsungta | 28:2abbf8463fa8 | 176 | * @fn nm_i2c_read_block |
tsungta | 28:2abbf8463fa8 | 177 | * @brief Read block of data |
tsungta | 28:2abbf8463fa8 | 178 | * @param [in] u32Addr |
tsungta | 28:2abbf8463fa8 | 179 | * Start address |
tsungta | 28:2abbf8463fa8 | 180 | * @param [out] puBuf |
tsungta | 28:2abbf8463fa8 | 181 | * Pointer to a buffer used to return the read data |
tsungta | 28:2abbf8463fa8 | 182 | * @param [in] u16Sz |
tsungta | 28:2abbf8463fa8 | 183 | * Number of bytes to read. The buffer size must be >= u16Sz |
tsungta | 28:2abbf8463fa8 | 184 | * @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure |
tsungta | 28:2abbf8463fa8 | 185 | * @author M. Abdelmawla |
tsungta | 28:2abbf8463fa8 | 186 | * @date 11 July 2012 |
tsungta | 28:2abbf8463fa8 | 187 | * @version 1.0 |
tsungta | 28:2abbf8463fa8 | 188 | */ |
tsungta | 28:2abbf8463fa8 | 189 | sint8 nm_i2c_read_block(uint32 u32Addr, uint8 *pu8Buf, uint16 u16Sz) |
tsungta | 28:2abbf8463fa8 | 190 | { |
tsungta | 28:2abbf8463fa8 | 191 | tstrNmI2cDefault strI2c; |
tsungta | 28:2abbf8463fa8 | 192 | uint8 au8Buf[7]; |
tsungta | 28:2abbf8463fa8 | 193 | sint8 s8Ret = M2M_SUCCESS; |
tsungta | 28:2abbf8463fa8 | 194 | |
tsungta | 28:2abbf8463fa8 | 195 | au8Buf[0] = 0x02; |
tsungta | 28:2abbf8463fa8 | 196 | au8Buf[1] = (uint8)(u32Addr >> 24); |
tsungta | 28:2abbf8463fa8 | 197 | au8Buf[2] = (uint8)(u32Addr >> 16); |
tsungta | 28:2abbf8463fa8 | 198 | au8Buf[3] = (uint8)(u32Addr >> 8); |
tsungta | 28:2abbf8463fa8 | 199 | au8Buf[4] = (uint8)(u32Addr >> 0); |
tsungta | 28:2abbf8463fa8 | 200 | au8Buf[5] = (uint8)(u16Sz >> 8); |
tsungta | 28:2abbf8463fa8 | 201 | au8Buf[6] = (uint8)(u16Sz); |
tsungta | 28:2abbf8463fa8 | 202 | |
tsungta | 28:2abbf8463fa8 | 203 | strI2c.pu8Buf = au8Buf; |
tsungta | 28:2abbf8463fa8 | 204 | strI2c.u16Sz = sizeof(au8Buf); |
tsungta | 28:2abbf8463fa8 | 205 | |
tsungta | 28:2abbf8463fa8 | 206 | if(M2M_SUCCESS != nm_bus_ioctl(NM_BUS_IOCTL_W, &strI2c)) |
tsungta | 28:2abbf8463fa8 | 207 | { |
tsungta | 28:2abbf8463fa8 | 208 | M2M_ERR("write error\n"); |
tsungta | 28:2abbf8463fa8 | 209 | s8Ret = M2M_ERR_BUS_FAIL; |
tsungta | 28:2abbf8463fa8 | 210 | } |
tsungta | 28:2abbf8463fa8 | 211 | else |
tsungta | 28:2abbf8463fa8 | 212 | { |
tsungta | 28:2abbf8463fa8 | 213 | strI2c.pu8Buf = pu8Buf; |
tsungta | 28:2abbf8463fa8 | 214 | strI2c.u16Sz = u16Sz; |
tsungta | 28:2abbf8463fa8 | 215 | |
tsungta | 28:2abbf8463fa8 | 216 | if(M2M_SUCCESS != nm_bus_ioctl(NM_BUS_IOCTL_R, &strI2c)) |
tsungta | 28:2abbf8463fa8 | 217 | { |
tsungta | 28:2abbf8463fa8 | 218 | M2M_ERR("read error\n"); |
tsungta | 28:2abbf8463fa8 | 219 | s8Ret = M2M_ERR_BUS_FAIL; |
tsungta | 28:2abbf8463fa8 | 220 | } |
tsungta | 28:2abbf8463fa8 | 221 | } |
tsungta | 28:2abbf8463fa8 | 222 | |
tsungta | 28:2abbf8463fa8 | 223 | return s8Ret; |
tsungta | 28:2abbf8463fa8 | 224 | } |
tsungta | 28:2abbf8463fa8 | 225 | |
tsungta | 28:2abbf8463fa8 | 226 | /* |
tsungta | 28:2abbf8463fa8 | 227 | * @fn nm_i2c_write_block |
tsungta | 28:2abbf8463fa8 | 228 | * @brief Write block of data |
tsungta | 28:2abbf8463fa8 | 229 | * @param [in] u32Addr |
tsungta | 28:2abbf8463fa8 | 230 | * Start address |
tsungta | 28:2abbf8463fa8 | 231 | * @param [in] puBuf |
tsungta | 28:2abbf8463fa8 | 232 | * Pointer to the buffer holding the data to be written |
tsungta | 28:2abbf8463fa8 | 233 | * @param [in] u16Sz |
tsungta | 28:2abbf8463fa8 | 234 | * Number of bytes to write. The buffer size must be >= u16Sz |
tsungta | 28:2abbf8463fa8 | 235 | * @return M2M_SUCCESS in case of success and M2M_ERR_BUS_FAIL in case of failure |
tsungta | 28:2abbf8463fa8 | 236 | * @author M. Abdelmawla |
tsungta | 28:2abbf8463fa8 | 237 | * @date 11 July 2012 |
tsungta | 28:2abbf8463fa8 | 238 | * @version 1.0 |
tsungta | 28:2abbf8463fa8 | 239 | */ |
tsungta | 28:2abbf8463fa8 | 240 | sint8 nm_i2c_write_block(uint32 u32Addr, uint8 *pu8Buf, uint16 u16Sz) |
tsungta | 28:2abbf8463fa8 | 241 | { |
tsungta | 28:2abbf8463fa8 | 242 | uint8 au8Buf[7]; |
tsungta | 28:2abbf8463fa8 | 243 | tstrNmI2cSpecial strI2c; |
tsungta | 28:2abbf8463fa8 | 244 | sint8 s8Ret = M2M_SUCCESS; |
tsungta | 28:2abbf8463fa8 | 245 | |
tsungta | 28:2abbf8463fa8 | 246 | au8Buf[0] = 0x12; |
tsungta | 28:2abbf8463fa8 | 247 | au8Buf[1] = (uint8)(u32Addr >> 24); |
tsungta | 28:2abbf8463fa8 | 248 | au8Buf[2] = (uint8)(u32Addr >> 16); |
tsungta | 28:2abbf8463fa8 | 249 | au8Buf[3] = (uint8)(u32Addr >> 8); |
tsungta | 28:2abbf8463fa8 | 250 | au8Buf[4] = (uint8)(u32Addr); |
tsungta | 28:2abbf8463fa8 | 251 | au8Buf[5] = (uint8)(u16Sz >> 8); |
tsungta | 28:2abbf8463fa8 | 252 | au8Buf[6] = (uint8)(u16Sz); |
tsungta | 28:2abbf8463fa8 | 253 | |
tsungta | 28:2abbf8463fa8 | 254 | strI2c.pu8Buf1 = au8Buf; |
tsungta | 28:2abbf8463fa8 | 255 | strI2c.pu8Buf2 = pu8Buf; |
tsungta | 28:2abbf8463fa8 | 256 | strI2c.u16Sz1 = sizeof(au8Buf); |
tsungta | 28:2abbf8463fa8 | 257 | strI2c.u16Sz2 = u16Sz; |
tsungta | 28:2abbf8463fa8 | 258 | |
tsungta | 28:2abbf8463fa8 | 259 | if(M2M_SUCCESS != nm_bus_ioctl(NM_BUS_IOCTL_W_SPECIAL, &strI2c)) |
tsungta | 28:2abbf8463fa8 | 260 | { |
tsungta | 28:2abbf8463fa8 | 261 | M2M_ERR("write error\n"); |
tsungta | 28:2abbf8463fa8 | 262 | s8Ret = M2M_ERR_BUS_FAIL; |
tsungta | 28:2abbf8463fa8 | 263 | } |
tsungta | 28:2abbf8463fa8 | 264 | |
tsungta | 28:2abbf8463fa8 | 265 | return s8Ret; |
tsungta | 28:2abbf8463fa8 | 266 | } |
tsungta | 28:2abbf8463fa8 | 267 | |
tsungta | 28:2abbf8463fa8 | 268 | #endif |
tsungta | 28:2abbf8463fa8 | 269 | /* EOF */ |
tsungta | 28:2abbf8463fa8 | 270 |