// SPDX-License-Identifier: GPL-2.0+
/*
 * Device Tree file for Excito Bubba B3
 *
 * Copyright (C) 2013, Andrew Lunn <andrew@lunn.ch>
 *
 *
 * Note: This requires a new'ish version of u-boot, which disables the
 * L2 cache. If your B3 silently fails to boot, u-boot is probably too
 * old. Either upgrade, or consider the following email:
 *
 * http://lists.debian.org/debian-arm/2012/08/msg00128.html
 */

/dts-v1/;

#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"

/ {
	model = "Excito B3";
	compatible = "excito,b3", "marvell,kirkwood-88f6281", "marvell,kirkwood";
	memory { /* 512 MB */
		device_type = "memory";
		reg = <0x00000000 0x20000000>;
	};

	chosen {
		bootargs = "console=ttyS0,115200n8 earlyprintk";
		stdout-path = &uart0;
	};

	ocp@f1000000 {
		pinctrl: pin-controller@10000 {
			pmx_button_power: pmx-button-power {
				marvell,pins = "mpp39";
				marvell,function = "gpio";
			};
			pmx_led_green: pmx-led-green {
				marvell,pins = "mpp38";
				marvell,function = "gpio";
			};
			pmx_led_red: pmx-led-red {
				marvell,pins = "mpp41";
				marvell,function = "gpio";
			};
			pmx_led_blue: pmx-led-blue {
				marvell,pins = "mpp42";
				marvell,function = "gpio";
			};
			pmx_beeper: pmx-beeper {
				marvell,pins = "mpp40";
				marvell,function = "gpio";
			};
		};

		spi@10600 {
			status = "okay";

			m25p16@0 {
				#address-cells = <1>;
				#size-cells = <1>;
				compatible = "st,m25p16", "jedec,spi-nor";
				reg = <0>;
				spi-max-frequency = <40000000>;
				mode = <0>;

				partition@0 {
					reg = <0x0 0xc0000>;
					label = "u-boot";
				};

				partition@c0000 {
					reg = <0xc0000 0x20000>;
					label = "u-boot env";
				};

				partition@e0000 {
					reg = <0xe0000 0x120000>;
					label = "data";
				};
			};
		};

		i2c@11000 {
			status = "okay";
			/*
			 * There is something on the bus at address 0x64.
			 * Not yet identified what it is, maybe the eeprom
			 * for the Atheros WiFi chip?
			 */
		};


		serial@12000 {
			/* Internal on test pins, 3.3v TTL
		 	 * UART0_RX = Testpoint 65
			 * UART0_TX = Testpoint 66
			 * See the Excito Wiki for more details.
		 	 */
			status = "okay";
		};

		sata@80000 {
			/* One internal, the second as eSATA */
			status = "okay";
			nr-ports = <2>;
		};
	};

	gpio-leds {
		/*
		 * There is one LED "port" on the front and the colours
		 * mix together giving some interesting combinations.
		 */
		compatible = "gpio-leds";
		pinctrl-0 = < &pmx_led_green &pmx_led_red
			      &pmx_led_blue >;
		pinctrl-names = "default";

		programming_led {
			label = "bubba3:green:programming";
			gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		error_led {
			label = "bubba3:red:error";
			gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
		};

		active_led {
			label = "bubba3:blue:active";
			gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";
		pinctrl-0 = <&pmx_button_power>;
		pinctrl-names = "default";

		power-button {
			/* On the back */
			label = "Power Button";
			linux,code = <KEY_POWER>;
			gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
		};
	};

	beeper: beeper {
		/* 4KHz Piezoelectric buzzer */
		compatible = "gpio-beeper";
		pinctrl-0 = <&pmx_beeper>;
		pinctrl-names = "default";
		gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
	};
};

&mdio {
	status = "okay";

	ethphy0: ethernet-phy@8 {
		device_type = "ethernet-phy";
		reg = <8>;
	};

	ethphy1: ethernet-phy@24 {
		device_type = "ethernet-phy";
		reg = <24>;
	};
};

&eth0 {
	status = "okay";
	ethernet0-port@0 {
		phy-handle = <&ethphy0>;
	};
};

&eth1 {
	status = "okay";
	ethernet1-port@0 {
		phy-handle = <&ethphy1>;
	};
};

/* Wifi model has Atheros chipset on pcie port */
&pciec {
        status = "okay";
};

&pcie0 {
	status = "okay";
};
