162306a36Sopenharmony_ciLantiq XWAY SoC RCU binding 262306a36Sopenharmony_ci=========================== 362306a36Sopenharmony_ci 462306a36Sopenharmony_ciThis binding describes the RCU (reset controller unit) multifunction device, 562306a36Sopenharmony_ciwhere each sub-device has its own set of registers. 662306a36Sopenharmony_ci 762306a36Sopenharmony_ciThe RCU register range is used for multiple purposes. Mostly one device 862306a36Sopenharmony_ciuses one or multiple register exclusively, but for some registers some 962306a36Sopenharmony_cibits are for one driver and some other bits are for a different driver. 1062306a36Sopenharmony_ciWith this patch all accesses to the RCU registers will go through 1162306a36Sopenharmony_cisyscon. 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci------------------------------------------------------------------------------- 1562306a36Sopenharmony_ciRequired properties: 1662306a36Sopenharmony_ci- compatible : The first and second values must be: 1762306a36Sopenharmony_ci "lantiq,xrx200-rcu", "simple-mfd", "syscon" 1862306a36Sopenharmony_ci- reg : The address and length of the system control registers 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci------------------------------------------------------------------------------- 2262306a36Sopenharmony_ciExample of the RCU bindings on a xRX200 SoC: 2362306a36Sopenharmony_ci rcu0: rcu@203000 { 2462306a36Sopenharmony_ci compatible = "lantiq,xrx200-rcu", "simple-mfd", "syscon"; 2562306a36Sopenharmony_ci reg = <0x203000 0x100>; 2662306a36Sopenharmony_ci ranges = <0x0 0x203000 0x100>; 2762306a36Sopenharmony_ci big-endian; 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_ci reset0: reset-controller@10 { 3062306a36Sopenharmony_ci compatible = "lantiq,xrx200-reset"; 3162306a36Sopenharmony_ci reg = <0x10 4>, <0x14 4>; 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci #reset-cells = <2>; 3462306a36Sopenharmony_ci }; 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci reset1: reset-controller@48 { 3762306a36Sopenharmony_ci compatible = "lantiq,xrx200-reset"; 3862306a36Sopenharmony_ci reg = <0x48 4>, <0x24 4>; 3962306a36Sopenharmony_ci 4062306a36Sopenharmony_ci #reset-cells = <2>; 4162306a36Sopenharmony_ci }; 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci usb_phy0: usb2-phy@18 { 4462306a36Sopenharmony_ci compatible = "lantiq,xrx200-usb2-phy"; 4562306a36Sopenharmony_ci reg = <0x18 4>, <0x38 4>; 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci resets = <&reset1 4 4>, <&reset0 4 4>; 4862306a36Sopenharmony_ci reset-names = "phy", "ctrl"; 4962306a36Sopenharmony_ci #phy-cells = <0>; 5062306a36Sopenharmony_ci }; 5162306a36Sopenharmony_ci 5262306a36Sopenharmony_ci usb_phy1: usb2-phy@34 { 5362306a36Sopenharmony_ci compatible = "lantiq,xrx200-usb2-phy"; 5462306a36Sopenharmony_ci reg = <0x34 4>, <0x3C 4>; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci resets = <&reset1 5 4>, <&reset0 4 4>; 5762306a36Sopenharmony_ci reset-names = "phy", "ctrl"; 5862306a36Sopenharmony_ci #phy-cells = <0>; 5962306a36Sopenharmony_ci }; 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci reboot@10 { 6262306a36Sopenharmony_ci compatible = "syscon-reboot"; 6362306a36Sopenharmony_ci reg = <0x10 4>; 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci regmap = <&rcu0>; 6662306a36Sopenharmony_ci offset = <0x10>; 6762306a36Sopenharmony_ci mask = <0x40000000>; 6862306a36Sopenharmony_ci }; 6962306a36Sopenharmony_ci }; 70