mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
dm: spi: Change cs_info op to return -EINVAL for invalid cs num
We need distinguish the following two situations in various SPI APIs: - given chip select num is invalid - given chip select num is valid, but no device is attached Currently -ENODEV is returned for both cases. For the first case, it's more reasonable to return -EINVAL instead of -ENODEV for invalid chip select numbers. Signed-off-by: Bin Meng <bmeng.cn@gmail.com> Tested-by: Jagan Teki <jagan@amarulasolutions.com> # SoPine Reviewed-by: Jagan Teki <jagan@amarulasolutions.com>
This commit is contained in:
parent
4dd520b36b
commit
4b06000395
7 changed files with 8 additions and 8 deletions
|
@ -116,7 +116,7 @@ Put this code at the bottom of your existing driver file:
|
|||
static int exynos_cs_info(struct udevice *bus, uint cs,
|
||||
struct spi_cs_info *info)
|
||||
{
|
||||
return -ENODEV;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
static const struct dm_spi_ops exynos_spi_ops = {
|
||||
|
@ -633,7 +633,7 @@ is not obvious from outside the driver. In this case you can provide a
|
|||
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.
|
||||
Return -EINVAL if the supplied chip select is invalid, or 0 if it is valid.
|
||||
If you don't provide the cs_info() method, 0 is assumed for all chip selects
|
||||
that do not appear in the device tree.
|
||||
|
||||
|
|
|
@ -198,7 +198,7 @@ static int ath79_cs_info(struct udevice *bus, uint cs,
|
|||
{
|
||||
/* Always allow activity on CS 0/1/2 */
|
||||
if (cs >= 3)
|
||||
return -ENODEV;
|
||||
return -EINVAL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -108,7 +108,7 @@ static int bcm63xx_hsspi_cs_info(struct udevice *bus, uint cs,
|
|||
|
||||
if (cs >= priv->num_cs) {
|
||||
printf("no cs %u\n", cs);
|
||||
return -ENODEV;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -130,7 +130,7 @@ static int bcm63xx_spi_cs_info(struct udevice *bus, uint cs,
|
|||
|
||||
if (cs >= priv->num_cs) {
|
||||
printf("no cs %u\n", cs);
|
||||
return -ENODEV;
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -117,7 +117,7 @@ static int sandbox_cs_info(struct udevice *bus, uint cs,
|
|||
{
|
||||
/* Always allow activity on CS 0 */
|
||||
if (cs >= 1)
|
||||
return -ENODEV;
|
||||
return -EINVAL;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -78,7 +78,7 @@ int tegra20_sflash_cs_info(struct udevice *bus, unsigned int cs,
|
|||
{
|
||||
/* Tegra20 SPI-Flash - only 1 device ('bus/cs') */
|
||||
if (cs != 0)
|
||||
return -ENODEV;
|
||||
return -EINVAL;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -458,7 +458,7 @@ struct dm_spi_ops {
|
|||
* @cs: The chip select (0..n-1)
|
||||
* @info: Returns information about the chip select, if valid.
|
||||
* On entry info->dev is NULL
|
||||
* @return 0 if OK (and @info is set up), -ENODEV if the chip select
|
||||
* @return 0 if OK (and @info is set up), -EINVAL if the chip select
|
||||
* is invalid, other -ve value on error
|
||||
*/
|
||||
int (*cs_info)(struct udevice *bus, uint cs, struct spi_cs_info *info);
|
||||
|
|
Loading…
Reference in a new issue