| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 |
- From 2f08de94f207a4347053e1faa22c9a310c9c61b0 Mon Sep 17 00:00:00 2001
- From: Linus Walleij <[email protected]>
- 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 <[email protected]>
- Signed-off-by: Linus Walleij <[email protected]>
- ---
- 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";
- + };
- + };
- +};
|