mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-04-12 09:21:33 +00:00
dm: core: Add functions to set priv/plat
This should not normally be needed in drivers, but add accessors for the few cases that exist. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
806473933a
commit
12559f5bab
2 changed files with 114 additions and 0 deletions
|
@ -959,6 +959,36 @@ int device_set_name(struct udevice *dev, const char *name)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void dev_set_priv(struct udevice *dev, void *priv)
|
||||||
|
{
|
||||||
|
dev->priv = priv;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dev_set_parent_priv(struct udevice *dev, void *parent_priv)
|
||||||
|
{
|
||||||
|
dev->parent_priv = parent_priv;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dev_set_uclass_priv(struct udevice *dev, void *uclass_priv)
|
||||||
|
{
|
||||||
|
dev->uclass_priv = uclass_priv;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dev_set_plat(struct udevice *dev, void *plat)
|
||||||
|
{
|
||||||
|
dev->plat = plat;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dev_set_parent_plat(struct udevice *dev, void *parent_plat)
|
||||||
|
{
|
||||||
|
dev->parent_plat = parent_plat;
|
||||||
|
}
|
||||||
|
|
||||||
|
void dev_set_uclass_plat(struct udevice *dev, void *uclass_plat)
|
||||||
|
{
|
||||||
|
dev->uclass_plat = uclass_plat;
|
||||||
|
}
|
||||||
|
|
||||||
#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
|
#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
|
||||||
bool device_is_compatible(const struct udevice *dev, const char *compat)
|
bool device_is_compatible(const struct udevice *dev, const char *compat)
|
||||||
{
|
{
|
||||||
|
|
|
@ -189,6 +189,90 @@ static inline int device_chld_remove(struct udevice *dev, struct driver *drv,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dev_set_priv() - Set the private data for a device
|
||||||
|
*
|
||||||
|
* This is normally handled by driver model, which automatically allocates
|
||||||
|
* private data when an 'auto' size if provided by the driver.
|
||||||
|
*
|
||||||
|
* Use this function to override normal operation for special situations, such
|
||||||
|
* as needing to allocate a variable amount of data.
|
||||||
|
*
|
||||||
|
* @dev Device to check
|
||||||
|
* @priv New private-data pointer
|
||||||
|
*/
|
||||||
|
void dev_set_priv(struct udevice *dev, void *priv);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dev_set_parent_priv() - Set the parent-private data for a device
|
||||||
|
*
|
||||||
|
* This is normally handled by driver model, which automatically allocates
|
||||||
|
* parent-private data when an 'auto' size if provided by the driver.
|
||||||
|
*
|
||||||
|
* Use this function to override normal operation for special situations, such
|
||||||
|
* as needing to allocate a variable amount of data.
|
||||||
|
*
|
||||||
|
* @dev: Device to update
|
||||||
|
* @parent_priv: New parent-private data
|
||||||
|
*/
|
||||||
|
void dev_set_parent_priv(struct udevice *dev, void *parent_priv);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dev_set_uclass_priv() - Set the uclass private data for a device
|
||||||
|
*
|
||||||
|
* This is normally handled by driver model, which automatically allocates
|
||||||
|
* uclass-private data when an 'auto' size if provided by the driver.
|
||||||
|
*
|
||||||
|
* Use this function to override normal operation for special situations, such
|
||||||
|
* as needing to allocate a variable amount of data.
|
||||||
|
*
|
||||||
|
* @dev: Device to update
|
||||||
|
* @uclass_priv: New uclass private data
|
||||||
|
*/
|
||||||
|
void dev_set_uclass_priv(struct udevice *dev, void *uclass_priv);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dev_set_plat() - Set the platform data for a device
|
||||||
|
*
|
||||||
|
* This is normally handled by driver model, which automatically allocates
|
||||||
|
* platform data when an 'auto' size if provided by the driver.
|
||||||
|
*
|
||||||
|
* Use this function to override normal operation for special situations, such
|
||||||
|
* as needing to allocate a variable amount of data.
|
||||||
|
*
|
||||||
|
* @dev Device to check
|
||||||
|
* @plat New platform-data pointer
|
||||||
|
*/
|
||||||
|
void dev_set_plat(struct udevice *dev, void *priv);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dev_set_parent_plat() - Set the parent platform data for a device
|
||||||
|
*
|
||||||
|
* This is normally handled by driver model, which automatically allocates
|
||||||
|
* parent platform data when an 'auto' size if provided by the driver.
|
||||||
|
*
|
||||||
|
* Use this function to override normal operation for special situations, such
|
||||||
|
* as needing to allocate a variable amount of data.
|
||||||
|
*
|
||||||
|
* @dev: Device to update
|
||||||
|
* @parent_plat: New parent platform data
|
||||||
|
*/
|
||||||
|
void dev_set_parent_plat(struct udevice *dev, void *parent_plat);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dev_set_uclass_plat() - Set the uclass platform data for a device
|
||||||
|
*
|
||||||
|
* This is normally handled by driver model, which automatically allocates
|
||||||
|
* uclass platform data when an 'auto' size if provided by the driver.
|
||||||
|
*
|
||||||
|
* Use this function to override normal operation for special situations, such
|
||||||
|
* as needing to allocate a variable amount of data.
|
||||||
|
*
|
||||||
|
* @dev: Device to update
|
||||||
|
* @uclass_plat: New uclass platform data
|
||||||
|
*/
|
||||||
|
void dev_set_uclass_plat(struct udevice *dev, void *uclass_plat);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* simple_bus_translate() - translate a bus address to a system address
|
* simple_bus_translate() - translate a bus address to a system address
|
||||||
*
|
*
|
||||||
|
|
Loading…
Add table
Reference in a new issue