mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.8 KiB
51 lines
1.8 KiB
Multi-Function Devices (MFD) |
|
|
|
These devices comprise a nexus for heterogeneous hardware blocks containing |
|
more than one non-unique yet varying hardware functionality. |
|
|
|
A typical MFD can be: |
|
|
|
- A mixed signal ASIC on an external bus, sometimes a PMIC (Power Management |
|
Integrated Circuit) that is manufactured in a lower technology node (rough |
|
silicon) that handles analog drivers for things like audio amplifiers, LED |
|
drivers, level shifters, PHY (physical interfaces to things like USB or |
|
ethernet), regulators etc. |
|
|
|
- A range of memory registers containing "miscellaneous system registers" also |
|
known as a system controller "syscon" or any other memory range containing a |
|
mix of unrelated hardware devices. |
|
|
|
Optional properties: |
|
|
|
- compatible : "simple-mfd" - this signifies that the operating system should |
|
consider all subnodes of the MFD device as separate devices akin to how |
|
"simple-bus" indicates when to see subnodes as children for a simple |
|
memory-mapped bus. For more complex devices, when the nexus driver has to |
|
probe registers to figure out what child devices exist etc, this should not |
|
be used. In the latter case the child devices will be determined by the |
|
operating system. |
|
|
|
- ranges: Describes the address mapping relationship to the parent. Should set |
|
the child's base address to 0, the physical address within parent's address |
|
space, and the length of the address map. |
|
|
|
- #address-cells: Specifies the number of cells used to represent physical base |
|
addresses. Must be present if ranges is used. |
|
|
|
- #size-cells: Specifies the number of cells used to represent the size of an |
|
address. Must be present if ranges is used. |
|
|
|
Example: |
|
|
|
foo@1000 { |
|
compatible = "syscon", "simple-mfd"; |
|
reg = <0x01000 0x1000>; |
|
|
|
[email protected] { |
|
compatible = "register-bit-led"; |
|
offset = <0x08>; |
|
mask = <0x01>; |
|
label = "myled"; |
|
default-state = "on"; |
|
}; |
|
};
|
|
|