mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-30 06:53:09 +00:00
104 lines
2.8 KiB
ReStructuredText
104 lines
2.8 KiB
ReStructuredText
|
.. SPDX-License-Identifier: GPL-2.0+:
|
||
|
|
||
|
bind command
|
||
|
============
|
||
|
|
||
|
Synopsis
|
||
|
--------
|
||
|
|
||
|
::
|
||
|
|
||
|
bind <node path> <driver>
|
||
|
bind <class> <index> <driver>
|
||
|
|
||
|
Description
|
||
|
-----------
|
||
|
|
||
|
The bind command is used to bind a device to a driver. This makes the
|
||
|
device available in U-Boot.
|
||
|
|
||
|
While binding to a *node path* typically provides a working device
|
||
|
binding by parent node and driver may lead to a device that is only
|
||
|
partially initialized.
|
||
|
|
||
|
node path
|
||
|
path of the device's device-tree node
|
||
|
|
||
|
class
|
||
|
device class name
|
||
|
|
||
|
index
|
||
|
index of the parent device in the device class
|
||
|
|
||
|
driver
|
||
|
device driver name
|
||
|
|
||
|
Example
|
||
|
-------
|
||
|
|
||
|
Given a system with a real time clock device with device path */pl031@9010000*
|
||
|
and using driver rtc-pl031 unbinding and binding of the device is demonstrated
|
||
|
using the two alternative bind syntaxes.
|
||
|
|
||
|
.. code-block::
|
||
|
|
||
|
=> dm tree
|
||
|
Class Index Probed Driver Name
|
||
|
-----------------------------------------------------------
|
||
|
root 0 [ + ] root_driver root_driver
|
||
|
...
|
||
|
rtc 0 [ ] rtc-pl031 |-- pl031@9010000
|
||
|
...
|
||
|
=> fdt addr $fdtcontroladdr
|
||
|
Working FDT set to 7ed7fdb0
|
||
|
=> fdt print
|
||
|
/ {
|
||
|
interrupt-parent = <0x00008003>;
|
||
|
model = "linux,dummy-virt";
|
||
|
#size-cells = <0x00000002>;
|
||
|
#address-cells = <0x00000002>;
|
||
|
compatible = "linux,dummy-virt";
|
||
|
...
|
||
|
pl031@9010000 {
|
||
|
clock-names = "apb_pclk";
|
||
|
clocks = <0x00008000>;
|
||
|
interrupts = <0x00000000 0x00000002 0x00000004>;
|
||
|
reg = <0x00000000 0x09010000 0x00000000 0x00001000>;
|
||
|
compatible = "arm,pl031", "arm,primecell";
|
||
|
};
|
||
|
...
|
||
|
}
|
||
|
=> unbind /pl031@9010000
|
||
|
=> date
|
||
|
Cannot find RTC: err=-19
|
||
|
=> dm tree
|
||
|
Class Index Probed Driver Name
|
||
|
-----------------------------------------------------------
|
||
|
root 0 [ + ] root_driver root_driver
|
||
|
...
|
||
|
=> bind /pl031@9010000 rtc-pl031
|
||
|
=> dm tree
|
||
|
Class Index Probed Driver Name
|
||
|
-----------------------------------------------------------
|
||
|
root 0 [ + ] root_driver root_driver
|
||
|
...
|
||
|
rtc 0 [ ] rtc-pl031 |-- pl031@9010000
|
||
|
=> date
|
||
|
Date: 2023-06-22 (Thursday) Time: 15:14:51
|
||
|
=> unbind rtc 0 rtc-pl031
|
||
|
=> bind root 0 rtc-pl031
|
||
|
=> date
|
||
|
Date: 1980-08-19 (Tuesday) Time: 14:45:30
|
||
|
|
||
|
Obviously the device is not initialized correctly by the last bind command.
|
||
|
|
||
|
Configuration
|
||
|
-------------
|
||
|
|
||
|
The bind command is only available if CONFIG_CMD_BIND=y.
|
||
|
|
||
|
Return code
|
||
|
-----------
|
||
|
|
||
|
The return code $? is 0 (true) on success and 1 (false) on failure.
|