On 29.12.2016 23:50, Moritz Fischer wrote:
> For mux check if the parent is already a device of UCLASS_I2C and if yes
> just use that. Otherwise see if someone specified an i2c-parent phandle.
> This mimics the behavior found in the Kernel, as it removes the
> requirement to explicitly specify a i2c-parent phandle.
> 
> Signed-off-by: Moritz Fischer <moritz.fisc...@ettus.com>
> Cc: Heiko Schocher <h...@denx.de>
> Cc: Bin Meng <bmeng...@gmail.com>
> Cc: Simon Glass <s...@chromium.org>
> Cc: Michal Simek <michal.si...@xilinx.com>
> Cc: u-boot@lists.denx.de
> ---
>  drivers/i2c/muxes/i2c-mux-uclass.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/drivers/i2c/muxes/i2c-mux-uclass.c 
> b/drivers/i2c/muxes/i2c-mux-uclass.c
> index 7a698b6..e01b773 100644
> --- a/drivers/i2c/muxes/i2c-mux-uclass.c
> +++ b/drivers/i2c/muxes/i2c-mux-uclass.c
> @@ -86,6 +86,15 @@ static int i2c_mux_post_probe(struct udevice *mux)
>       debug("%s: %s\n", __func__, mux->name);
>       priv->selected = -1;
>  
> +     /* if parent is of i2c uclass already, we'll take that, otherwise
> +      * look if we find an i2c-parent phandle */

Incorrect comment style.

> +     if (UCLASS_I2C == device_get_uclass_id(mux->parent)) {
> +             priv->i2c_bus = dev_get_parent(mux);
> +             debug("%s: bus=%p/%s\n", __func__, priv->i2c_bus,
> +                   priv->i2c_bus->name);
> +             return 0;
> +     }
> +
>       ret = uclass_get_device_by_phandle(UCLASS_I2C, mux, "i2c-parent",
>                                          &priv->i2c_bus);
>       if (ret)
> 

The part of this will be good to also handle
req_seq for mux busses. But at least this should solved part of the
problems.

Thanks,
Michal
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to