i2c: Update for new sequence numbers
Use the new sequence number in all cases. Drop the logic to check for a valid number in designware_i2c, since it will always be valid. Also drop the numbering in the uclass, since we can rely on driver model giving us the right sequence numbers. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
@@ -686,27 +686,11 @@ static int i2c_child_post_bind(struct udevice *dev)
|
||||
#endif
|
||||
}
|
||||
|
||||
struct i2c_priv {
|
||||
int max_id;
|
||||
};
|
||||
|
||||
static int i2c_post_bind(struct udevice *dev)
|
||||
{
|
||||
struct uclass *class = dev->uclass;
|
||||
struct i2c_priv *priv = class->priv;
|
||||
int ret = 0;
|
||||
|
||||
/* Just for sure */
|
||||
if (!priv)
|
||||
return -ENOMEM;
|
||||
|
||||
debug("%s: %s, req_seq=%d\n", __func__, dev->name, dev->req_seq);
|
||||
|
||||
/* if there is no alias ID, use the first free */
|
||||
if (dev->req_seq == -1)
|
||||
dev->req_seq = ++priv->max_id;
|
||||
|
||||
debug("%s: %s, new req_seq=%d\n", __func__, dev->name, dev->req_seq);
|
||||
debug("%s: %s, seq=%d\n", __func__, dev->name, dev_seq(dev));
|
||||
|
||||
#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||
ret = dm_scan_fdt_dev(dev);
|
||||
@@ -714,32 +698,11 @@ static int i2c_post_bind(struct udevice *dev)
|
||||
return ret;
|
||||
}
|
||||
|
||||
int i2c_uclass_init(struct uclass *class)
|
||||
{
|
||||
struct i2c_priv *priv = class->priv;
|
||||
|
||||
/* Just for sure */
|
||||
if (!priv)
|
||||
return -ENOMEM;
|
||||
|
||||
/* Get the last allocated alias. */
|
||||
if (CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA))
|
||||
priv->max_id = dev_read_alias_highest_id("i2c");
|
||||
else
|
||||
priv->max_id = -1;
|
||||
|
||||
debug("%s: highest alias id is %d\n", __func__, priv->max_id);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
UCLASS_DRIVER(i2c) = {
|
||||
.id = UCLASS_I2C,
|
||||
.name = "i2c",
|
||||
.flags = DM_UC_FLAG_SEQ_ALIAS,
|
||||
.post_bind = i2c_post_bind,
|
||||
.init = i2c_uclass_init,
|
||||
.priv_auto = sizeof(struct i2c_priv),
|
||||
.pre_probe = i2c_pre_probe,
|
||||
.post_probe = i2c_post_probe,
|
||||
.per_device_auto = sizeof(struct dm_i2c_bus),
|
||||
|
||||
Reference in New Issue
Block a user