gemini-dlink-dir-685.dts 4.3 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 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 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
/*
 * Device Tree file for D-Link DIR-685 Xtreme N Storage Router
 */

/dts-v1/;

#include "gemini.dtsi"
#include <dt-bindings/input/input.h>

/ {
	model = "D-Link DIR-685 Xtreme N Storage Router";
	compatible = "dlink,dir-685", "cortina,gemini";
	#address-cells = <1>;
	#size-cells = <1>;

	memory {
		/* 128 MB SDRAM in 2 x Hynix HY5DU121622DTP-D43 */
		device_type = "memory";
		reg = <0x00000000 0x8000000>;
	};

	chosen {
		stdout-path = "uart0:115200n8";
	};

	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;
		button-esc {
			debounce_interval = <50>;
			wakeup-source;
			linux,code = <KEY_ESC>;
			label = "reset";
			gpios = <&gpio0 8 GPIO_ACTIVE_LOW>;
		};
		button-eject {
			debounce_interval = <50>;
			wakeup-source;
			linux,code = <KEY_EJECTCD>;
			label = "unmount";
			gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
		};
	};

	leds {
		compatible = "gpio-leds";
		led-wps {
			label = "dir685:blue:WPS";
			gpios = <&gpio0 7 GPIO_ACTIVE_LOW>;
			default-state = "on";
			linux,default-trigger = "heartbeat";
		};
		/*
		 * These two LEDs are on the side of the device.
		 * For electrical reasons, both LEDs cannot be active
		 * at the same time so only blue or orange can on at
		 * one time. Enabling both makes the LED go dark.
		 * The LEDs both sit inside the unmount button and the
		 * label on the case says "unmount".
		 */
		led-blue-hd {
			label = "dir685:blue:HD";
			gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};
		led-orange-hd {
			label = "dir685:orange:HD";
			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};
	};

	/*
	 * This is a Sunon Maglev GM0502PFV2-8 cooling fan @10000 RPM.
	 * Since the platform has no temperature sensor, this is controlled
	 * from userspace by using the hard disks S.M.A.R.T. temperature
	 * sensor. It is turned on when the temperature exceeds 46 degrees
	 * and turned off when the temperatures goes below 41 degrees
	 * (celsius).
	 */
	gpio-fan {
		compatible = "gpio-fan";
		gpios = <&gpio1 6 GPIO_ACTIVE_HIGH>;
		gpio-fan,speed-map = <0 0>, <10000 1>;
		#cooling-cells = <2>;
	};

	/*
	 * The touchpad input is connected to a GPIO bit-banged
	 * I2C bus.
	 */
	gpio-i2c {
		compatible = "i2c-gpio";
		gpios = <&gpio0 5 0>, /* SDA */
			<&gpio0 6 0>; /* SCL */
		#address-cells = <1>;
		#size-cells = <0>;

		touchkeys@26 {
			compatible = "dlink,dir685-touchkeys";
			reg = <0x26>;
			interrupt-parent = <&gpio0>;
			interrupts = <17 IRQ_TYPE_EDGE_FALLING>;
		};
	};

	soc {
		flash@30000000 {
			status = "okay";
			/* 32MB of flash */
			reg = <0x30000000 0x02000000>;

			/*
			 * This "RedBoot" is the Storlink derivative.
			 */
			partition@0 {
				label = "RedBoot";
				reg = <0x00000000 0x00040000>;
				read-only;
			};
			/*
			 * Between the boot loader and the rootfs is the kernel
			 * in a custom Storlink format flashed from the boot
			 * menu. The rootfs is in squashfs format.
			 */
			partition@1800c0 {
				label = "rootfs";
				reg = <0x001800c0 0x01dbff40>;
				read-only;
			};
			partition@1f40000 {
				label = "upgrade";
				reg = <0x01f40000 0x00040000>;
				read-only;
			};
			partition@1f80000 {
				label = "rgdb";
				reg = <0x01f80000 0x00040000>;
				read-only;
			};
			/*
			 * This partition contains MAC addresses for WAN,
			 * WLAN and LAN, and the country code (for wireless
			 * I guess).
			 */
			partition@1fc0000 {
				label = "nvram";
				reg = <0x01fc0000 0x00020000>;
				read-only;
			};
			partition@1fe0000 {
				label = "LangPack";
				reg = <0x01fe0000 0x00020000>;
				read-only;
			};
		};

		sata: sata@46000000 {
			cortina,gemini-ata-muxmode = <0>;
			cortina,gemini-enable-sata-bridge;
			status = "okay";
		};

		pci@50000000 {
			status = "okay";
			interrupt-map-mask = <0xf800 0 0 7>;
			interrupt-map =
				<0x4800 0 0 1 &pci_intc 0>, /* Slot 9 */
				<0x4800 0 0 2 &pci_intc 1>,
				<0x4800 0 0 3 &pci_intc 2>,
				<0x4800 0 0 4 &pci_intc 3>,
				<0x5000 0 0 1 &pci_intc 1>, /* Slot 10 */
				<0x5000 0 0 2 &pci_intc 2>,
				<0x5000 0 0 3 &pci_intc 3>,
				<0x5000 0 0 4 &pci_intc 0>,
				<0x5800 0 0 1 &pci_intc 2>, /* Slot 11 */
				<0x5800 0 0 2 &pci_intc 3>,
				<0x5800 0 0 3 &pci_intc 0>,
				<0x5800 0 0 4 &pci_intc 1>,
				<0x6000 0 0 1 &pci_intc 3>, /* Slot 12 */
				<0x6000 0 0 2 &pci_intc 0>,
				<0x6000 0 0 3 &pci_intc 1>,
				<0x6000 0 0 4 &pci_intc 2>;
		};

		ata@63000000 {
			status = "okay";
		};
	};
};