/*
 * 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@80000000 {
		device_type = "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 = <100000>;

		pmu: pmu@8 {
			reg = <0x08>;
		};
	};

	sdio2: sdio@3f190000 {
		non-removable;
		max-frequency = <48000000>;
		vmmc-supply = <&camldo1_reg>;
		vqmmc-supply = <&iosr1_reg>;
		status = "okay";
	};

	sdio4: sdio@3f1b0000 {
		max-frequency = <48000000>;
		cd-gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
		vmmc-supply = <&sdldo_reg>;
		vqmmc-supply = <&sdxldo_reg>;
		status = "okay";
	};

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

	usbotg: usb@3f120000 {
		vusb_d-supply = <&usbldo_reg>;
		vusb_a-supply = <&iosr1_reg>;
		status = "okay";
	};

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

#include "bcm59056.dtsi"

&pmu {
	compatible = "brcm,bcm59056";
	interrupts = <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>;
	regulators {
		camldo1_reg: camldo1 {
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			regulator-always-on;
		};

		sdldo_reg: sdldo {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3000000>;
		};

		sdxldo_reg: sdxldo {
			regulator-min-microvolt = <2700000>;
			regulator-max-microvolt = <3300000>;
		};

		usbldo_reg: usbldo {
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			regulator-always-on;
		};

		iosr1_reg: iosr1 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			regulator-always-on;
		};
	};
};
