/*
 *  Copyright (C) 2012 Marvell Technology Group Ltd.
 *  Author: Haojian Zhuang <haojian.zhuang@marvell.com>
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License version 2 as
 *  publishhed by the Free Software Foundation.
 */

/dts-v1/;
#include "mmp2.dtsi"

/ {
	model = "Marvell MMP2 Brownstone Development Board";
	compatible = "mrvl,mmp2-brownstone", "mrvl,mmp2";

	chosen {
		bootargs = "console=ttyS2,38400 root=/dev/nfs nfsroot=192.168.1.100:/nfsroot/ ip=192.168.1.101:192.168.1.100::255.255.255.0::eth0:on";
	};

	memory {
		reg = <0x00000000 0x08000000>;
	};

	soc {
		apb@d4000000 {
			uart3: uart@d4018000 {
				status = "okay";
			};
			twsi1: i2c@d4011000 {
				status = "okay";
				pmic: max8925@3c {
					compatible = "maxium,max8925";
					reg = <0x3c>;
					interrupts = <1>;
					interrupt-parent = <&intcmux4>;
					interrupt-controller;
					#interrupt-cells = <1>;
					maxim,tsc-irq = <0>;

					regulators {
						SDV1 {
							regulator-min-microvolt = <637500>;
							regulator-max-microvolt = <1425000>;
							regulator-boot-on;
							regulator-always-on;
						};
						SDV2 {
							regulator-min-microvolt = <650000>;
							regulator-max-microvolt = <2225000>;
							regulator-boot-on;
							regulator-always-on;
						};
						SDV3 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO1 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO2 {
							regulator-min-microvolt = <650000>;
							regulator-max-microvolt = <2250000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO3 {
							regulator-min-microvolt = <650000>;
							regulator-max-microvolt = <2250000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO4 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO5 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO6 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO7 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO8 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO9 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO10 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
						};
						LDO11 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO12 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO13 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO14 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO15 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO16 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO17 {
							regulator-min-microvolt = <650000>;
							regulator-max-microvolt = <2250000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO18 {
							regulator-min-microvolt = <650000>;
							regulator-max-microvolt = <2250000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO19 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
							regulator-boot-on;
							regulator-always-on;
						};
						LDO20 {
							regulator-min-microvolt = <750000>;
							regulator-max-microvolt = <3900000>;
							regulator-boot-on;
							regulator-always-on;
						};
					};
					backlight {
						maxim,max8925-dual-string = <0>;
					};
					charger {
						batt-detect = <0>;
						topoff-threshold = <1>;
						fast-charge = <7>;
						no-temp-support = <0>;
						no-insert-detect = <0>;
					};
				};
			};
			rtc: rtc@d4010000 {
				status = "okay";
			};
		};
	};
};
