[U-Boot] [PATCH v2 14/26] dm: core: Allow the uclass to set up a device's child after binding
Masahiro Yamada
yamada.m at jp.panasonic.com
Thu Jan 22 12:45:55 CET 2015
Hi Simon,
On Mon, 19 Jan 2015 20:12:43 -0700
Simon Glass <sjg at chromium.org> wrote:
> For buses, after a child is bound, allow the uclass to perform some
> processing. This can be used to figure out the address of the child (e.g.
> the chip select for SPI slaves) so that it is ready to be probed.
>
> This avoids bus drivers having to repeat the same process, which really
> should be done by the uclass, since it is common.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
> Changes in v2: None
>
> drivers/core/uclass.c | 21 ++++++++++++++++-----
> include/dm/uclass.h | 2 ++
> test/dm/bus.c | 26 ++++++++++++++++++++++++++
> 3 files changed, 44 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/core/uclass.c b/drivers/core/uclass.c
> index 901b06e..29811be 100644
> --- a/drivers/core/uclass.c
> +++ b/drivers/core/uclass.c
> @@ -319,18 +319,29 @@ int uclass_bind_device(struct udevice *dev)
> int ret;
>
> uc = dev->uclass;
> -
> list_add_tail(&dev->uclass_node, &uc->dev_head);
>
> + if (dev->parent) {
> + struct uclass_driver *parent_drv = dev->parent->uclass->uc_drv;
> +
> + if (parent_drv->child_post_bind) {
> + ret = parent_drv->child_post_bind(dev);
> + if (ret)
> + goto err;
> + }
> + }
Perhaps, "parent_uc_drv" or "uc_drv" is better than "parent_drv"?
The code looks good, so,
Reviewed-by: Masahiro Yamada <yamada.m at jp.panasonic.com>
More information about the U-Boot
mailing list