diff options
author | Tom Rini <trini@konsulko.com> | 2017-10-11 15:38:20 +0300 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2017-10-11 15:38:20 +0300 |
commit | 1b22c5ba496ffc9b0702919d58c410ed1527ab63 (patch) | |
tree | 5d7342287817dd4e549dd67c5990985e458fbafa /drivers | |
parent | 2ee87b0c1a5439e4ad6467cb8d5e8fb58922ca4b (diff) | |
parent | 5bc90a8953a902152bd640322ffc8111dccbe3ab (diff) | |
download | u-boot-1b22c5ba496ffc9b0702919d58c410ed1527ab63.tar.xz |
Merge git://git.denx.de/u-boot-i2c
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/i2c/muxes/pca954x.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/i2c/muxes/pca954x.c b/drivers/i2c/muxes/pca954x.c index 01ca1ff48d..2b70ff82bd 100644 --- a/drivers/i2c/muxes/pca954x.c +++ b/drivers/i2c/muxes/pca954x.c @@ -27,6 +27,7 @@ struct chip_desc { pca954x_ismux = 0, pca954x_isswi, } muxtype; + u32 width; }; struct pca954x_priv { @@ -39,14 +40,17 @@ static const struct chip_desc chips[] = { [PCA9544] = { .enable = 0x4, .muxtype = pca954x_ismux, + .width = 4, }, [PCA9547] = { .enable = 0x8, .muxtype = pca954x_ismux, + .width = 8, }, [PCA9548] = { .enable = 0x8, .muxtype = pca954x_isswi, + .width = 8, }, }; @@ -89,13 +93,14 @@ static const struct udevice_id pca954x_ids[] = { static int pca954x_ofdata_to_platdata(struct udevice *dev) { struct pca954x_priv *priv = dev_get_priv(dev); + const struct chip_desc *chip = &chips[dev_get_driver_data(dev)]; priv->addr = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev), "reg", 0); if (!priv->addr) { debug("MUX not found\n"); return -ENODEV; } - priv->width = dev_get_driver_data(dev); + priv->width = chip->width; if (!priv->width) { debug("No I2C MUX width specified\n"); |