107f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni/*
207f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni * Copyright (C) 2012 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
307f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni *
407f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni * This file is licensed under the terms of the GNU General Public
507f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni * License version 2. This program is licensed "as is" without any
607f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni * warranty of any kind, whether express or implied.
707f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni */
807f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni
99c4d82e5c2aad09becd1b370c9ead7bc087ce406Thomas Petazzoni/*
109c4d82e5c2aad09becd1b370c9ead7bc087ce406Thomas Petazzoni * TODO: add Orion USB device port init when kernel.org support is added.
119c4d82e5c2aad09becd1b370c9ead7bc087ce406Thomas Petazzoni * TODO: add flash write support: see below.
129c4d82e5c2aad09becd1b370c9ead7bc087ce406Thomas Petazzoni * TODO: add power-off support.
139c4d82e5c2aad09becd1b370c9ead7bc087ce406Thomas Petazzoni * TODO: add I2C EEPROM support.
149c4d82e5c2aad09becd1b370c9ead7bc087ce406Thomas Petazzoni */
159c4d82e5c2aad09becd1b370c9ead7bc087ce406Thomas Petazzoni
1607f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni/dts-v1/;
1748be9707b4d4e85c950fc9c3ae4ed574a453c060Thomas Petazzoni
182a93474299e5c9e39678596ff69fd5dbf1914769Thomas Petazzoni#include <dt-bindings/gpio/gpio.h>
192a93474299e5c9e39678596ff69fd5dbf1914769Thomas Petazzoni#include <dt-bindings/input/input.h>
2039eabec14c05ec67e9afe56711b040728de1d533Thomas Petazzoni#include <dt-bindings/interrupt-controller/irq.h>
215c697664858945b7a67e74e9c196a8f705c9e88fThomas Petazzoni#include "orion5x-mv88f5182.dtsi"
2207f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni
2307f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni/ {
2407f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni	model = "LaCie Ethernet Disk mini V2";
25b2d57222b0f0963258a47da0ea7f0ec451c64712Thomas Petazzoni	compatible = "lacie,ethernet-disk-mini-v2", "marvell,orion5x-88f5182", "marvell,orion5x";
2607f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni
2707f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni	memory {
2807f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni		reg = <0x00000000 0x4000000>; /* 64 MB */
2907f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni	};
3007f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni
3107f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni	chosen {
3207f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni		bootargs = "console=ttyS0,115200n8 earlyprintk";
331fca8a2802810011e0f82e5ca5aca8ec5b62b400Thomas Petazzoni		linux,stdout-path = &uart0;
3407f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni	};
3507f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni
365c697664858945b7a67e74e9c196a8f705c9e88fThomas Petazzoni	soc {
375c697664858945b7a67e74e9c196a8f705c9e88fThomas Petazzoni		ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000>,
38a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni			 <MBUS_ID(0x09, 0x00) 0 0xf2200000 0x800>,
39a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni			 <MBUS_ID(0x01, 0x0f) 0 0xfff80000 0x80000>;
4007f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni	};
4107f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni
427ca63532b50127773696619b7b17f79b919fc6a1Thomas Petazzoni	gpio-keys {
4307f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni		compatible = "gpio-keys";
4443be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni		pinctrl-0 = <&pmx_power_button>;
4543be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni		pinctrl-names = "default";
4607f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni		#address-cells = <1>;
4707f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni		#size-cells = <0>;
4807f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni		button@1 {
4907f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni			label = "Power-on Switch";
502a93474299e5c9e39678596ff69fd5dbf1914769Thomas Petazzoni			linux,code = <KEY_POWER>;
512a93474299e5c9e39678596ff69fd5dbf1914769Thomas Petazzoni			gpios = <&gpio0 18 GPIO_ACTIVE_HIGH>;
5207f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni		};
5307f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni	};
5407f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni
557ca63532b50127773696619b7b17f79b919fc6a1Thomas Petazzoni	gpio-leds {
5607f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni		compatible = "gpio-leds";
5743be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni		pinctrl-0 = <&pmx_power_led>;
5843be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni		pinctrl-names = "default";
5907f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni
6007f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni		led@1 {
6107f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni			label = "power:blue";
622a93474299e5c9e39678596ff69fd5dbf1914769Thomas Petazzoni			gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
6307f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni		};
6407f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni	};
6507f645df9ff2550749b806af626576d5ad418215Thomas Petazzoni};
6699d6455b8ecbc7d29e279f66cde564998718e0eeSebastian Hesselbarth
67a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni&devbus_bootcs {
68a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	status = "okay";
69a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni
70a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	/* Read parameters */
71a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	devbus,bus-width    = <8>;
72a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	devbus,turn-off-ps  = <90000>;
73a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	devbus,badr-skew-ps = <0>;
74a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	devbus,acc-first-ps = <186000>;
75a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	devbus,acc-next-ps  = <186000>;
76a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni
77a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	/* Write parameters */
78a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	devbus,wr-high-ps  = <90000>;
79a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	devbus,wr-low-ps   = <90000>;
80a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	devbus,ale-wr-ps   = <90000>;
81a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni
82a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	/*
83a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	 * Currently the MTD code does not recognize the MX29LV400CBCT
84a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	 * as a bottom-type device. This could cause risks of
85a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	 * accidentally erasing critical flash sectors. We thus define
86a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	 * a single, write-protected partition covering the whole
87a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	 * flash.  TODO: once the flash part TOP/BOTTOM detection
88a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	 * issue is sorted out in the MTD code, break this into at
89a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	 * least three partitions: 'u-boot code', 'u-boot environment'
90a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	 * and 'whatever is left'.
91a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	 */
92a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	flash@0 {
93a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni		compatible = "cfi-flash";
94a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni		reg = <0 0x80000>;
95a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni		bank-width = <1>;
96a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni		#address-cells = <1>;
97a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni		#size-cells = <1>;
98a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni
99a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni		partition@0 {
100a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni			label = "Full512Kb";
101a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni			reg = <0 0x80000>;
102a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni			read-only;
103a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni		};
104a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni	};
105a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni};
106a54cd73b842b615f1e98bb2aa1b963e17d0ca127Thomas Petazzoni
107a665fce3e7fe1c7d1a77e99293257f2d008b1488Thomas Petazzoni&ehci0 {
108a665fce3e7fe1c7d1a77e99293257f2d008b1488Thomas Petazzoni	status = "okay";
109a665fce3e7fe1c7d1a77e99293257f2d008b1488Thomas Petazzoni};
110a665fce3e7fe1c7d1a77e99293257f2d008b1488Thomas Petazzoni
1117e0878fccc0954f1a4f63da05f9ecaa390bd1c12Thomas Petazzoni&eth {
1127e0878fccc0954f1a4f63da05f9ecaa390bd1c12Thomas Petazzoni	status = "okay";
1137e0878fccc0954f1a4f63da05f9ecaa390bd1c12Thomas Petazzoni
1147e0878fccc0954f1a4f63da05f9ecaa390bd1c12Thomas Petazzoni	ethernet-port@0 {
1157e0878fccc0954f1a4f63da05f9ecaa390bd1c12Thomas Petazzoni		phy-handle = <&ethphy>;
1167e0878fccc0954f1a4f63da05f9ecaa390bd1c12Thomas Petazzoni	};
1177e0878fccc0954f1a4f63da05f9ecaa390bd1c12Thomas Petazzoni};
1187e0878fccc0954f1a4f63da05f9ecaa390bd1c12Thomas Petazzoni
11939eabec14c05ec67e9afe56711b040728de1d533Thomas Petazzoni&i2c {
12039eabec14c05ec67e9afe56711b040728de1d533Thomas Petazzoni	status = "okay";
12139eabec14c05ec67e9afe56711b040728de1d533Thomas Petazzoni	clock-frequency = <100000>;
12239eabec14c05ec67e9afe56711b040728de1d533Thomas Petazzoni	#address-cells = <1>;
12339eabec14c05ec67e9afe56711b040728de1d533Thomas Petazzoni
12439eabec14c05ec67e9afe56711b040728de1d533Thomas Petazzoni	rtc@32 {
12539eabec14c05ec67e9afe56711b040728de1d533Thomas Petazzoni		compatible = "ricoh,rs5c372a";
12639eabec14c05ec67e9afe56711b040728de1d533Thomas Petazzoni		reg = <0x32>;
12739eabec14c05ec67e9afe56711b040728de1d533Thomas Petazzoni		interrupt-parent = <&gpio0>;
12839eabec14c05ec67e9afe56711b040728de1d533Thomas Petazzoni		interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
12939eabec14c05ec67e9afe56711b040728de1d533Thomas Petazzoni	};
13039eabec14c05ec67e9afe56711b040728de1d533Thomas Petazzoni};
13139eabec14c05ec67e9afe56711b040728de1d533Thomas Petazzoni
13299d6455b8ecbc7d29e279f66cde564998718e0eeSebastian Hesselbarth&mdio {
13399d6455b8ecbc7d29e279f66cde564998718e0eeSebastian Hesselbarth	status = "okay";
13499d6455b8ecbc7d29e279f66cde564998718e0eeSebastian Hesselbarth
13599d6455b8ecbc7d29e279f66cde564998718e0eeSebastian Hesselbarth	ethphy: ethernet-phy {
13699d6455b8ecbc7d29e279f66cde564998718e0eeSebastian Hesselbarth		reg = <8>;
13799d6455b8ecbc7d29e279f66cde564998718e0eeSebastian Hesselbarth	};
13899d6455b8ecbc7d29e279f66cde564998718e0eeSebastian Hesselbarth};
13999d6455b8ecbc7d29e279f66cde564998718e0eeSebastian Hesselbarth
14043be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni&pinctrl {
14143be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni	pinctrl-0 = <&pmx_rtc &pmx_power_led_ctrl>;
14243be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni	pinctrl-names = "default";
14343be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni
14443be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni	pmx_power_button: pmx-power-button {
14543be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni		marvell,pins = "mpp18";
14643be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni		marvell,function = "gpio";
14743be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni	};
14843be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni
14943be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni	pmx_power_led: pmx-power-led {
15043be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni		marvell,pins = "mpp16";
15143be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni		marvell,function = "gpio";
15243be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni	};
15343be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni
15443be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni	pmx_power_led_ctrl: pmx-power-led-ctrl {
15543be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni		marvell,pins = "mpp17";
15643be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni		marvell,function = "gpio";
15743be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni	};
15843be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni
15943be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni	pmx_rtc: pmx-rtc {
16043be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni		marvell,pins = "mpp3";
16143be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni		marvell,function = "gpio";
16243be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni	};
16343be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni};
16443be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni
1657e0878fccc0954f1a4f63da05f9ecaa390bd1c12Thomas Petazzoni&sata {
16643be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni	pinctrl-0 = <&pmx_sata0 &pmx_sata1>;
16743be7e02f634422f105217e82559e3b716b3351dThomas Petazzoni	pinctrl-names = "default";
16899d6455b8ecbc7d29e279f66cde564998718e0eeSebastian Hesselbarth	status = "okay";
1697e0878fccc0954f1a4f63da05f9ecaa390bd1c12Thomas Petazzoni	nr-ports = <2>;
1707e0878fccc0954f1a4f63da05f9ecaa390bd1c12Thomas Petazzoni};
17199d6455b8ecbc7d29e279f66cde564998718e0eeSebastian Hesselbarth
1727e0878fccc0954f1a4f63da05f9ecaa390bd1c12Thomas Petazzoni&uart0 {
1737e0878fccc0954f1a4f63da05f9ecaa390bd1c12Thomas Petazzoni	status = "okay";
17499d6455b8ecbc7d29e279f66cde564998718e0eeSebastian Hesselbarth};
175