show I/O Kit registry

ioreg [-abfilrtx] [-c class] [-d depth] [-k key] [-n name] [-p plane] [-w width] Shows the heirarchical registry structure as an inverted tree. The provider-client relation-ships among those objects is shown as follows:
     +-o provider
       |
       +-o client
By default, object properties are not shown. The use of the -c, -k, -l, or -n options cause ioreg to show properties for objects that match the specified criteria.

-r to specify the object which will appear at the root of the tree with the -c, -k, or -n options. If root matches more than one object, multiple trees will be displayed.

-a Archive the output in XML.
-b object name in bold.
-c Show the object properties only if the object is an instance of, or derives from, the specified C++ class (e.g. IOService).
-d D of tree traversal is limited
The depth limit is applied with respect to each subtree root individually.
Depth of 1 will cause ioreg to display only (sub)tree root nodes; children will not be shown.
-f format smart . ioreg knows how to format certain properties so that the output is more readable and meaningful, decoding data fields where appropriate.
Currently supported are `reg', `assigned-addresses', `slot-names', `ranges', `interrupt-map', `interrupt-parent`, and `interrupts'.
-i inheritance.
-k key. how properties for this key ubstrings do not match; the specified key must be a full property name.
-l Show properties for all displayed objects.
-n Show the object properties only if the object has the specified name. The object location, if any, is considered part of the name, thus pci@f0000000 and pci@f4000000 are distinct names.
-p Traverse the registry over the specified plane. default IOService
The other planes, such as IODeviceTree,
can be found under the IORegistryPlanes property of the root object (ioreg -d 1 -k IORegistryPlanes).
"IORegistryPlanes" = {"IOACPIPlane"="IOACPIPlane",
        "IOPower"="IOPower",
        "IODeviceTree"="IODeviceTree",
        "IOService"="IOService",
        "IOFireWire"="IOFireWire",
        "IOUSB"="IOUSB"}
-r Show subtrees rooted by objects that match the specified criteria. If none of -c, -k, or -n are supplied, -r has no effect.
-t Show tree location of each subtree. This option causes ioreg to display all nodes between the I/O Kit Root and the root of the displayed subtree, i.e. the subtree's parent, grandparent, etc.
-w Clip the output to the specified line width.
default width current screen size. 0 unlimited when STDOUT is directed to a file unlimited
-x Show data and numbers as hexadecimal.
o
usage: ioreg [-abfilrtx] [-c class] [-d depth] [-k key] [-n name] [-p plane] [-w width]
where options are:
    -a archive output
    -b show object name in bold
    -c list properties of objects with the given class
    -d limit tree to the given depth
    -f enable smart formatting
    -i show object inheritance
    -k list properties of objects with the given key
    -l list properties of all objects
    -n list properties of objects with the given name
    -p traverse registry over the given plane (IOService is default)
    -r show subtrees rooted by the given criteria
    -t show location of each substree
    -w clip output to the given line width (0 is unlimited)
    -x show data and numbers as hexadecimal
-d4

example of all

example of xmp