| /* |
| * 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"; |
| /* Collides with LPC_LAD[0], UART DCD, SSP 97RST */ |
| gpios = <&gpio0 8 GPIO_ACTIVE_LOW>; |
| }; |
| button-eject { |
| debounce_interval = <50>; |
| wakeup-source; |
| linux,code = <KEY_EJECTCD>; |
| label = "unmount"; |
| /* Collides with LPC LFRAME, UART RTS, SSP TXD */ |
| gpios = <&gpio0 13 GPIO_ACTIVE_LOW>; |
| }; |
| }; |
| |
| leds { |
| compatible = "gpio-leds"; |
| led-wps { |
| label = "dir685:blue:WPS"; |
| /* Collides with ICE */ |
| 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"; |
| /* Collides with LPC_SERIRQ, UART DTR, SSP FSC pins */ |
| gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>; |
| default-state = "off"; |
| }; |
| led-orange-hd { |
| label = "dir685:orange:HD"; |
| /* Collides with LPC_LAD[2], UART DSR, SSP ECLK pins */ |
| 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"; |
| /* Collides with IDE */ |
| 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"; |
| /* Collides with ICE */ |
| 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>; |
| /* Collides with NAND flash */ |
| 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; |
| }; |
| /* |
| * This firmware image contains the kernel catenated |
| * with the squashfs root filesystem. For some reason |
| * this is called "upgrade" on the vendor system. |
| */ |
| partition@40000 { |
| label = "upgrade"; |
| reg = <0x00040000 0x01f40000>; |
| read-only; |
| }; |
| /* RGDB, Residental Gateway Database? */ |
| 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; |
| }; |
| }; |
| |
| syscon: syscon@40000000 { |
| pinctrl { |
| /* |
| * gpio0bgrp cover line 5, 6 used by TK I2C |
| * gpio0bgrp cover line 7 used by WPS LED |
| * gpio0cgrp cover line 8, 13 used by keys |
| * and 11, 12 used by the HD LEDs |
| * gpio0egrp cover line 16 used by VDISP |
| * gpio0fgrp cover line 17 used by TK IRQ |
| * gpio0ggrp cover line 20 used by panel CS |
| * gpio0hgrp cover line 21,22 used by RTL8366RB |
| */ |
| gpio0_default_pins: pinctrl-gpio0 { |
| mux { |
| function = "gpio0"; |
| groups = "gpio0bgrp", |
| "gpio0cgrp", |
| "gpio0egrp", |
| "gpio0fgrp", |
| "gpio0ggrp", |
| "gpio0hgrp"; |
| }; |
| }; |
| /* |
| * gpio1bgrp cover line 5,8,7 used by panel SPI |
| * also line 6 used by the fan |
| * |
| */ |
| gpio1_default_pins: pinctrl-gpio1 { |
| mux { |
| function = "gpio1"; |
| groups = "gpio1bgrp"; |
| }; |
| }; |
| }; |
| }; |
| |
| sata: sata@46000000 { |
| cortina,gemini-ata-muxmode = <0>; |
| cortina,gemini-enable-sata-bridge; |
| status = "okay"; |
| }; |
| |
| gpio0: gpio@4d000000 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&gpio0_default_pins>; |
| }; |
| |
| gpio1: gpio@4e000000 { |
| pinctrl-names = "default"; |
| pinctrl-0 = <&gpio1_default_pins>; |
| }; |
| |
| 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"; |
| }; |
| }; |
| }; |