diff options
Diffstat (limited to 'target/linux/gemini/patches-4.14/0013-ARM-dts-Add-basic-devicetree-for-D-Link-DNS-313.patch')
-rw-r--r-- | target/linux/gemini/patches-4.14/0013-ARM-dts-Add-basic-devicetree-for-D-Link-DNS-313.patch | 272 |
1 files changed, 272 insertions, 0 deletions
diff --git a/target/linux/gemini/patches-4.14/0013-ARM-dts-Add-basic-devicetree-for-D-Link-DNS-313.patch b/target/linux/gemini/patches-4.14/0013-ARM-dts-Add-basic-devicetree-for-D-Link-DNS-313.patch new file mode 100644 index 0000000000..cdf25a9258 --- /dev/null +++ b/target/linux/gemini/patches-4.14/0013-ARM-dts-Add-basic-devicetree-for-D-Link-DNS-313.patch @@ -0,0 +1,272 @@ +From 2f08de94f207a4347053e1faa22c9a310c9c61b0 Mon Sep 17 00:00:00 2001 +From: Linus Walleij <linus.walleij@linaro.org> +Date: Fri, 17 Nov 2017 16:36:32 +0100 +Subject: [PATCH 13/31] ARM: dts: Add basic devicetree for D-Link DNS-313 + +This adds a basic device tree for the D-Link DNS-313 +NAS enclosure. This device has a thermal sensor and a +fan so we add a thermal zone for the chassis in the +device tree based on information from the product. + +Reviewed-by: Andrew Lunn <andrew@lunn.ch> +Signed-off-by: Linus Walleij <linus.walleij@linaro.org> +--- + arch/arm/boot/dts/Makefile | 1 + + arch/arm/boot/dts/gemini-dlink-dns-313.dts | 241 +++++++++++++++++++++++++++++ + 2 files changed, 242 insertions(+) + create mode 100644 arch/arm/boot/dts/gemini-dlink-dns-313.dts + +--- a/arch/arm/boot/dts/Makefile ++++ b/arch/arm/boot/dts/Makefile +@@ -185,6 +185,7 @@ dtb-$(CONFIG_ARCH_EXYNOS5) += \ + exynos5800-peach-pi.dtb + dtb-$(CONFIG_ARCH_GEMINI) += \ + gemini-dlink-dir-685.dtb \ ++ gemini-dlink-dns-313.dtb \ + gemini-nas4220b.dtb \ + gemini-rut1xx.dtb \ + gemini-sq201.dtb \ +--- /dev/null ++++ b/arch/arm/boot/dts/gemini-dlink-dns-313.dts +@@ -0,0 +1,241 @@ ++// SPDX-License-Identifier: GPL-2.0 ++/* ++ * Device Tree file for D-Link DNS-313 1-Bay Network Storage Enclosure ++ */ ++ ++/dts-v1/; ++ ++#include "gemini.dtsi" ++#include <dt-bindings/input/input.h> ++#include <dt-bindings/thermal/thermal.h> ++ ++/ { ++ model = "D-Link DNS-313 1-Bay Network Storage Enclosure"; ++ compatible = "dlink,dir-313", "cortina,gemini"; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ memory { ++ /* 64 MB SDRAM in a Nanya NT5DS32M16BS-6K package */ ++ device_type = "memory"; ++ reg = <0x00000000 0x4000000>; ++ }; ++ ++ aliases { ++ mdio-gpio0 = &mdio0; ++ }; ++ ++ chosen { ++ stdout-path = "uart0:19200n8"; ++ }; ++ ++ 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 = <&gpio1 31 GPIO_ACTIVE_LOW>; ++ }; ++ }; ++ ++ leds { ++ compatible = "gpio-leds"; ++ led-power { ++ label = "dns313:blue:power"; ++ gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>; ++ default-state = "on"; ++ linux,default-trigger = "heartbeat"; ++ }; ++ led-disk-blue { ++ label = "dns313:blue:disk"; ++ gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>; ++ default-state = "off"; ++ }; ++ led-disk-green { ++ label = "dns313:green:disk"; ++ gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>; ++ default-state = "off"; ++ linux,default-trigger = "ide-disk"; ++ /* Ideally should activate while reading */ ++ }; ++ led-disk-red { ++ label = "dns313:red:disk"; ++ gpios = <&gpio0 4 GPIO_ACTIVE_HIGH>; ++ default-state = "off"; ++ /* Ideally should activate while writing */ ++ }; ++ }; ++ ++ /* ++ * This is a ADDA AD0405GB-G73 fan @3000 and 6000 RPM. ++ */ ++ fan0: gpio-fan { ++ compatible = "gpio-fan"; ++ gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>, ++ <&gpio0 12 GPIO_ACTIVE_HIGH>; ++ gpio-fan,speed-map = <0 0>, <3000 1>, <6000 2>; ++ cooling-min-level = <0>; ++ cooling-max-level = <2>; ++ #cooling-cells = <2>; ++ }; ++ ++ ++ /* Global Mixed-Mode Technology G751 mounted on GPIO I2C */ ++ gpio-i2c { ++ compatible = "i2c-gpio"; ++ sda-gpios = <&gpio0 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; ++ scl-gpios = <&gpio0 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ g751: temperature-sensor@48 { ++ compatible = "gmt,g751"; ++ reg = <0x48>; ++ #thermal-sensor-cells = <0>; ++ }; ++ }; ++ ++ thermal-zones { ++ chassis-thermal { ++ /* Poll every 20 seconds */ ++ polling-delay = <20000>; ++ /* Poll every 2nd second when cooling */ ++ polling-delay-passive = <2000>; ++ ++ thermal-sensors = <&g751>; ++ ++ /* Tripping points from the fan.script in the rootfs */ ++ trips { ++ chassis_alert0: chassis-alert0 { ++ /* At 43 degrees turn on low speed */ ++ temperature = <43000>; ++ hysteresis = <3000>; ++ type = "active"; ++ }; ++ chassis_alert1: chassis-alert1 { ++ /* At 47 degrees turn on high speed */ ++ temperature = <47000>; ++ hysteresis = <3000>; ++ type = "active"; ++ }; ++ chassis_crit: chassis-crit { ++ /* Just shut down at 60 degrees */ ++ temperature = <60000>; ++ hysteresis = <2000>; ++ type = "critical"; ++ }; ++ }; ++ ++ cooling-maps { ++ map0 { ++ trip = <&chassis_alert0>; ++ cooling-device = <&fan0 1 1>; ++ }; ++ map1 { ++ trip = <&chassis_alert1>; ++ cooling-device = <&fan0 2 2>; ++ }; ++ }; ++ }; ++ }; ++ ++ mdio0: ethernet-phy { ++ compatible = "virtual,mdio-gpio"; ++ /* Uses MDC and MDIO */ ++ gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>, /* MDC */ ++ <&gpio0 21 GPIO_ACTIVE_HIGH>; /* MDIO */ ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ /* This is a Realtek RTL8211B Gigabit ethernet transceiver */ ++ phy0: ethernet-phy@1 { ++ reg = <1>; ++ device_type = "ethernet-phy"; ++ }; ++ }; ++ ++ soc { ++ flash@30000000 { ++ status = "okay"; ++ /* 512KB of flash */ ++ reg = <0x30000000 0x00080000>; ++ ++ /* ++ * This "RedBoot" is the Storlink derivative. ++ */ ++ partition@0 { ++ label = "RedBoot"; ++ reg = <0x00000000 0x00040000>; ++ read-only; ++ }; ++ partition@40000 { ++ label = "MTD1"; ++ reg = <0x00040000 0x00020000>; ++ read-only; ++ }; ++ partition@60000 { ++ label = "MTD2"; ++ reg = <0x00060000 0x00020000>; ++ read-only; ++ }; ++ }; ++ ++ syscon: syscon@40000000 { ++ pinctrl { ++ /* ++ */ ++ gpio0_default_pins: pinctrl-gpio0 { ++ mux { ++ function = "gpio0"; ++ groups = ++ /* Used by LEDs conflicts ICE */ ++ "gpio0bgrp", ++ /* Used by ? conflicts ICE */ ++ "gpio0cgrp", ++ /* ++ * Used by fan & G751, conflicts LPC, ++ * UART modem lines, SSP ++ */ ++ "gpio0egrp", ++ /* Used by G751 */ ++ "gpio0fgrp", ++ /* Used by MDIO */ ++ "gpio0igrp"; ++ }; ++ }; ++ gpio1_default_pins: pinctrl-gpio1 { ++ mux { ++ function = "gpio1"; ++ /* Used by "reset" button */ ++ groups = "gpio1dgrp"; ++ }; ++ }; ++ }; ++ }; ++ ++ sata: sata@46000000 { ++ /* The ROM uses this muxmode */ ++ cortina,gemini-ata-muxmode = <3>; ++ 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>; ++ }; ++ ++ ata@63000000 { ++ status = "okay"; ++ }; ++ }; ++}; |