^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) Generic hwlock bindings
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) =======================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) Generic bindings that are common to all the hwlock platform specific driver
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) implementations.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) Please also look through the individual platform specific hwlock binding
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) documentations for identifying any additional properties specific to that
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) platform.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) hwlock providers:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) =================
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) - #hwlock-cells: Specifies the number of cells needed to represent a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) specific lock.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) hwlock users:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) =============
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) Consumers that require specific hwlock(s) should specify them using the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) property "hwlocks", and an optional "hwlock-names" property.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) Required properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) - hwlocks: List of phandle to a hwlock provider node and an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) associated hwlock args specifier as indicated by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) #hwlock-cells. The list can have just a single hwlock
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) or multiple hwlocks, with each hwlock represented by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) a phandle and a corresponding args specifier.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) Optional properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) - hwlock-names: List of hwlock name strings defined in the same order
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) as the hwlocks, with one name per hwlock. Consumers can
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) use the hwlock-names to match and get a specific hwlock.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) 1. Example of a node using a single specific hwlock:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) The following example has a node requesting a hwlock in the bank defined by
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) the node hwlock1. hwlock1 is a hwlock provider with an argument specifier
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) of length 1.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) node {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) hwlocks = <&hwlock1 2>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) 2. Example of a node using multiple specific hwlocks:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) The following example has a node requesting two hwlocks, a hwlock within
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) the hwlock device node 'hwlock1' with #hwlock-cells value of 1, and another
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) hwlock within the hwlock device node 'hwlock2' with #hwlock-cells value of 2.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) node {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) hwlocks = <&hwlock1 2>, <&hwlock2 0 3>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) ...
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) };