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