Soft SPI initialization function */
| 245 | |
| 246 | /* Soft SPI initialization function */ |
| 247 | int rt_soft_spi_init(void) |
| 248 | { |
| 249 | rt_size_t obj_num = sizeof(spi_obj) / sizeof(struct rt_soft_spi); |
| 250 | rt_err_t result; |
| 251 | |
| 252 | for (rt_size_t i = 0; i < obj_num; i++) |
| 253 | { |
| 254 | rt_memcpy(&spi_obj[i].ops, &soft_spi_ops, sizeof(struct rt_spi_bit_ops)); |
| 255 | spi_obj[i].ops.data = (void *)&soft_spi_config[i]; |
| 256 | spi_obj[i].spi.ops = &soft_spi_ops; |
| 257 | spi_obj[i].cfg = (void *)&soft_spi_config[i]; |
| 258 | spi_soft_pin_init(&spi_obj[i]); |
| 259 | spi_obj[i].spi.ops->delay_us = soft_spi_config[i].timing_delay; |
| 260 | result = rt_spi_bit_add_bus(&spi_obj[i].spi, soft_spi_config[i].bus_name, &spi_obj[i].ops); |
| 261 | RT_ASSERT(result == RT_EOK); |
| 262 | } |
| 263 | |
| 264 | return RT_EOK; |
| 265 | } |
| 266 | INIT_PREV_EXPORT(rt_soft_spi_init); |
| 267 | |
| 268 | #endif /* RT_USING_SOFT_SPI */ |
nothing calls this directly
no test coverage detected