1*4e11f848SStephen Warren= Reset Signal Device Tree Bindings = 2*4e11f848SStephen Warren 3*4e11f848SStephen WarrenThis binding is intended to represent the hardware reset signals present 4*4e11f848SStephen Warreninternally in most IC (SoC, FPGA, ...) designs. Reset signals for whole 5*4e11f848SStephen Warrenstandalone chips are most likely better represented as GPIOs, although there 6*4e11f848SStephen Warrenare likely to be exceptions to this rule. 7*4e11f848SStephen Warren 8*4e11f848SStephen WarrenHardware blocks typically receive a reset signal. This signal is generated by 9*4e11f848SStephen Warrena reset provider (e.g. power management or clock module) and received by a 10*4e11f848SStephen Warrenreset consumer (the module being reset, or a module managing when a sub- 11*4e11f848SStephen Warrenordinate module is reset). This binding exists to represent the provider and 12*4e11f848SStephen Warrenconsumer, and provide a way to couple the two together. 13*4e11f848SStephen Warren 14*4e11f848SStephen WarrenA reset signal is represented by the phandle of the provider, plus a reset 15*4e11f848SStephen Warrenspecifier - a list of DT cells that represents the reset signal within the 16*4e11f848SStephen Warrenprovider. The length (number of cells) and semantics of the reset specifier 17*4e11f848SStephen Warrenare dictated by the binding of the reset provider, although common schemes 18*4e11f848SStephen Warrenare described below. 19*4e11f848SStephen Warren 20*4e11f848SStephen WarrenA word on where to place reset signal consumers in device tree: It is possible 21*4e11f848SStephen Warrenin hardware for a reset signal to affect multiple logically separate HW blocks 22*4e11f848SStephen Warrenat once. In this case, it would be unwise to represent this reset signal in 23*4e11f848SStephen Warrenthe DT node of each affected HW block, since if activated, an unrelated block 24*4e11f848SStephen Warrenmay be reset. Instead, reset signals should be represented in the DT node 25*4e11f848SStephen Warrenwhere it makes most sense to control it; this may be a bus node if all 26*4e11f848SStephen Warrenchildren of the bus are affected by the reset signal, or an individual HW 27*4e11f848SStephen Warrenblock node for dedicated reset signals. The intent of this binding is to give 28*4e11f848SStephen Warrenappropriate software access to the reset signals in order to manage the HW, 29*4e11f848SStephen Warrenrather than to slavishly enumerate the reset signal that affects each HW 30*4e11f848SStephen Warrenblock. 31*4e11f848SStephen Warren 32*4e11f848SStephen Warren= Reset providers = 33*4e11f848SStephen Warren 34*4e11f848SStephen WarrenRequired properties: 35*4e11f848SStephen Warren#reset-cells: Number of cells in a reset specifier; Typically 0 for nodes 36*4e11f848SStephen Warren with a single reset output and 1 for nodes with multiple 37*4e11f848SStephen Warren reset outputs. 38*4e11f848SStephen Warren 39*4e11f848SStephen WarrenFor example: 40*4e11f848SStephen Warren 41*4e11f848SStephen Warren rst: reset-controller { 42*4e11f848SStephen Warren #reset-cells = <1>; 43*4e11f848SStephen Warren }; 44*4e11f848SStephen Warren 45*4e11f848SStephen Warren= Reset consumers = 46*4e11f848SStephen Warren 47*4e11f848SStephen WarrenRequired properties: 48*4e11f848SStephen Warrenresets: List of phandle and reset specifier pairs, one pair 49*4e11f848SStephen Warren for each reset signal that affects the device, or that the 50*4e11f848SStephen Warren device manages. Note: if the reset provider specifies '0' for 51*4e11f848SStephen Warren #reset-cells, then only the phandle portion of the pair will 52*4e11f848SStephen Warren appear. 53*4e11f848SStephen Warren 54*4e11f848SStephen WarrenOptional properties: 55*4e11f848SStephen Warrenreset-names: List of reset signal name strings sorted in the same order as 56*4e11f848SStephen Warren the resets property. Consumers drivers will use reset-names to 57*4e11f848SStephen Warren match reset signal names with reset specifiers. 58*4e11f848SStephen Warren 59*4e11f848SStephen WarrenFor example: 60*4e11f848SStephen Warren 61*4e11f848SStephen Warren device { 62*4e11f848SStephen Warren resets = <&rst 20>; 63*4e11f848SStephen Warren reset-names = "reset"; 64*4e11f848SStephen Warren }; 65*4e11f848SStephen Warren 66*4e11f848SStephen WarrenThis represents a device with a single reset signal named "reset". 67*4e11f848SStephen Warren 68*4e11f848SStephen Warren bus { 69*4e11f848SStephen Warren resets = <&rst 10> <&rst 11> <&rst 12> <&rst 11>; 70*4e11f848SStephen Warren reset-names = "i2s1", "i2s2", "dma", "mixer"; 71*4e11f848SStephen Warren }; 72*4e11f848SStephen Warren 73*4e11f848SStephen WarrenThis represents a bus that controls the reset signal of each of four sub- 74*4e11f848SStephen Warrenordinate devices. Consider for example a bus that fails to operate unless no 75*4e11f848SStephen Warrenchild device has reset asserted. 76