1*** Variables ***
2${UART}                       sysbus.uart0
3${URI}                        @https://dl.antmicro.com/projects/renode
4
5*** Keywords ***
6Create Machine
7    Execute Command          $bin=${URI}/nrf52840--zephyr-custom_spi_sensors_cs.elf-s_1125736-5cf7322357c0434481335500e9eb38ebe44948c3
8    Execute Command          include @scripts/single-node/nrf52840.resc
9
10    Execute Command          machine LoadPlatformDescriptionFromString "spi_mux: SPI.SPIMultiplexer @ spi2 { init: { SetActiveLow 0; SetActiveLow 1 } }"
11    Execute Command          machine LoadPlatformDescriptionFromString "dummy0spi: Mocks.DummySPISlave @ spi_mux 0x0"
12    Execute Command          machine LoadPlatformDescriptionFromString "dummy1spi: Mocks.DummySPISlave @ spi_mux 0x1"
13    Execute Command          machine LoadPlatformDescriptionFromString "gpio0: { 22 -> spi_mux@0; 23 -> spi_mux@1 }"
14
15*** Test Cases ***
16Should Talk to Two SPI Devices
17    Create Machine
18    Create Terminal Tester   ${UART}
19    Execute Command          logLevel -1 sysbus.spi2.spi_mux.dummy0spi
20    Execute Command          logLevel -1 sysbus.spi2.spi_mux.dummy1spi
21    Execute Command          logLevel 3 sysbus.nvic
22
23    # 0x2B0 -> 21.5 C
24    Execute Command          sysbus.spi2.spi_mux.dummy0spi EnqueueValue 0x02
25    Execute Command          sysbus.spi2.spi_mux.dummy0spi EnqueueValue 0xB0
26
27    # x 0.008750 , y 0.017500 , z 0.008750
28    Execute Command          sysbus.spi2.spi_mux.dummy1spi EnqueueValue 0xFF
29    Execute Command          sysbus.spi2.spi_mux.dummy1spi EnqueueValue 0xFF
30    Execute Command          sysbus.spi2.spi_mux.dummy1spi EnqueueValue 0xFF
31    Execute Command          sysbus.spi2.spi_mux.dummy1spi EnqueueValue 0xFF
32    Execute Command          sysbus.spi2.spi_mux.dummy1spi EnqueueValue 0xFF
33    Execute Command          sysbus.spi2.spi_mux.dummy1spi EnqueueValue 0x01
34    Execute Command          sysbus.spi2.spi_mux.dummy1spi EnqueueValue 0x00
35    Execute Command          sysbus.spi2.spi_mux.dummy1spi EnqueueValue 0x02
36    Execute Command          sysbus.spi2.spi_mux.dummy1spi EnqueueValue 0x00
37    Execute Command          sysbus.spi2.spi_mux.dummy1spi EnqueueValue 0x01
38    Execute Command          sysbus.spi2.spi_mux.dummy1spi EnqueueValue 0x00
39
40    Start Emulation
41
42    Wait For Line On Uart    Booting Zephyr
43    Wait For Line On Uart    Temperature: 21.50 C
44    Wait For Line On Uart    x 0.008750 , y 0.017500 , z 0.008750
45