amiro-os / modules / LightRing_1-0 / module.c @ ddf34c3d
History | View | Annotate | Download (9.538 KB)
| 1 | e545e620 | Thomas Schöpping | /*
 | 
      
|---|---|---|---|
| 2 | AMiRo-OS is an operating system designed for the Autonomous Mini Robot (AMiRo) platform.
 | 
      ||
| 3 | 84f0ce9e | Thomas Schöpping | Copyright (C) 2016..2019  Thomas Schöpping et al.
 | 
      
| 4 | e545e620 | Thomas Schöpping | |
| 5 | This program is free software: you can redistribute it and/or modify
 | 
      ||
| 6 | it under the terms of the GNU General Public License as published by
 | 
      ||
| 7 | the Free Software Foundation, either version 3 of the License, or
 | 
      ||
| 8 | (at your option) any later version.
 | 
      ||
| 9 | |||
| 10 | This program is distributed in the hope that it will be useful,
 | 
      ||
| 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
      ||
| 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
      ||
| 13 | GNU General Public License for more details.
 | 
      ||
| 14 | |||
| 15 | You should have received a copy of the GNU General Public License
 | 
      ||
| 16 | along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
      ||
| 17 | */
 | 
      ||
| 18 | |||
| 19 | 27286ba5 | Thomas Schöpping | /**
 | 
      
| 20 |  * @file
 | 
      ||
| 21 |  * @brief   Structures and constant for the LightRing v1.0 module.
 | 
      ||
| 22 |  *
 | 
      ||
| 23 |  * @addtogroup lightring_module
 | 
      ||
| 24 |  * @{
 | 
      ||
| 25 |  */
 | 
      ||
| 26 | |||
| 27 | e545e620 | Thomas Schöpping | #include "module.h"  | 
      
| 28 | |||
| 29 | /*===========================================================================*/
 | 
      ||
| 30 | /**
 | 
      ||
| 31 |  * @name Module specific functions
 | 
      ||
| 32 |  * @{
 | 
      ||
| 33 |  */
 | 
      ||
| 34 | /*===========================================================================*/
 | 
      ||
| 35 | |||
| 36 | /** @} */
 | 
      ||
| 37 | |||
| 38 | /*===========================================================================*/
 | 
      ||
| 39 | /**
 | 
      ||
| 40 |  * @name ChibiOS/HAL configuration
 | 
      ||
| 41 |  * @{
 | 
      ||
| 42 |  */
 | 
      ||
| 43 | /*===========================================================================*/
 | 
      ||
| 44 | |||
| 45 | CANConfig moduleHalCanConfig = {
 | 
      ||
| 46 |   /* mcr  */ CAN_MCR_ABOM | CAN_MCR_AWUM | CAN_MCR_TXFP,
 | 
      ||
| 47 | /* btr */ CAN_BTR_SJW(1) | CAN_BTR_TS2(2) | CAN_BTR_TS1(13) | CAN_BTR_BRP(1),  | 
      ||
| 48 | };  | 
      ||
| 49 | |||
| 50 | I2CConfig moduleHalI2cEepromConfig = {
 | 
      ||
| 51 |   /* I²C mode   */ OPMODE_I2C,
 | 
      ||
| 52 | /* frequency */ 400000, // TODO: replace with some macro (-> ChibiOS/HAL)  | 
      ||
| 53 |   /* duty cycle */ FAST_DUTY_CYCLE_2,
 | 
      ||
| 54 | };  | 
      ||
| 55 | |||
| 56 | SerialConfig moduleHalProgIfConfig = {
 | 
      ||
| 57 | /* bit rate */ 115200,  | 
      ||
| 58 | /* CR1 */ 0,  | 
      ||
| 59 | /* CR1 */ 0,  | 
      ||
| 60 | /* CR1 */ 0,  | 
      ||
| 61 | };  | 
      ||
| 62 | |||
| 63 | SPIConfig moduleHalSpiLightConfig = {
 | 
      ||
| 64 | 0128be0f | Marc Rothmann | /* circular buffer mode */ false,  | 
      
| 65 | e545e620 | Thomas Schöpping | /* callback function pointer */ NULL,  | 
      
| 66 |   /* chip select line port       */ GPIOC,
 | 
      ||
| 67 |   /* chip select line pad number */ GPIOC_LIGHT_XLAT,
 | 
      ||
| 68 |   /* CR1                         */ SPI_CR1_BR_0 | SPI_CR1_BR_1,
 | 
      ||
| 69 |   /* CR2                         */ SPI_CR2_RXDMAEN | SPI_CR2_TXDMAEN,
 | 
      ||
| 70 | 22be62dc | Thomas Schöpping | };  | 
      
| 71 | |||
| 72 | 02c29a8f | Thomas Schöpping | SPIConfig moduleHalSpiWlConfig = {
 | 
      
| 73 | 22be62dc | Thomas Schöpping | /* circular buffer mode */ false,  | 
      
| 74 | /* callback function pointer */ NULL,  | 
      ||
| 75 |   /* chip select line port       */ GPIOB,
 | 
      ||
| 76 |   /* chip select line pad number */ GPIOB_WL_SS_N,
 | 
      ||
| 77 | 02c29a8f | Thomas Schöpping |   /* CR1                         */ SPI_CR1_BR_0,
 | 
      
| 78 | 22be62dc | Thomas Schöpping |   /* CR2                         */ SPI_CR2_RXDMAEN | SPI_CR2_TXDMAEN,
 | 
      
| 79 | e545e620 | Thomas Schöpping | };  | 
      
| 80 | |||
| 81 | /*===========================================================================*/
 | 
      ||
| 82 | /**
 | 
      ||
| 83 |  * @name GPIO definitions
 | 
      ||
| 84 |  * @{
 | 
      ||
| 85 |  */
 | 
      ||
| 86 | /*===========================================================================*/
 | 
      ||
| 87 | |||
| 88 | 1e5f7648 | Thomas Schöpping | /**
 | 
      
| 89 |  * @brief   LIGHT_BANK output signal GPIO.
 | 
      ||
| 90 |  */
 | 
      ||
| 91 | static apalGpio_t _gpioLightBlank = {
 | 
      ||
| 92 | e545e620 | Thomas Schöpping |   /* port */ GPIOA,
 | 
      
| 93 |   /* pad  */ GPIOA_LIGHT_BLANK,
 | 
      ||
| 94 | };  | 
      ||
| 95 | acc97cbf | Thomas Schöpping | ROMCONST apalControlGpio_t moduleGpioLightBlank = {
 | 
      
| 96 | 1e5f7648 | Thomas Schöpping |   /* GPIO */ &_gpioLightBlank,
 | 
      
| 97 |   /* meta */ {
 | 
      ||
| 98 |     /* direction      */ APAL_GPIO_DIRECTION_OUTPUT,
 | 
      ||
| 99 |     /* active state   */ TLC5947_LLD_BLANK_ACTIVE_STATE,
 | 
      ||
| 100 |     /* interrupt edge */ APAL_GPIO_EDGE_NONE,
 | 
      ||
| 101 | },  | 
      ||
| 102 | };  | 
      ||
| 103 | e545e620 | Thomas Schöpping | |
| 104 | 1e5f7648 | Thomas Schöpping | /**
 | 
      
| 105 |  * @brief   LASER_EN output signal GPIO.
 | 
      ||
| 106 |  */
 | 
      ||
| 107 | static apalGpio_t _gpioLaserEn = {
 | 
      ||
| 108 | e545e620 | Thomas Schöpping |   /* port */ GPIOB,
 | 
      
| 109 |   /* pad  */ GPIOB_LASER_EN,
 | 
      ||
| 110 | };  | 
      ||
| 111 | acc97cbf | Thomas Schöpping | ROMCONST apalControlGpio_t moduleGpioLaserEn = {
 | 
      
| 112 | 1e5f7648 | Thomas Schöpping |   /* GPIO */ &_gpioLaserEn,
 | 
      
| 113 |   /* meta */ {
 | 
      ||
| 114 |     /* direction      */ APAL_GPIO_DIRECTION_OUTPUT,
 | 
      ||
| 115 | ddf34c3d | Thomas Schöpping |     /* active state   */ TPS20xxB_LLD_ENABLE_ACTIVE_STATE,
 | 
      
| 116 | 1e5f7648 | Thomas Schöpping |     /* interrupt edge */ APAL_GPIO_EDGE_NONE,
 | 
      
| 117 | },  | 
      ||
| 118 | };  | 
      ||
| 119 | e545e620 | Thomas Schöpping | |
| 120 | 1e5f7648 | Thomas Schöpping | /**
 | 
      
| 121 |  * @brief   LASER_OC input signal GPIO.
 | 
      ||
| 122 |  */
 | 
      ||
| 123 | static apalGpio_t _gpioLaserOc = {
 | 
      ||
| 124 | e545e620 | Thomas Schöpping |   /* port */ GPIOB,
 | 
      
| 125 |   /* pad  */ GPIOB_LASER_OC_N,
 | 
      ||
| 126 | };  | 
      ||
| 127 | acc97cbf | Thomas Schöpping | ROMCONST apalControlGpio_t moduleGpioLaserOc = {
 | 
      
| 128 | 1e5f7648 | Thomas Schöpping |   /* GPIO */ &_gpioLaserOc,
 | 
      
| 129 |   /* meta */ {
 | 
      ||
| 130 |     /* direction      */ APAL_GPIO_DIRECTION_INPUT,
 | 
      ||
| 131 | ddf34c3d | Thomas Schöpping |     /* active state   */ TPS20xxB_LLD_OVERCURRENT_ACTIVE_STATE,
 | 
      
| 132 | 1e5f7648 | Thomas Schöpping |     /* interrupt edge */ APAL_GPIO_EDGE_BOTH,
 | 
      
| 133 | },  | 
      ||
| 134 | };  | 
      ||
| 135 | e545e620 | Thomas Schöpping | |
| 136 | 1e5f7648 | Thomas Schöpping | /**
 | 
      
| 137 |  * @brief   SYS_UART_DN bidirectional signal GPIO.
 | 
      ||
| 138 |  */
 | 
      ||
| 139 | static apalGpio_t _gpioSysUartDn = {
 | 
      ||
| 140 | e545e620 | Thomas Schöpping |   /* port */ GPIOB,
 | 
      
| 141 |   /* pad  */ GPIOB_SYS_UART_DN,
 | 
      ||
| 142 | };  | 
      ||
| 143 | acc97cbf | Thomas Schöpping | ROMCONST apalControlGpio_t moduleGpioSysUartDn = {
 | 
      
| 144 | 1e5f7648 | Thomas Schöpping |   /* GPIO */ &_gpioSysUartDn,
 | 
      
| 145 |   /* meta */ {
 | 
      ||
| 146 |     /* direction      */ APAL_GPIO_DIRECTION_BIDIRECTIONAL,
 | 
      ||
| 147 |     /* active state   */ APAL_GPIO_ACTIVE_LOW,
 | 
      ||
| 148 |     /* interrupt edge */ APAL_GPIO_EDGE_BOTH,
 | 
      ||
| 149 | },  | 
      ||
| 150 | };  | 
      ||
| 151 | e545e620 | Thomas Schöpping | |
| 152 | 1e5f7648 | Thomas Schöpping | /**
 | 
      
| 153 |  * @brief   WL_GDO2 input signal GPIO.
 | 
      ||
| 154 |  */
 | 
      ||
| 155 | static apalGpio_t _gpioWlGdo2 = {
 | 
      ||
| 156 | e545e620 | Thomas Schöpping |   /* port */ GPIOB,
 | 
      
| 157 |   /* pad  */ GPIOB_WL_GDO2,
 | 
      ||
| 158 | };  | 
      ||
| 159 | acc97cbf | Thomas Schöpping | ROMCONST apalControlGpio_t moduleGpioWlGdo2 = {
 | 
      
| 160 | 1e5f7648 | Thomas Schöpping |   /* GPIO */ &_gpioWlGdo2,
 | 
      
| 161 |   /* meta */ {
 | 
      ||
| 162 |     /* direction      */ APAL_GPIO_DIRECTION_INPUT,
 | 
      ||
| 163 |     /* active state   */ APAL_GPIO_ACTIVE_HIGH,
 | 
      ||
| 164 |     /* interrupt edge */ APAL_GPIO_EDGE_BOTH,
 | 
      ||
| 165 | },  | 
      ||
| 166 | };  | 
      ||
| 167 | e545e620 | Thomas Schöpping | |
| 168 | 1e5f7648 | Thomas Schöpping | /**
 | 
      
| 169 |  * @brief   WL_GDO0 input signal GPIO.
 | 
      ||
| 170 |  */
 | 
      ||
| 171 | static apalGpio_t _gpioWlGdo0= {
 | 
      ||
| 172 | e545e620 | Thomas Schöpping |   /* port */ GPIOB,
 | 
      
| 173 |   /* pad  */ GPIOB_WL_GDO0,
 | 
      ||
| 174 | };  | 
      ||
| 175 | acc97cbf | Thomas Schöpping | ROMCONST apalControlGpio_t moduleGpioWlGdo0 = {
 | 
      
| 176 | 1e5f7648 | Thomas Schöpping |   /* GPIO */ &_gpioWlGdo0,
 | 
      
| 177 |   /* meta */ {
 | 
      ||
| 178 |     /* direction      */ APAL_GPIO_DIRECTION_INPUT,
 | 
      ||
| 179 |     /* active state   */ APAL_GPIO_ACTIVE_HIGH,
 | 
      ||
| 180 |     /* interrupt edge */ APAL_GPIO_EDGE_BOTH,
 | 
      ||
| 181 | },  | 
      ||
| 182 | };  | 
      ||
| 183 | e545e620 | Thomas Schöpping | |
| 184 | 1e5f7648 | Thomas Schöpping | /**
 | 
      
| 185 |  * @brief   LIGHT_XLAT output signal GPIO.
 | 
      ||
| 186 |  */
 | 
      ||
| 187 | static apalGpio_t _gpioLightXlat = {
 | 
      ||
| 188 | e545e620 | Thomas Schöpping |   /* port */ GPIOC,
 | 
      
| 189 |   /* pad  */ GPIOC_LIGHT_XLAT,
 | 
      ||
| 190 | };  | 
      ||
| 191 | acc97cbf | Thomas Schöpping | ROMCONST apalControlGpio_t moduleGpioLightXlat = {
 | 
      
| 192 | 1e5f7648 | Thomas Schöpping |   /* GPIO */ &_gpioLightXlat,
 | 
      
| 193 |   /* meta */ {
 | 
      ||
| 194 |     /* direction      */ APAL_GPIO_DIRECTION_OUTPUT,
 | 
      ||
| 195 |     /* active state   */ TLC5947_LLD_XLAT_ACTIVE_STATE,
 | 
      ||
| 196 |     /* interrupt edge */ APAL_GPIO_EDGE_NONE,
 | 
      ||
| 197 | },  | 
      ||
| 198 | };  | 
      ||
| 199 | e545e620 | Thomas Schöpping | |
| 200 | 1e5f7648 | Thomas Schöpping | /**
 | 
      
| 201 |  * @brief   SYS_PD bidirectional signal GPIO.
 | 
      ||
| 202 |  */
 | 
      ||
| 203 | static apalGpio_t _gpioSysPd = {
 | 
      ||
| 204 | e545e620 | Thomas Schöpping |   /* port */ GPIOC,
 | 
      
| 205 |   /* pad  */ GPIOC_SYS_PD_N,
 | 
      ||
| 206 | };  | 
      ||
| 207 | acc97cbf | Thomas Schöpping | ROMCONST apalControlGpio_t moduleGpioSysPd = {
 | 
      
| 208 | 1e5f7648 | Thomas Schöpping |   /* GPIO */ &_gpioSysPd,
 | 
      
| 209 |   /* meta */ {
 | 
      ||
| 210 |     /* direction      */ APAL_GPIO_DIRECTION_BIDIRECTIONAL,
 | 
      ||
| 211 |     /* active state   */ APAL_GPIO_ACTIVE_LOW,
 | 
      ||
| 212 |     /* interrupt edge */ APAL_GPIO_EDGE_BOTH,
 | 
      ||
| 213 | },  | 
      ||
| 214 | };  | 
      ||
| 215 | e545e620 | Thomas Schöpping | |
| 216 | 1e5f7648 | Thomas Schöpping | /**
 | 
      
| 217 |  * @brief   SYS_SYNC bidirectional signal GPIO.
 | 
      ||
| 218 |  */
 | 
      ||
| 219 | static apalGpio_t _gpioSysSync = {
 | 
      ||
| 220 | e545e620 | Thomas Schöpping |   /* port */ GPIOD,
 | 
      
| 221 |   /* pad  */ GPIOD_SYS_INT_N,
 | 
      ||
| 222 | };  | 
      ||
| 223 | acc97cbf | Thomas Schöpping | ROMCONST apalControlGpio_t moduleGpioSysSync = {
 | 
      
| 224 | 1e5f7648 | Thomas Schöpping |   /* GPIO */ &_gpioSysSync,
 | 
      
| 225 |   /* meta */ {
 | 
      ||
| 226 |     /* direction      */ APAL_GPIO_DIRECTION_BIDIRECTIONAL,
 | 
      ||
| 227 |     /* active state   */ APAL_GPIO_ACTIVE_LOW,
 | 
      ||
| 228 |     /* interrupt edge */ APAL_GPIO_EDGE_BOTH,
 | 
      ||
| 229 | },  | 
      ||
| 230 | };  | 
      ||
| 231 | e545e620 | Thomas Schöpping | |
| 232 | /** @} */
 | 
      ||
| 233 | |||
| 234 | /*===========================================================================*/
 | 
      ||
| 235 | /**
 | 
      ||
| 236 |  * @name AMiRo-OS core configurations
 | 
      ||
| 237 |  * @{
 | 
      ||
| 238 |  */
 | 
      ||
| 239 | /*===========================================================================*/
 | 
      ||
| 240 | |||
| 241 | 2dd2e257 | Thomas Schöpping | #if (AMIROOS_CFG_SHELL_ENABLE == true) || (AMIROOS_CFG_TESTS_ENABLE == true) || defined(__DOXYGEN__)  | 
      
| 242 | acc97cbf | Thomas Schöpping | ROMCONST char* moduleShellPrompt = "LightRing";  | 
      
| 243 | 6b53f6bf | Thomas Schöpping | #endif
 | 
      
| 244 | |||
| 245 | /** @} */
 | 
      ||
| 246 | |||
| 247 | /*===========================================================================*/
 | 
      ||
| 248 | /**
 | 
      ||
| 249 |  * @name Startup Shutdown Synchronization Protocol (SSSP)
 | 
      ||
| 250 |  * @{
 | 
      ||
| 251 |  */
 | 
      ||
| 252 | /*===========================================================================*/
 | 
      ||
| 253 | |||
| 254 | e545e620 | Thomas Schöpping | /** @} */
 | 
      
| 255 | |||
| 256 | /*===========================================================================*/
 | 
      ||
| 257 | /**
 | 
      ||
| 258 |  * @name Low-level drivers
 | 
      ||
| 259 |  * @{
 | 
      ||
| 260 |  */
 | 
      ||
| 261 | /*===========================================================================*/
 | 
      ||
| 262 | |||
| 263 | ddf34c3d | Thomas Schöpping | AT24C01BDriver moduleLldEeprom = {
 | 
      
| 264 | e545e620 | Thomas Schöpping |   /* I2C driver   */ &MODULE_HAL_I2C_EEPROM,
 | 
      
| 265 | /* I2C address */ 0x00u,  | 
      ||
| 266 | };  | 
      ||
| 267 | |||
| 268 | TLC5947Driver moduleLldLedPwm = {
 | 
      ||
| 269 |   /* SPI driver         */ &MODULE_HAL_SPI_LIGHT,
 | 
      ||
| 270 | 1e5f7648 | Thomas Schöpping |   /* BLANK signal GPIO  */ &moduleGpioLightBlank,
 | 
      
| 271 |   /* XLAT signal GPIO   */ &moduleGpioLightXlat,
 | 
      ||
| 272 | e545e620 | Thomas Schöpping | };  | 
      
| 273 | |||
| 274 | ddf34c3d | Thomas Schöpping | TPS20xxBDriver moduleLldPowerSwitchLaser = {
 | 
      
| 275 | 1e5f7648 | Thomas Schöpping |   /* laser enable GPIO      */ &moduleGpioLaserEn,
 | 
      
| 276 |   /* laser overcurrent GPIO */ &moduleGpioLaserOc,
 | 
      ||
| 277 | e545e620 | Thomas Schöpping | };  | 
      
| 278 | |||
| 279 | /** @} */
 | 
      ||
| 280 | |||
| 281 | /*===========================================================================*/
 | 
      ||
| 282 | /**
 | 
      ||
| 283 |  * @name Unit tests (UT)
 | 
      ||
| 284 |  * @{
 | 
      ||
| 285 |  */
 | 
      ||
| 286 | /*===========================================================================*/
 | 
      ||
| 287 | #if (AMIROOS_CFG_TESTS_ENABLE == true) || defined(__DOXYGEN__)  | 
      ||
| 288 | |||
| 289 | 8be006e0 | Thomas Schöpping | /*
 | 
      
| 290 | ddf34c3d | Thomas Schöpping |  * EEPROM (AT24C01B)
 | 
      
| 291 | 8be006e0 | Thomas Schöpping |  */
 | 
      
| 292 | ddf34c3d | Thomas Schöpping | static int _utShellCmdCb_AlldAt24c01b(BaseSequentialStream* stream, int argc, char* argv[])  | 
      
| 293 | e545e620 | Thomas Schöpping | {
 | 
      
| 294 |   (void)argc;
 | 
      ||
| 295 |   (void)argv;
 | 
      ||
| 296 | ddf34c3d | Thomas Schöpping |   aosUtRun(stream, &moduleUtAlldAt24c01b, NULL);
 | 
      
| 297 | e545e620 | Thomas Schöpping |   return AOS_OK;
 | 
      
| 298 | }  | 
      ||
| 299 | ddf34c3d | Thomas Schöpping | static ut_at24c01bdata_t _utAlldAt24c01bData = {
 | 
      
| 300 | e545e620 | Thomas Schöpping |   /* driver   */ &moduleLldEeprom,
 | 
      
| 301 |   /* timeout  */ MICROSECONDS_PER_SECOND,
 | 
      ||
| 302 | };  | 
      ||
| 303 | ddf34c3d | Thomas Schöpping | aos_unittest_t moduleUtAlldAt24c01b = {
 | 
      
| 304 | /* name */ "AT24C01B",  | 
      ||
| 305 | e545e620 | Thomas Schöpping | /* info */ "1kbit EEPROM",  | 
      
| 306 | ddf34c3d | Thomas Schöpping |   /* test function  */ utAlldAt24c01bFunc,
 | 
      
| 307 | e545e620 | Thomas Schöpping |   /* shell command  */ {
 | 
      
| 308 | /* name */ "unittest:EEPROM",  | 
      ||
| 309 | ddf34c3d | Thomas Schöpping |     /* callback */ _utShellCmdCb_AlldAt24c01b,
 | 
      
| 310 | e545e620 | Thomas Schöpping | /* next */ NULL,  | 
      
| 311 | },  | 
      ||
| 312 | ddf34c3d | Thomas Schöpping |   /* data           */ &_utAlldAt24c01bData,
 | 
      
| 313 | e545e620 | Thomas Schöpping | };  | 
      
| 314 | |||
| 315 | 8be006e0 | Thomas Schöpping | /*
 | 
      
| 316 | ddf34c3d | Thomas Schöpping |  * LED PWM driver (TLC5947)
 | 
      
| 317 | 8be006e0 | Thomas Schöpping |  */
 | 
      
| 318 | e545e620 | Thomas Schöpping | static int _utShellCmdCb_Tlc5947(BaseSequentialStream* stream, int argc, char* argv[])  | 
      
| 319 | {
 | 
      ||
| 320 |   (void)argc;
 | 
      ||
| 321 |   (void)argv;
 | 
      ||
| 322 |   aosUtRun(stream, &moduleUtAlldTlc5947, NULL);
 | 
      ||
| 323 |   return AOS_OK;
 | 
      ||
| 324 | }  | 
      ||
| 325 | aos_unittest_t moduleUtAlldTlc5947 = {
 | 
      ||
| 326 | /* info */ "TLC5947",  | 
      ||
| 327 | /* name */ "LED PWM driver",  | 
      ||
| 328 |   /* test function  */ utAlldTlc5947Func,
 | 
      ||
| 329 |   /* shell command  */ {
 | 
      ||
| 330 | /* name */ "unittest:Lights",  | 
      ||
| 331 |     /* callback */ _utShellCmdCb_Tlc5947,
 | 
      ||
| 332 | /* next */ NULL,  | 
      ||
| 333 | },  | 
      ||
| 334 |   /* data           */ &moduleLldLedPwm,
 | 
      ||
| 335 | };  | 
      ||
| 336 | |||
| 337 | 8be006e0 | Thomas Schöpping | /*
 | 
      
| 338 | ddf34c3d | Thomas Schöpping |  * power switch (TPS2051BDBV)
 | 
      
| 339 | 8be006e0 | Thomas Schöpping |  */
 | 
      
| 340 | e545e620 | Thomas Schöpping | static int _utShellCmdCb_Tps2051bdbv(BaseSequentialStream* stream, int argc, char* argv[])  | 
      
| 341 | {
 | 
      ||
| 342 |   (void)argc;
 | 
      ||
| 343 |   (void)argv;
 | 
      ||
| 344 |   aosUtRun(stream,&moduleUtAlldTps2051bdbv, NULL);
 | 
      ||
| 345 |   return AOS_OK;
 | 
      ||
| 346 | }  | 
      ||
| 347 | aos_unittest_t moduleUtAlldTps2051bdbv = {
 | 
      ||
| 348 | /* info */ "TPS2051BDBV",  | 
      ||
| 349 | /* name */ "current-limited power switch",  | 
      ||
| 350 | ddf34c3d | Thomas Schöpping |   /* test function  */ utAlldTps20xxbFunc,
 | 
      
| 351 | e545e620 | Thomas Schöpping |   /* shell command  */ {
 | 
      
| 352 | /* name */ "unittest:PowerSwitch",  | 
      ||
| 353 |     /* callback */ _utShellCmdCb_Tps2051bdbv,
 | 
      ||
| 354 | /* next */ NULL,  | 
      ||
| 355 | },  | 
      ||
| 356 |   /* data           */ &moduleLldPowerSwitchLaser,
 | 
      ||
| 357 | };  | 
      ||
| 358 | |||
| 359 | #endif /* AMIROOS_CFG_TESTS_ENABLE == true */  | 
      ||
| 360 | |||
| 361 | /** @} */
 | 
      ||
| 362 | 3940ba8a | Thomas Schöpping | /** @} */ |