dm: core: Add documentation about device removal

Make mention of this feature in the core documentation so people can
discover it without looking at a header file.

Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Simon Glass
2021-01-24 14:32:48 -07:00
parent 6224dc9ba4
commit 7a3c628c43

View File

@@ -880,6 +880,26 @@ If a parent has children these will be destroyed first. After this point
the device does not exist and its memory has be deallocated. the device does not exist and its memory has be deallocated.
Special cases for removal
-------------------------
Some devices need to do clean-up before the OS is called. For example, a USB
driver may want to stop the bus. This can be done in the remove() method.
Some special flags are used to determine whether to remove the device:
DM_FLAG_OS_PREPARE - indicates that the device needs to get ready for OS
boot. The device will be removed just before the OS is booted
DM_REMOVE_ACTIVE_DMA - indicates that the device uses DMA. This is
effectively the same as DM_FLAG_OS_PREPARE, so the device is removed
before the OS is booted
DM_FLAG_VITAL - indicates that the device is 'vital' to the operation of
other devices. It is possible to remove this device after all regular
devices are removed. This is useful e.g. for a clock, which need to
be active during the device-removal phase.
The dm_remove_devices_flags() function can be used to remove devices based on
their driver flags.
Data Structures Data Structures
--------------- ---------------