xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/mips/lantiq/rcu.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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