From: Ovidiu Panait Date: Mon, 14 Dec 2020 17:06:47 +0000 (+0200) Subject: sandbox: test: Add a second SPI slave on sandbox_spi bus X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=1dc53ce71d961a0404c0d785fb0b66f351a7b730;p=u-boot.git sandbox: test: Add a second SPI slave on sandbox_spi bus Place a second spi slave on the sandbox_spi bus, to be used by the spi_claim_bus() testcase we are about to introduce. We need to make sure that jumping between slaves calling spi_claim_bus() sets the bus speed and mode appropriately. Use different max-hz and mode properties for this new slave. Also, update sandbox_spi cs_info call to allow activity on CS0/CS1 and adapt dm_test_spi_find() testcase for this new setup. Signed-off-by: Ovidiu Panait Reviewed-by: Simon Glass --- diff --git a/arch/sandbox/dts/test.dts b/arch/sandbox/dts/test.dts index d49bee43aa..c9b9b7b75e 100644 --- a/arch/sandbox/dts/test.dts +++ b/arch/sandbox/dts/test.dts @@ -865,13 +865,21 @@ #size-cells = <0>; reg = <0 1>; compatible = "sandbox,spi"; - cs-gpios = <0>, <&gpio_a 0>; + cs-gpios = <0>, <0>, <&gpio_a 0>; spi.bin@0 { reg = <0>; compatible = "spansion,m25p16", "jedec,spi-nor"; spi-max-frequency = <40000000>; sandbox,filename = "spi.bin"; }; + spi.bin@1 { + reg = <1>; + compatible = "spansion,m25p16", "jedec,spi-nor"; + spi-max-frequency = <50000000>; + sandbox,filename = "spi.bin"; + spi-cpol; + spi-cpha; + }; }; syscon0: syscon@0 { diff --git a/drivers/spi/sandbox_spi.c b/drivers/spi/sandbox_spi.c index 6adddd77b8..58f80c60ac 100644 --- a/drivers/spi/sandbox_spi.c +++ b/drivers/spi/sandbox_spi.c @@ -101,8 +101,8 @@ static int sandbox_spi_set_mode(struct udevice *bus, uint mode) static int sandbox_cs_info(struct udevice *bus, uint cs, struct spi_cs_info *info) { - /* Always allow activity on CS 0 */ - if (cs >= 1) + /* Always allow activity on CS 0, CS 1 */ + if (cs >= 2) return -EINVAL; return 0; diff --git a/test/dm/spi.c b/test/dm/spi.c index b767cf9c4a..59bcedf293 100644 --- a/test/dm/spi.c +++ b/test/dm/spi.c @@ -22,7 +22,7 @@ static int dm_test_spi_find(struct unit_test_state *uts) struct sandbox_state *state = state_get_current(); struct spi_slave *slave; struct udevice *bus, *dev; - const int busnum = 0, cs = 0, mode = 0, speed = 1000000, cs_b = 1; + const int busnum = 0, cs = 0, mode = 0, speed = 1000000, cs_b = 2; struct spi_cs_info info; ofnode node;