xref: /openbmc/linux/Documentation/devicetree/bindings/mips/lantiq/rcu.txt (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
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