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