misc: uclass: Add enable/disable function
Add generic enable/disable function to the misc uclass. Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Mario Six <mario.six@gdsys.cc>
This commit is contained in:
parent
3958bffeb3
commit
440bc11f2e
@ -55,6 +55,16 @@ int misc_call(struct udevice *dev, int msgid, void *tx_msg, int tx_size,
|
||||
return ops->call(dev, msgid, tx_msg, tx_size, rx_msg, rx_size);
|
||||
}
|
||||
|
||||
int misc_set_enabled(struct udevice *dev, bool val)
|
||||
{
|
||||
const struct misc_ops *ops = device_get_ops(dev);
|
||||
|
||||
if (!ops->set_enabled)
|
||||
return -ENOSYS;
|
||||
|
||||
return ops->set_enabled(dev, val);
|
||||
}
|
||||
|
||||
UCLASS_DRIVER(misc) = {
|
||||
.id = UCLASS_MISC,
|
||||
.name = "misc",
|
||||
|
@ -60,6 +60,23 @@ int misc_call(struct udevice *dev, int msgid, void *tx_msg, int tx_size,
|
||||
void *rx_msg, int rx_size);
|
||||
|
||||
/**
|
||||
* misc_set_enabled() - Enable or disable a device.
|
||||
* @dev: the device to enable or disable.
|
||||
* @val: the flag that tells the driver to either enable or disable the device.
|
||||
*
|
||||
* The semantics of "disable" and "enable" should be understood here as
|
||||
* activating or deactivating the device's primary function, hence a "disabled"
|
||||
* device should be dormant, but still answer to commands and queries.
|
||||
*
|
||||
* A probed device may start in a disabled or enabled state, depending on the
|
||||
* driver and hardware.
|
||||
*
|
||||
* Return: -ve on error, 0 if the previous state was "disabled", 1 if the
|
||||
* previous state was "enabled"
|
||||
*/
|
||||
int misc_set_enabled(struct udevice *dev, bool val);
|
||||
|
||||
/*
|
||||
* struct misc_ops - Driver model Misc operations
|
||||
*
|
||||
* The uclass interface is implemented by all miscellaneous devices which
|
||||
@ -112,6 +129,16 @@ struct misc_ops {
|
||||
*/
|
||||
int (*call)(struct udevice *dev, int msgid, void *tx_msg, int tx_size,
|
||||
void *rx_msg, int rx_size);
|
||||
/**
|
||||
* Enable or disable a device, optional.
|
||||
* @dev: the device to enable.
|
||||
* @val: the flag that tells the driver to either enable or disable the
|
||||
* device.
|
||||
*
|
||||
* Return: -ve on error, 0 if the previous state was "disabled", 1 if
|
||||
* the previous state was "enabled"
|
||||
*/
|
||||
int (*set_enabled)(struct udevice *dev, bool val);
|
||||
};
|
||||
|
||||
#endif /* _MISC_H_ */
|
||||
|
Loading…
Reference in New Issue
Block a user