Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

Lantiq XWAY SoC RCU binding
===========================

This binding describes the RCU (reset controller unit) multifunction device,
where each sub-device has it's own set of registers.

The RCU register range is used for multiple purposes. Mostly one device
uses one or multiple register exclusively, but for some registers some
bits are for one driver and some other bits are for a different driver.
With this patch all accesses to the RCU registers will go through
syscon.


-------------------------------------------------------------------------------
Required properties:
- compatible	: The first and second values must be:
		  "lantiq,xrx200-rcu", "simple-mfd", "syscon"
- reg		: The address and length of the system control registers


-------------------------------------------------------------------------------
Example of the RCU bindings on a xRX200 SoC:
	rcu0: rcu@203000 {
		compatible = "lantiq,xrx200-rcu", "simple-mfd", "syscon";
		reg = <0x203000 0x100>;
		ranges = <0x0 0x203000 0x100>;
		big-endian;

		reset0: reset-controller@10 {
			compatible = "lantiq,xrx200-reset";
			reg = <0x10 4>, <0x14 4>;

			#reset-cells = <2>;
		};

		reset1: reset-controller@48 {
			compatible = "lantiq,xrx200-reset";
			reg = <0x48 4>, <0x24 4>;

			#reset-cells = <2>;
		};

		usb_phy0: usb2-phy@18 {
			compatible = "lantiq,xrx200-usb2-phy";
			reg = <0x18 4>, <0x38 4>;

			resets = <&reset1 4 4>, <&reset0 4 4>;
			reset-names = "phy", "ctrl";
			#phy-cells = <0>;
		};

		usb_phy1: usb2-phy@34 {
			compatible = "lantiq,xrx200-usb2-phy";
			reg = <0x34 4>, <0x3C 4>;

			resets = <&reset1 5 4>, <&reset0 4 4>;
			reset-names = "phy", "ctrl";
			#phy-cells = <0>;
		};

		reboot@10 {
			compatible = "syscon-reboot";
			reg = <0x10 4>;

			regmap = <&rcu0>;
			offset = <0x10>;
			mask = <0x40000000>;
		};
	};