/*
 * Copyright (C) 2013 Broadcom Corporation
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation version 2.
 *
 * This program is distributed "as is" WITHOUT ANY WARRANTY of any
 * kind, whether express or implied; without even the implied warranty
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

/dts-v1/;

#include "bcm11351.dtsi"

/ {
	model = "BCM28155 AP board";
	compatible = "brcm,bcm28155-ap", "brcm,bcm11351";

	memory {
		reg = <0x80000000 0x40000000>; /* 1 GB */
	};

	uart@3e000000 {
		status = "okay";
	};

	i2c@3e016000 {
		status="okay";
		clock-frequency = <400000>;
	};

	i2c@3e017000 {
		status="okay";
		clock-frequency = <400000>;
	};

	i2c@3e018000 {
		status="okay";
		clock-frequency = <400000>;
	};

	i2c@3500d000 {
		status="okay";
		clock-frequency = <400000>;
	};

	sdio1: sdio@3f180000 {
		max-frequency = <48000000>;
		status = "okay";
	};

	sdio2: sdio@3f190000 {
		non-removable;
		max-frequency = <48000000>;
		status = "okay";
	};

	sdio4: sdio@3f1b0000 {
		max-frequency = <48000000>;
		cd-gpios = <&gpio 14 0>;
		status = "okay";
	};

	usbotg: usb@3f120000 {
		status = "okay";
	};

	usbphy: usb-phy@3f130000 {
		status = "okay";
	};

	pwm: pwm@3e01a000 {
		status = "okay";
	};
};
