/dts-v1/;

/ {
	#address-cells = <1>;
	#size-cells = <1>;
	compatible = "brcm,bcm6318";

	aliases {
		pinctrl = &pinctrl;
		serial0 = &uart0;
		spi1 = &hsspi;
	};

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;

		cpu@0 {
			compatible = "brcm,bmips3300", "mips,mips4Kc";
			device_type = "cpu";
			reg = <0>;
		};
	};

	cpu_intc: interrupt-controller {
		#address-cells = <0>;
		compatible = "mti,cpu-interrupt-controller";

		interrupt-controller;
		#interrupt-cells = <1>;
	};

	memory { device_type = "memory"; reg = <0 0>; };

	ubus@10000000 {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;
		compatible = "simple-bus";
		interrupt-parent = <&periph_intc>;

		ext_intc: interrupt-controller@10000018 {
			compatible = "brcm,bcm6318-ext-intc";
			reg = <0x10000018 0x4>;

			interrupt-controller;
			#interrupt-cells = <2>;

			interrupts = <24>, <25>, <26>, <27>;
		};

		periph_intc: interrupt-controller@10000020 {
			compatible = "brcm,bcm6345-l1-intc";
			reg = <0x10000020 0x20>;

			interrupt-controller;
			#interrupt-cells = <1>;

			interrupt-parent = <&cpu_intc>;
			interrupts = <2>;
		};

		pinctrl: pin-controller@10000080 {
			compatible = "brcm,bcm6318-pinctrl";
			reg = <0x10000080 0x08>,
			      <0x10000088 0x08>,
			      <0x10000098 0x04>,
			      <0x1000009c 0x0c>,
			      <0x100000d4 0x18>;
			reg-names = "dirout", "dat", "mode", "mux", "pad";

			gpio-controller;
			#gpio-cells = <2>;

			interrupt-parent = <&ext_intc>;
			interrupts = <0 0>, <1 0>;
			interrupt-names = "gpio33", "gpio34";

			pinctrl_ephy0_spd_led: ephy0_spd_led {
				function = "ephy0_spd_led";
				pins = "gpio0";
			};

			pinctrl_ephy1_spd_led: ephy1_spd_led {
				function = "ephy1_spd_led";
				pins = "gpio1";
			};

			pinctrl_ephy2_spd_led: ephy2_spd_led {
				function = "ephy2_spd_led";
				pins = "gpio2";
			};

			pinctrl_ephy3_spd_led: ephy3_spd_led {
				function = "ephy3_spd_led";
				pins = "gpio3";
			};

			pinctrl_ephy0_act_led: ephy0_act_led {
				function = "ephy0_act_led";
				pins = "gpio4";
			};

			pinctrl_ephy1_act_led: ephy1_act_led {
				function = "ephy1_act_led";
				pins = "gpio5";
			};

			pinctrl_ephy2_act_led: ephy2_act_led {
				function = "ephy2_act_led";
				pins = "gpio6";
			};

			pinctrl_ephy3_act_led: ephy3_act_led {
				function = "ephy3_act_led";
				pins = "gpio7";
			};

			pinctrl_serial_led: serial_led {
				pinctrl_serial_led_data: serial_led_data {
					function = "serial_led_data";
					pins = "gpio6";
				};

				pinctrl_serial_led_clk: serial_led_clk {
					function = "serial_led_clk";
					pins = "gpio7";
				};
			};

			pinctrl_inet_act_led: inet_act_led {
				function = "inet_act_led";
				pins = "gpio8";
			};

			pinctrl_inet_fail_led: inet_fail_led {
				function = "inet_fail_led";
				pins = "gpio9";
			};

			pinctrl_dsl_led: dsl_led {
				function = "dsl_led";
				pins = "gpio10";
			};

			pinctrl_post_fail_led: post_fail_led {
				function = "post_fail_led";
				pins = "gpio11";
			};

			pinctrl_wlan_wps_led: wlan_wps_led {
				function = "wlan_wps_led";
				pins = "gpio12";
			};

			pinctrl_usb_pwron: usb_pwron {
				function = "usb_pwron";
				pins = "gpio13";
			};

			pinctrl_usb_device_led: usb_device_led {
				function = "usb_device_led";
				pins = "gpio13";
			};

			pinctrl_usb_active: usb_active {
				function = "usb_active";
				pins = "gpio40";
			};
		};

		uart0: serial@10000100 {
			compatible = "brcm,bcm6345-uart";
			reg = <0x10000100 0x18>;

			interrupt-parent = <&periph_intc>;
			interrupts = <28>;

			/* clocks = <&periph_clk>; */
			/* clock-names = "refclk"; */

			status = "disabled";
		};

		leds: led-controller@10000200 {
			#address-cells = <1>;
			#size-cells = <0>;
			compatible = "brcm,bcm6328-leds";
			reg = <0x10000200 0x24>;
			status = "disabled";
		};

		hsspi: spi@10003000 {
			#address-cells = <1>;
			#size-cells = <0>;
			compatible = "brcm,bcm6328-hsspi";
			reg = <0x10003000 0x600>;
			interrupts = <29>;
			/* clocks = <&clkctl 25>; */
		};
	};
};
