I'm just starting to look at the SPI HAL to implement a test driver, but
looking through the hal_spi code I see what might be a conflict.
In the master branch of apache-mynewt-core the nRF52SK BSP has both SPI0
and SPIS0 enabled:
*
https://github.com/apache/incubator-mynewt-core/blob/master/hw/bsp/nrf52dk/include/bsp/nrf_drv_config.h#L211
*
https://github.com/apache/incubator-mynewt-core/blob/master/hw/bsp/nrf52dk/include/bsp/nrf_drv_config.h#L252
Won't this lead to a situation where the hal_bsp_init function will
always initialize in slave mode, when end users might be expecting
master mode if they don't read the code carefully:
https://github.com/apache/incubator-mynewt-core/blob/master/hw/bsp/nrf52dk/src/hal_bsp.c#L217
Perhaps these should be exclusive and an #error is raised if both master
and slave are enabled on the same bus (which would also apply for I2C)?
The two options don't seem to be possible at the same time since there
are separate init functions in the MCU HAL SPI code:
https://github.com/apache/incubator-mynewt-core/blob/master/hw/mcu/nordic/nrf52xxx/src/hal_spi.c#L620
... and the pins will have to be configured in different directions (SCK
will be input in one mode and output in the other, etc.).
Kevin