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