dm: core: Allow parents to pass data to children during probe
Buses sometimes want to pass data to their children when they are probed. For example, a SPI bus may want to tell the slave device about the chip select it is connected to. Add a new function to permit the parent data to be supplied to the child. Signed-off-by: Simon Glass <sjg@chromium.org> Acked-by: Jagannadha Sutradharudu Teki <jagannadh.teki@gmail.com>
This commit is contained in:
@@ -232,7 +232,7 @@ static void device_free(struct udevice *dev)
|
||||
}
|
||||
}
|
||||
|
||||
int device_probe(struct udevice *dev)
|
||||
int device_probe_child(struct udevice *dev, void *parent_priv)
|
||||
{
|
||||
struct driver *drv;
|
||||
int size = 0;
|
||||
@@ -282,6 +282,8 @@ int device_probe(struct udevice *dev)
|
||||
ret = -ENOMEM;
|
||||
goto fail;
|
||||
}
|
||||
if (parent_priv)
|
||||
memcpy(dev->parent_priv, parent_priv, size);
|
||||
}
|
||||
|
||||
ret = device_probe(dev->parent);
|
||||
@@ -335,6 +337,11 @@ fail:
|
||||
return ret;
|
||||
}
|
||||
|
||||
int device_probe(struct udevice *dev)
|
||||
{
|
||||
return device_probe_child(dev, NULL);
|
||||
}
|
||||
|
||||
int device_remove(struct udevice *dev)
|
||||
{
|
||||
struct driver *drv;
|
||||
|
||||
Reference in New Issue
Block a user