On Thursday 18 January 2018 01:45 PM, Simon Goldschmidt wrote: > When the device tree is missing a correct spi slave description below > the bus, the 'set_speed' callback can be called with 'speed' == 0 Hz. > At least with cadence qspi, this leads to a division by zero. > > Prevent this by initializing speed to 100 kHz in this case, as is > done in 'dm_spi_claim_bus'. >
As per doc/device-tree-bindings/spi/spi-bus.txt, spi-max-frequency - (required) Maximum SPI clocking speed of device in Hz IMO, the correct fix would be to error out with proper warning, if spi-max-frequency property is absent in DT. > Signed-off-by: Simon Goldschmidt <sgoldschm...@de.pepperl-fuchs.com> > --- > > drivers/spi/spi-uclass.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/spi/spi-uclass.c b/drivers/spi/spi-uclass.c > index e06a603ab1..41ecef77db 100644 > --- a/drivers/spi/spi-uclass.c > +++ b/drivers/spi/spi-uclass.c > @@ -325,6 +325,8 @@ int spi_get_bus_and_cs(int busnum, int cs, int speed, int > mode, > if (!speed) { > speed = plat->max_hz; > mode = plat->mode; > + if (!speed) > + speed = 100000; > } > ret = spi_set_speed_mode(bus, speed, mode); > if (ret) > -- Regards Vignesh _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot