/*
 * 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 <dt-bindings/gpio/gpio.h>

#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 GPIO_ACTIVE_LOW>;
		status = "okay";
	};

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

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