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