I'm getting back to an earlier NRF52840 project that uses SPI. Have upgraded to Zephyr 2.1 and finding
my way around a few subtle changes. Have encountered the following problem when rebuilding an old project.
[0/1] Re-running CMake...
Zephyr version: 2.1.0
-- Selected BOARD nrf52840_pca10056
-- Found west: /home/mcp/.local/bin/west (found suitable version "0.6.3", minimum required is "0.6.0")
-- Loading /home/mcp/zephyrproject/zephyr/boards/arm/nrf52840_pca10056/nrf52840_pca10056.dts as base
-- Overlaying /home/mcp/ZephyrProjects/pervisum_SRR_remote/additionalDts.overlay
nrf52840_pca10056.dts.pre.tmp:146.22-154.5: Warning (unique_unit_address_if_enabled): /soc/i2c@40003000: duplicate unit-address (also used in node /soc/spi@40003000)
also defined at nrf52840_pca10056.dts.pre.tmp:492.20-497.3
devicetree error: unknown 'status' value "ok" in /soc/spi@40003000 in nrf52840_pca10056.dts.pre.tmp, expected one of fail, okay, disabled, reserved, fail-sss (see the devicetree specification)
CMake Error at /home/mcp/zephyrproject/zephyr/cmake/dts.cmake:198 (message):
new extractor failed with return code: 1
I realize that the warning in the line above is just that.....a warning and should not generate an error. When I look at nrf52840_pca.dts.pre.tmp, it in fact has
&spi0 {
status = "ok";
sck-pin = <28>;
mosi-pin = <29>;
miso-pin = <30>;
};
at the very end. Since this file is generated by CMake, I have been searching for the source of "status = "ok"" but have found nothing.
My current prj.conf file is:
CONFIG_TIMER_READS_ITS_FREQUENCY_AT_RUNTIME=y
CONFIG_FLOAT=y
CONFIG_FP_SHARING=y
CONFIG_HEAP_MEM_POOL_SIZE=16384
# GPIO and SPI config
CONFIG_GPIO=y
CONFIG_I2C=n
CONFIG_SPI=y
CONFIG_SPI_1=y
CONFIG_SPI_NRFX=y
CONFIG_SPI_ASYNC=y
CONFIG_SPI_1_OP_MODES=1
CONFIG_SPI_1_NRF_SPIM=y
CONFIG_SPI_1_NRF_ORC=0xf
Just trying to get back to a working config for SPI on this platform. Any suggestions would be
welcome.
Chuck McP