[U-Boot] [PATCH v2] i2c: mux: Allow muxes to work as children of i2c bus without i2c-parent
Simon Glass
sjg at chromium.org
Sat Jan 21 04:51:30 CET 2017
On 16 January 2017 at 10:46, Moritz Fischer <moritz.fischer at ettus.com> 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.fischer at ettus.com>
> Cc: Heiko Schocher <hs at denx.de>
> Cc: Bin Meng <bmeng.cn at gmail.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Michal Simek <michal.simek at xilinx.com>
> Cc: u-boot at lists.denx.de
> ---
> Changes from v1:
> - Fixed comment style (Michal)
> ---
> drivers/i2c/muxes/i2c-mux-uclass.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
Reviewed-by: Simon Glass <sjg at chromium.org>
Please see below
>
> diff --git a/drivers/i2c/muxes/i2c-mux-uclass.c b/drivers/i2c/muxes/i2c-mux-uclass.c
> index 7a698b6..db086ef 100644
> --- a/drivers/i2c/muxes/i2c-mux-uclass.c
> +++ b/drivers/i2c/muxes/i2c-mux-uclass.c
> @@ -86,6 +86,16 @@ 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
> + */
/*
* if parent. ...
* ....
*/
> + 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)
> --
> 2.7.4
>
More information about the U-Boot
mailing list