1*4882a593SmuzhiyunLantiq XWAY SoC RCU binding 2*4882a593Smuzhiyun=========================== 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunThis binding describes the RCU (reset controller unit) multifunction device, 5*4882a593Smuzhiyunwhere each sub-device has it's own set of registers. 6*4882a593Smuzhiyun 7*4882a593SmuzhiyunThe RCU register range is used for multiple purposes. Mostly one device 8*4882a593Smuzhiyunuses one or multiple register exclusively, but for some registers some 9*4882a593Smuzhiyunbits are for one driver and some other bits are for a different driver. 10*4882a593SmuzhiyunWith this patch all accesses to the RCU registers will go through 11*4882a593Smuzhiyunsyscon. 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun------------------------------------------------------------------------------- 15*4882a593SmuzhiyunRequired properties: 16*4882a593Smuzhiyun- compatible : The first and second values must be: 17*4882a593Smuzhiyun "lantiq,xrx200-rcu", "simple-mfd", "syscon" 18*4882a593Smuzhiyun- reg : The address and length of the system control registers 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun------------------------------------------------------------------------------- 22*4882a593SmuzhiyunExample of the RCU bindings on a xRX200 SoC: 23*4882a593Smuzhiyun rcu0: rcu@203000 { 24*4882a593Smuzhiyun compatible = "lantiq,xrx200-rcu", "simple-mfd", "syscon"; 25*4882a593Smuzhiyun reg = <0x203000 0x100>; 26*4882a593Smuzhiyun ranges = <0x0 0x203000 0x100>; 27*4882a593Smuzhiyun big-endian; 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun reset0: reset-controller@10 { 30*4882a593Smuzhiyun compatible = "lantiq,xrx200-reset"; 31*4882a593Smuzhiyun reg = <0x10 4>, <0x14 4>; 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun #reset-cells = <2>; 34*4882a593Smuzhiyun }; 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun reset1: reset-controller@48 { 37*4882a593Smuzhiyun compatible = "lantiq,xrx200-reset"; 38*4882a593Smuzhiyun reg = <0x48 4>, <0x24 4>; 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun #reset-cells = <2>; 41*4882a593Smuzhiyun }; 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun usb_phy0: usb2-phy@18 { 44*4882a593Smuzhiyun compatible = "lantiq,xrx200-usb2-phy"; 45*4882a593Smuzhiyun reg = <0x18 4>, <0x38 4>; 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun resets = <&reset1 4 4>, <&reset0 4 4>; 48*4882a593Smuzhiyun reset-names = "phy", "ctrl"; 49*4882a593Smuzhiyun #phy-cells = <0>; 50*4882a593Smuzhiyun }; 51*4882a593Smuzhiyun 52*4882a593Smuzhiyun usb_phy1: usb2-phy@34 { 53*4882a593Smuzhiyun compatible = "lantiq,xrx200-usb2-phy"; 54*4882a593Smuzhiyun reg = <0x34 4>, <0x3C 4>; 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun resets = <&reset1 5 4>, <&reset0 4 4>; 57*4882a593Smuzhiyun reset-names = "phy", "ctrl"; 58*4882a593Smuzhiyun #phy-cells = <0>; 59*4882a593Smuzhiyun }; 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun reboot@10 { 62*4882a593Smuzhiyun compatible = "syscon-reboot"; 63*4882a593Smuzhiyun reg = <0x10 4>; 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun regmap = <&rcu0>; 66*4882a593Smuzhiyun offset = <0x10>; 67*4882a593Smuzhiyun mask = <0x40000000>; 68*4882a593Smuzhiyun }; 69*4882a593Smuzhiyun }; 70