/dts-v1/;

/ {
	#address-cells = <0x1>;
	#size-cells = <0x1>;
	interrupt-parent = <0x1>;
	compatible = "brcm,bcm2709";
	model = "Raspberry Pi 2 Model B";

	chosen {
		bootargs = [00];
	};

	aliases {
		audio = "/audio";
		sound = "/sound";
		soc = "/soc";
		dma = "/soc/dma@7e007000";
		intc = "/soc/interrupt-controller";
		watchdog = "/soc/watchdog@7e100000";
		random = "/soc/rng@7e104000";
		mailbox = "/soc/mailbox@7e00b800";
		gpio = "/soc/gpio";
		uart0 = "/soc/uart@7e201000";
		i2s = "/soc/i2s@7e203000";
		spi0 = "/soc/spi@7e204000";
		i2c0 = "/soc/i2c@7e205000";
		uart1 = "/soc/uart@7e215040";
		mmc = "/soc/mmc@7e300000";
		i2c1 = "/soc/i2c@7e804000";
		i2c2 = "/soc/i2c@7e805000";
		usb = "/soc/usb@7e980000";
		leds = "/soc/leds";
		fb = "/soc/fb";
		vchiq = "/soc/vchiq";
		thermal = "/soc/thermal";
		clocks = "/clocks";
	};

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

	audio {
		compatible = "brcm,bcm2835-audio";
		brcm,pwm-channels = <0x8>;
		status = "disabled";
		linux,phandle = <0x1a>;
		phandle = <0x1a>;
	};

	sound {
		linux,phandle = <0x1d>;
		phandle = <0x1d>;
	};

	soc {
		compatible = "simple-bus";
		#address-cells = <0x1>;
		#size-cells = <0x1>;
		ranges = <0x7e000000 0x3f000000 0x1000000>;
		linux,phandle = <0x1e>;
		phandle = <0x1e>;

		dma@7e007000 {
			compatible = "brcm,bcm2835-dma";
			reg = <0x7e007000 0xf00>;
			interrupts = <0x1 0x10 0x1 0x11 0x1 0x12 0x1 0x13 0x1 0x14 0x1 0x15 0x1 0x16 0x1 0x17 0x1 0x18 0x1 0x19 0x1 0x1a 0x1 0x1b 0x1 0x1c>;
			#dma-cells = <0x1>;
			brcm,dma-channel-mask = <0x7f35>;
			linux,phandle = <0x6>;
			phandle = <0x6>;
		};

		interrupt-controller {
			compatible = "brcm,bcm2708-armctrl-ic";
			reg = <0x7e00b200 0x200>;
			interrupt-controller;
			#interrupt-cells = <0x2>;
			linux,phandle = <0x1>;
			phandle = <0x1>;
		};

		mailbox@7e00b800 {
			compatible = "brcm,bcm2708-vcio";
			reg = <0x7e00b880 0x40>;
			interrupts = <0x0 0x1>;
			linux,phandle = <0x1f>;
			phandle = <0x1f>;
		};

		watchdog@7e100000 {
			compatible = "brcm,bcm2835-pm-wdt";
			reg = <0x7e100000 0x28>;
			status = "disabled";
			linux,phandle = <0x1b>;
			phandle = <0x1b>;
		};

		rng@7e104000 {
			compatible = "brcm,bcm2835-rng";
			reg = <0x7e104000 0x10>;
			status = "disabled";
			linux,phandle = <0x1c>;
			phandle = <0x1c>;
		};

		gpio {
			compatible = "brcm,bcm2835-gpio";
			reg = <0x7e200000 0xb4>;
			interrupts = <0x2 0x11 0x2 0x12>;
			gpio-controller;
			#gpio-cells = <0x2>;
			interrupt-controller;
			#interrupt-cells = <0x2>;
			linux,phandle = <0xc>;
			phandle = <0xc>;

			spi0_pins {
				brcm,pins = <0x7 0x8 0x9 0xa 0xb>;
				brcm,function = <0x4>;
				linux,phandle = <0x7>;
				phandle = <0x7>;
			};

			i2c0 {
				brcm,pins = <0x0 0x1>;
				brcm,function = <0x4>;
				linux,phandle = <0x9>;
				phandle = <0x9>;
			};

			i2c1 {
				brcm,pins = <0x2 0x3>;
				brcm,function = <0x4>;
				linux,phandle = <0xb>;
				phandle = <0xb>;
			};

			i2s {
				brcm,pins = <0x12 0x13 0x14 0x15>;
				brcm,function = <0x4>;
				linux,phandle = <0x4>;
				phandle = <0x4>;
			};
		};

		uart@7e201000 {
			compatible = "arm,pl011", "arm,primecell";
			reg = <0x7e201000 0x1000>;
			interrupts = <0x2 0x19>;
			clocks = <0x2 0x3>;
			clock-names = "uartclk", "apb_pclk";
			arm,primecell-periphid = <0x241011>;
			status = "okay";
			linux,phandle = <0x11>;
			phandle = <0x11>;
		};

		i2s@7e203000 {
			compatible = "brcm,bcm2708-i2s";
			reg = <0x7e203000 0x20 0x7e101098 0x2>;
			dma-names = "tx", "rx";
			status = "disabled";
			#sound-dai-cells = <0x0>;
			pinctrl-names = "default";
			pinctrl-0 = <0x4>;
			linux,phandle = <0x13>;
			phandle = <0x13>;
		};

		spi@7e204000 {
			compatible = "brcm,bcm2835-spi";
			reg = <0x7e204000 0x1000>;
			interrupts = <0x2 0x16>;
			clocks = <0x5>;
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			status = "disabled";
			dmas = <0x6 0x6 0x6 0x7>;
			dma-names = "tx", "rx";
			cs-gpios = <0x0 0x0>;
			pinctrl-names = "default";
			pinctrl-0 = <0x7>;
			linux,phandle = <0x14>;
			phandle = <0x14>;

			spidev@0 {
				compatible = "spidev";
				reg = <0x0>;
				#address-cells = <0x1>;
				#size-cells = <0x0>;
				spi-max-frequency = <0x7a120>;
			};

			spidev@1 {
				compatible = "spidev";
				reg = <0x1>;
				#address-cells = <0x1>;
				#size-cells = <0x0>;
				spi-max-frequency = <0x7a120>;
			};
		};

		i2c@7e205000 {
			compatible = "brcm,bcm2708-i2c";
			reg = <0x7e205000 0x1000>;
			interrupts = <0x2 0x15>;
			clocks = <0x8>;
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			status = "disabled";
			pinctrl-names = "default";
			pinctrl-0 = <0x9>;
			clock-frequency = <0x186a0>;
			linux,phandle = <0x15>;
			phandle = <0x15>;
		};

		uart@7e215040 {
			compatible = "brcm,bcm2835-aux-uart", "ns16550";
			reg = <0x7e215040 0x40>;
			interrupts = <0x1 0x1d>;
			clock-frequency = <0x1dcd6500>;
			reg-shift = <0x2>;
			no-loopback-test;
			status = "disabled";
			linux,phandle = <0x12>;
			phandle = <0x12>;
		};

		mmc@7e300000 {
			compatible = "brcm,bcm2835-mmc";
			reg = <0x7e300000 0x100>;
			interrupts = <0x2 0x1e>;
			clocks = <0xa>;
			dmas = <0x6 0xb 0x6 0xb>;
			dma-names = "tx", "rx";
			status = "okay";
			bus-width = <0x4>;
			linux,phandle = <0x20>;
			phandle = <0x20>;
		};

		i2c@7e804000 {
			compatible = "brcm,bcm2708-i2c";
			reg = <0x7e804000 0x1000>;
			interrupts = <0x2 0x15>;
			clocks = <0x8>;
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			status = "disabled";
			pinctrl-names = "default";
			pinctrl-0 = <0xb>;
			clock-frequency = <0x186a0>;
			linux,phandle = <0x16>;
			phandle = <0x16>;
		};

		i2c@7e805000 {
			compatible = "brcm,bcm2708-i2c";
			reg = <0x7e805000 0x1000>;
			interrupts = <0x2 0x15>;
			clocks = <0x8>;
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			status = "disabled";
			clock-frequency = <0x186a0>;
			linux,phandle = <0x17>;
			phandle = <0x17>;
		};

		usb@7e980000 {
			compatible = "brcm,bcm2708-usb";
			reg = <0x7e980000 0x10000 0x7e006000 0x1000>;
			interrupts = <0x2 0x0 0x1 0x9>;
			linux,phandle = <0x21>;
			phandle = <0x21>;
		};

		leds {
			compatible = "gpio-leds";
			linux,phandle = <0x22>;
			phandle = <0x22>;

			act {
				label = "led0";
				linux,default-trigger = "mmc0";
				gpios = <0xc 0x2f 0x0>;
				linux,phandle = <0x18>;
				phandle = <0x18>;
			};

			pwr {
				label = "led1";
				linux,default-trigger = "input";
				gpios = <0xc 0x23 0x0>;
				linux,phandle = <0x19>;
				phandle = <0x19>;
			};
		};

		fb {
			compatible = "brcm,bcm2708-fb";
			status = "okay";
			linux,phandle = <0x23>;
			phandle = <0x23>;
		};

		vchiq {
			compatible = "brcm,bcm2835-vchiq";
			reg = <0x7e00b840 0xf>;
			interrupts = <0x0 0x2>;
			linux,phandle = <0x24>;
			phandle = <0x24>;
		};

		thermal {
			compatible = "brcm,bcm2835-thermal";
			linux,phandle = <0x25>;
			phandle = <0x25>;
		};

		arm-pmu {
			compatible = "arm,cortex-a7-pmu";
			interrupts = <0x3 0x9>;
		};
	};

	clocks {
		compatible = "simple-bus";
		#address-cells = <0x1>;
		#size-cells = <0x0>;
		linux,phandle = <0x26>;
		phandle = <0x26>;

		clock@0 {
			compatible = "fixed-clock";
			reg = <0x0>;
			#clock-cells = <0x0>;
			clock-output-names = "mmc";
			clock-frequency = <0xee6b280>;
			linux,phandle = <0xa>;
			phandle = <0xa>;
		};

		clock@1 {
			compatible = "fixed-clock";
			reg = <0x1>;
			#clock-cells = <0x0>;
			clock-output-names = "i2c";
			clock-frequency = <0xee6b280>;
			linux,phandle = <0x8>;
			phandle = <0x8>;
		};

		clock@2 {
			compatible = "fixed-clock";
			reg = <0x2>;
			#clock-cells = <0x0>;
			clock-output-names = "core";
			clock-frequency = <0xee6b280>;
			linux,phandle = <0x5>;
			phandle = <0x5>;
		};

		clock@3 {
			compatible = "fixed-clock";
			reg = <0x3>;
			#clock-cells = <0x0>;
			clock-output-names = "uart0_pclk";
			clock-frequency = <0x2dc6c0>;
			linux,phandle = <0x2>;
			phandle = <0x2>;
		};

		clock@4 {
			compatible = "fixed-clock";
			reg = <0x4>;
			#clock-cells = <0x0>;
			clock-output-names = "apb_pclk";
			clock-frequency = <0x7829b80>;
			linux,phandle = <0x3>;
			phandle = <0x3>;
		};
	};

	timer {
		compatible = "arm,armv7-timer";
		clock-frequency = <0x124f800>;
		interrupts = <0x3 0x0 0x3 0x1 0x3 0x3 0x3 0x2>;
		always-on;
	};

	cpus {
		#address-cells = <0x1>;
		#size-cells = <0x0>;
		linux,phandle = <0x27>;
		phandle = <0x27>;

		cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-a7";
			reg = <0xf00>;
			clock-frequency = <0x2faf0800>;
			linux,phandle = <0xd>;
			phandle = <0xd>;
		};

		cpu@1 {
			device_type = "cpu";
			compatible = "arm,cortex-a7";
			reg = <0xf01>;
			clock-frequency = <0x2faf0800>;
			linux,phandle = <0xe>;
			phandle = <0xe>;
		};

		cpu@2 {
			device_type = "cpu";
			compatible = "arm,cortex-a7";
			reg = <0xf02>;
			clock-frequency = <0x2faf0800>;
			linux,phandle = <0xf>;
			phandle = <0xf>;
		};

		cpu@3 {
			device_type = "cpu";
			compatible = "arm,cortex-a7";
			reg = <0xf03>;
			clock-frequency = <0x2faf0800>;
			linux,phandle = <0x10>;
			phandle = <0x10>;
		};
	};

	__overrides__ {
		arm_freq = <0xd 0x636c6f63 0x6b2d6672 0x65717565 0x6e63793a 0x30000000 0xe636c 0x6f636b2d 0x66726571 0x75656e63 0x793a3000 0xf 0x636c6f63 0x6b2d6672 0x65717565 0x6e63793a 0x30000000 0x10636c 0x6f636b2d 0x66726571 0x75656e63 0x793a3000>;
		uart0 = [00 00 00 11 73 74 61 74 75 73 00];
		uart0_clkrate = [00 00 00 02 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
		uart1_clkrate = [00 00 00 12 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
		i2s = [00 00 00 13 73 74 61 74 75 73 00];
		spi = [00 00 00 14 73 74 61 74 75 73 00];
		i2c0 = [00 00 00 15 73 74 61 74 75 73 00];
		i2c1 = [00 00 00 16 73 74 61 74 75 73 00];
		i2c2_iknowwhatimdoing = [00 00 00 17 73 74 61 74 75 73 00];
		i2c0_baudrate = [00 00 00 15 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
		i2c1_baudrate = [00 00 00 16 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
		i2c2_baudrate = [00 00 00 17 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
		core_freq = [00 00 00 05 63 6c 6f 63 6b 2d 66 72 65 71 75 65 6e 63 79 3a 30 00];
		act_led_gpio = <0x18 0x6770696f 0x733a3400>;
		act_led_activelow = <0x18 0x6770696f 0x733a3800>;
		act_led_trigger = [00 00 00 18 6c 69 6e 75 78 2c 64 65 66 61 75 6c 74 2d 74 72 69 67 67 65 72 00];
		pwr_led_gpio = <0x19 0x6770696f 0x733a3400>;
		pwr_led_activelow = <0x19 0x6770696f 0x733a3800>;
		pwr_led_trigger = [00 00 00 19 6c 69 6e 75 78 2c 64 65 66 61 75 6c 74 2d 74 72 69 67 67 65 72 00];
		audio = [00 00 00 1a 73 74 61 74 75 73 00];
		watchdog = [00 00 00 1b 73 74 61 74 75 73 00];
		random = [00 00 00 1c 73 74 61 74 75 73 00];
	};

	__symbols__ {
		audio = "/audio";
		sound = "/sound";
		soc = "/soc";
		dma = "/soc/dma@7e007000";
		intc = "/soc/interrupt-controller";
		mailbox = "/soc/mailbox@7e00b800";
		watchdog = "/soc/watchdog@7e100000";
		random = "/soc/rng@7e104000";
		gpio = "/soc/gpio";
		spi0_pins = "/soc/gpio/spi0_pins";
		i2c0_pins = "/soc/gpio/i2c0";
		i2c1_pins = "/soc/gpio/i2c1";
		i2s_pins = "/soc/gpio/i2s";
		uart0 = "/soc/uart@7e201000";
		i2s = "/soc/i2s@7e203000";
		spi0 = "/soc/spi@7e204000";
		i2c0 = "/soc/i2c@7e205000";
		uart1 = "/soc/uart@7e215040";
		mmc = "/soc/mmc@7e300000";
		i2c1 = "/soc/i2c@7e804000";
		i2c2 = "/soc/i2c@7e805000";
		usb = "/soc/usb@7e980000";
		leds = "/soc/leds";
		act_led = "/soc/leds/act";
		pwr_led = "/soc/leds/pwr";
		fb = "/soc/fb";
		vchiq = "/soc/vchiq";
		thermal = "/soc/thermal";
		clocks = "/clocks";
		clk_mmc = "/clocks/clock@0";
		clk_i2c = "/clocks/clock@1";
		clk_core = "/clocks/clock@2";
		clk_uart0 = "/clocks/clock@3";
		clk_apb_p = "/clocks/clock@4";
		cpus = "/cpus";
		v7_cpu0 = "/cpus/cpu@0";
		v7_cpu1 = "/cpus/cpu@1";
		v7_cpu2 = "/cpus/cpu@2";
		v7_cpu3 = "/cpus/cpu@3";
	};
};
