armada-370-netgear-rn104.dts 5.3 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13
/*
 * Device Tree file for NETGEAR ReadyNAS 104
 *
 * Copyright (C) 2013, Arnaud EBALARD <arno@natisbad.org>
 *
 * 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; either version
 * 2 of the License, or (at your option) any later version.
 */

/dts-v1/;

14
#include <dt-bindings/input/input.h>
15
#include <dt-bindings/gpio/gpio.h>
16
#include "armada-370.dtsi"
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56

/ {
	model = "NETGEAR ReadyNAS 104";
	compatible = "netgear,readynas-104", "marvell,armada370", "marvell,armada-370-xp";

	chosen {
		bootargs = "console=ttyS0,115200 earlyprintk";
	};

	memory {
		device_type = "memory";
		reg = <0x00000000 0x20000000>; /* 512 MB */
	};

	soc {
		ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000
			  MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>;

		pcie-controller {
			status = "okay";

			/* Connected to FL1009 USB 3.0 controller */
			pcie@1,0 {
				/* Port 0, Lane 0 */
				status = "okay";
			};

			/* Connected to Marvell 88SE9215 SATA controller */
			pcie@2,0 {
				/* Port 1, Lane 0 */
				status = "okay";
			};
		};

		internal-regs {
			serial@12000 {
				status = "okay";
			};

			mdio {
57 58
				pinctrl-0 = <&mdio_pins>;
				pinctrl-names = "default";
59
				phy0: ethernet-phy@0 { /* Marvell 88E1318 */
60 61 62
					reg = <0>;
				};

63
				phy1: ethernet-phy@1 { /* Marvell 88E1318 */
64 65 66 67 68
					reg = <1>;
				};
			};

			ethernet@70000 {
69 70
				pinctrl-0 = <&ge0_rgmii_pins>;
				pinctrl-names = "default";
71 72 73 74 75 76
				status = "okay";
				phy = <&phy0>;
				phy-mode = "rgmii-id";
			};

			ethernet@74000 {
77 78
				pinctrl-0 = <&ge1_rgmii_pins>;
				pinctrl-names = "default";
79 80 81 82 83 84 85 86 87 88 89 90 91 92
				status = "okay";
				phy = <&phy1>;
				phy-mode = "rgmii-id";
			};

			usb@50000 {
				status = "okay";
			};

			i2c@11000 {
				compatible = "marvell,mv64xxx-i2c";
				clock-frequency = <100000>;
				status = "okay";

93
				isl12057: isl12057@68 {
94
					compatible = "isil,isl12057";
95 96 97
					reg = <0x68>;
				};

98 99 100 101 102 103 104 105
				g762: g762@3e {
					compatible = "gmt,g762";
					reg = <0x3e>;
					clocks = <&g762_clk>; /* input clock */
					fan_gear_mode = <0>;
					fan_startv = <1>;
					pwm_polarity = <0>;
				};
106 107 108 109 110 111 112

				pca9554: pca9554@23 {
					compatible = "nxp,pca9554";
					gpio-controller;
					#gpio-cells = <2>;
					reg = <0x23>;
				};
113
			};
114 115 116 117 118 119 120 121

			nand@d0000 {
				status = "okay";
				num-cs = <1>;
				marvell,nand-keep-config;
				marvell,nand-enable-arbiter;
				nand-on-flash-bbt;

122 123 124 125
				/* Use Hardware BCH ECC */
				nand-ecc-strength = <4>;
				nand-ecc-step-size = <512>;

126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153
				partition@0 {
					label = "u-boot";
					reg = <0x0000000 0x180000>;  /* 1.5MB */
					read-only;
				};

				partition@180000 {
					label = "u-boot-env";
					reg = <0x180000 0x20000>;    /* 128KB */
					read-only;
				};

				partition@200000 {
					label = "uImage";
					reg = <0x0200000 0x600000>;    /* 6MB */
				};

				partition@800000 {
					label = "minirootfs";
					reg = <0x0800000 0x400000>;    /* 4MB */
				};

				/* Last MB is for the BBT, i.e. not writable */
				partition@c00000 {
					label = "ubifs";
					reg = <0x0c00000 0x7400000>; /* 116MB */
				};
			};
154 155 156 157
		};
	};

	clocks {
158
	       g762_clk: g762-oscillator {
159 160 161 162 163 164
			 compatible = "fixed-clock";
			 #clock-cells = <0>;
			 clock-frequency = <8192>;
	       };
	};

165
	gpio-leds {
166 167 168 169
		compatible = "gpio-leds";
		pinctrl-0 = <&backup_led_pin &power_led_pin>;
		pinctrl-names = "default";

170
		blue-backup-led {
171
			label = "rn104:blue:backup";
172
			gpios = <&gpio1 31 GPIO_ACTIVE_HIGH>;
173 174 175
			default-state = "off";
		};

176
		blue-power-led {
177
			label = "rn104:blue:pwr";
178
			gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
179 180
			linux,default-trigger = "keep";
		};
181

182
		blue-sata1-led {
183 184 185 186 187
			label = "rn104:blue:sata1";
			gpios = <&pca9554 0 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

188
		blue-sata2-led {
189 190 191 192 193
			label = "rn104:blue:sata2";
			gpios = <&pca9554 1 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

194
		blue-sata3-led {
195 196 197 198 199
			label = "rn104:blue:sata3";
			gpios = <&pca9554 2 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

200
		blue-sata4-led {
201 202 203 204
			label = "rn104:blue:sata4";
			gpios = <&pca9554 3 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};
205 206
	};

207
	gpio-keys {
208
		compatible = "gpio-keys";
209 210 211
		pinctrl-0 = <&backup_button_pin
			     &power_button_pin
			     &reset_button_pin>;
212 213
		pinctrl-names = "default";

214
		backup-button {
215
			label = "Backup Button";
216 217
			linux,code = <KEY_COPY>;
			gpios = <&gpio1 20 GPIO_ACTIVE_LOW>;
218 219
		};

220
		power-button {
221
			label = "Power Button";
222 223
			linux,code = <KEY_POWER>;
			gpios = <&gpio1 30 GPIO_ACTIVE_HIGH>;
224 225
		};

226
		reset-button {
227
			label = "Reset Button";
228 229
			linux,code = <KEY_RESTART>;
			gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
230 231 232
		};
	};

233
	gpio-poweroff {
234 235 236
		compatible = "gpio-poweroff";
		pinctrl-0 = <&poweroff>;
		pinctrl-names = "default";
237
		gpios = <&gpio1 28 GPIO_ACTIVE_LOW>;
238 239
	};
};
240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271

&pinctrl {
	poweroff: poweroff {
		marvell,pins = "mpp60";
		marvell,function = "gpio";
	};

	backup_button_pin: backup-button-pin {
		marvell,pins = "mpp52";
		marvell,function = "gpio";
	};

	power_button_pin: power-button-pin {
		marvell,pins = "mpp62";
		marvell,function = "gpio";
	};

	backup_led_pin: backup-led-pin {
		marvell,pins = "mpp63";
		marvell,function = "gpo";
	};

	power_led_pin: power-led-pin {
		marvell,pins = "mpp64";
		marvell,function = "gpio";
	};

	reset_button_pin: reset-button-pin {
		marvell,pins = "mpp65";
		marvell,function = "gpio";
	};
};