/* Copyright (c) 2015, The Linux Foundation. All rights reserved. * Copyright (c) 2018, David Bauer <mail@david-bauer.net> * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * */ #include "qcom-ipq4019.dtsi" #include "qcom-ipq4019-bus.dtsi" #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/input/input.h> #include <dt-bindings/soc/qcom,tcsr.h> / { model = "Netgear EX61X0v2"; compatible = "netgear,ex61x0v2", "qcom,ipq4019"; soc { mdio@90000 { status = "okay"; }; ess-psgmii@98000 { status = "okay"; }; tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>; }; ess_tcsr@1953000 { compatible = "qcom,tcsr"; reg = <0x1953000 0x1000>; qcom,ess-interface-select = <TCSR_ESS_PSGMII>; }; tcsr@1957000 { compatible = "qcom,tcsr"; reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>; }; serial@78af000 { pinctrl-0 = <&serial_pins>; pinctrl-names = "default"; status = "okay"; }; crypto@8e3a000 { status = "okay"; }; watchdog@b017000 { status = "okay"; }; ess-switch@c000000 { status = "okay"; }; edma@c080000 { status = "okay"; qcom,num_gmac = <1>; }; }; aliases { led-boot = &power_amber; led-failsafe = &power_amber; led-running = &power_green; led-upgrade = &power_amber; }; gpio-keys { compatible = "gpio-keys"; wps { label = "wps"; gpios = <&tlmm 0 GPIO_ACTIVE_LOW>; linux,code = <KEY_WPS_BUTTON>; }; reset { label = "reset"; gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; linux,code = <KEY_RESTART>; }; }; led_spi { compatible = "spi-gpio"; #address-cells = <1>; #size-cells = <0>; gpio-sck = <&tlmm 5 GPIO_ACTIVE_HIGH>; gpio-mosi = <&tlmm 4 GPIO_ACTIVE_HIGH>; num-chipselects = <0>; led_gpio: led_gpio@0 { compatible = "fairchild,74hc595"; reg = <0>; gpio-controller; #gpio-cells = <2>; registers-number = <1>; spi-max-frequency = <1000000>; }; }; gpio-leds { compatible = "gpio-leds"; power_amber: power_amber { label = "ex61x0v2:amber:power"; gpios = <&led_gpio 7 GPIO_ACTIVE_LOW>; }; power_green: power_green { label = "ex61x0v2:green:power"; gpios = <&led_gpio 6 GPIO_ACTIVE_LOW>; }; right { label = "ex61x0v2:blue:right"; gpios = <&led_gpio 5 GPIO_ACTIVE_LOW>; }; left { label = "ex61x0v2:blue:left"; gpios = <&led_gpio 4 GPIO_ACTIVE_LOW>; }; client_green { label = "ex61x0v2:green:client"; gpios = <&led_gpio 3 GPIO_ACTIVE_LOW>; }; client_red { label = "ex61x0v2:red:client"; gpios = <&led_gpio 2 GPIO_ACTIVE_LOW>; }; router_green { label = "ex61x0v2:green:router"; gpios = <&led_gpio 1 GPIO_ACTIVE_LOW>; }; router_red { label = "ex61x0v2:red:router"; gpios = <&led_gpio 0 GPIO_ACTIVE_LOW>; }; wps { label = "ex61x0v2:green:wps"; gpios = <&tlmm 1 GPIO_ACTIVE_LOW>; }; }; }; &tlmm { serial_pins: serial_pinmux { mux { pins = "gpio60", "gpio61"; function = "blsp_uart0"; bias-disable; }; }; spi_0_pins: spi_0_pinmux { pin { function = "blsp_spi0"; pins = "gpio55", "gpio56", "gpio57"; drive-strength = <12>; bias-disable; }; pin_cs { function = "gpio"; pins = "gpio54"; drive-strength = <2>; bias-disable; output-high; }; }; }; &spi_0 { pinctrl-0 = <&spi_0_pins>; pinctrl-names = "default"; status = "okay"; cs-gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; mx25l12805d@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <24000000>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; partition0@0 { label = "SBL1"; reg = <0x00000000 0x00040000>; read-only; }; partition1@40000 { label = "MIBIB"; reg = <0x00040000 0x00020000>; read-only; }; partition2@60000 { label = "QSEE"; reg = <0x00060000 0x00060000>; read-only; }; partition3@c0000 { label = "CDT"; reg = <0x000c0000 0x00010000>; read-only; }; partition4@d0000 { label = "DDRPARAMS"; reg = <0x000d0000 0x00010000>; read-only; }; partition5@E0000 { label = "APPSBLENV"; reg = <0x000e0000 0x00010000>; read-only; }; partition6@F0000 { label = "APPSBL"; reg = <0x000f0000 0x00080000>; read-only; }; partition7@170000 { label = "ART"; reg = <0x00170000 0x00010000>; read-only; }; partition8@180000 { label = "config"; reg = <0x00180000 0x00010000>; read-only; }; partition9@190000 { label = "pot"; reg = <0x00190000 0x00010000>; read-only; }; partition10@1a0000 { label = "dnidata"; reg = <0x001a0000 0x00010000>; read-only; }; partition11@1b0000 { label = "firmware"; reg = <0x001b0000 0x00e10000>; }; partition12@fc0000 { label = "language"; reg = <0x00fc0000 0x00040000>; read-only; }; }; }; }; &blsp_dma { status = "okay"; }; &cryptobam { status = "okay"; }; &wifi0 { status = "okay"; }; &wifi1 { status = "okay"; };