dm: spi: Return 0 if driver does not implement ops->cs_info
authorBin Meng <bmeng.cn@gmail.com>
Mon, 9 Sep 2019 13:00:00 +0000 (06:00 -0700)
committerJagan Teki <jagan@amarulasolutions.com>
Thu, 24 Oct 2019 19:18:31 +0000 (00:48 +0530)
If an SPI controller driver does not implement ops->cs_info, that
probably means any chip select number could be valid, hence let's
return 0 for spi_cs_info().

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Tested-by: Jagan Teki <jagan@amarulasolutions.com> # SoPine
Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
doc/driver-model/spi-howto.rst
drivers/spi/spi-uclass.c

index 5540eb7d38ecabf7a7ac896251bfde916b5edabb..44eab3947e7df6eabdc95269a1487ada41183455 100644 (file)
@@ -634,8 +634,8 @@ method for cs_info() to deal with this. If you don't provide it, then the
 device tree will be used to determine what chip selects are valid.
 
 Return -ENODEV if the supplied chip select is invalid, or 0 if it is valid.
-If you don't provide the cs_info() method, -ENODEV is assumed for all
-chip selects that do not appear in the device tree.
+If you don't provide the cs_info() method, 0 is assumed for all chip selects
+that do not appear in the device tree.
 
 
 Test it
index a4d1b65682d1e75d4ccac2b38c90f2f1f005a124..947516073ea99650b1703a9fc5fcc854b5496a81 100644 (file)
@@ -261,11 +261,10 @@ int spi_cs_info(struct udevice *bus, uint cs, struct spi_cs_info *info)
                return ops->cs_info(bus, cs, info);
 
        /*
-        * We could assume there is at least one valid chip select, but best
-        * to be sure and return an error in this case. The driver didn't
-        * care enough to tell us.
+        * We could assume there is at least one valid chip select.
+        * The driver didn't care enough to tell us.
         */
-       return -ENODEV;
+       return 0;
 }
 
 int spi_find_bus_and_cs(int busnum, int cs, struct udevice **busp,