mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-11 07:34:31 +00:00
Merge git://git.denx.de/u-boot-i2c
This commit is contained in:
commit
1b22c5ba49
1 changed files with 6 additions and 1 deletions
|
@ -27,6 +27,7 @@ struct chip_desc {
|
||||||
pca954x_ismux = 0,
|
pca954x_ismux = 0,
|
||||||
pca954x_isswi,
|
pca954x_isswi,
|
||||||
} muxtype;
|
} muxtype;
|
||||||
|
u32 width;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct pca954x_priv {
|
struct pca954x_priv {
|
||||||
|
@ -39,14 +40,17 @@ static const struct chip_desc chips[] = {
|
||||||
[PCA9544] = {
|
[PCA9544] = {
|
||||||
.enable = 0x4,
|
.enable = 0x4,
|
||||||
.muxtype = pca954x_ismux,
|
.muxtype = pca954x_ismux,
|
||||||
|
.width = 4,
|
||||||
},
|
},
|
||||||
[PCA9547] = {
|
[PCA9547] = {
|
||||||
.enable = 0x8,
|
.enable = 0x8,
|
||||||
.muxtype = pca954x_ismux,
|
.muxtype = pca954x_ismux,
|
||||||
|
.width = 8,
|
||||||
},
|
},
|
||||||
[PCA9548] = {
|
[PCA9548] = {
|
||||||
.enable = 0x8,
|
.enable = 0x8,
|
||||||
.muxtype = pca954x_isswi,
|
.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)
|
static int pca954x_ofdata_to_platdata(struct udevice *dev)
|
||||||
{
|
{
|
||||||
struct pca954x_priv *priv = dev_get_priv(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);
|
priv->addr = fdtdec_get_int(gd->fdt_blob, dev_of_offset(dev), "reg", 0);
|
||||||
if (!priv->addr) {
|
if (!priv->addr) {
|
||||||
debug("MUX not found\n");
|
debug("MUX not found\n");
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
}
|
}
|
||||||
priv->width = dev_get_driver_data(dev);
|
priv->width = chip->width;
|
||||||
|
|
||||||
if (!priv->width) {
|
if (!priv->width) {
|
||||||
debug("No I2C MUX width specified\n");
|
debug("No I2C MUX width specified\n");
|
||||||
|
|
Loading…
Reference in a new issue