/dts-v1/; /* * Copyright (c) 2017, The Linux Foundation. All rights reserved. * * 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-ipq807x-soc.dtsi" #include "qcom-ipq807x-audio.dtsi" #include "qcom-ipq807x-hk-cpu.dtsi" #include "qcom-ipq807x-avm-common.dtsi" #include "../../../../include/linux/avm_hw_config_def.h" / { model = "AVM FRITZ!Box 5590"; avm_netdev_map { compatible = "avm,port_netdev"; lan1 { netdev = "eth0"; }; lan2 { netdev = "eth1"; }; lan3 { netdev = "eth2"; }; lan4 { netdev = "eth3"; }; wan { netdev = "wan"; wanport; }; }; avm-rt-framework { compatible = "avm,rt_framework"; ipi-gic-sgi = <9>, <10>, <11>, <12>, <13>, <14>; }; isc { compatible = "avm,inter-soc-communication", "avm,gpio-aggregator"; gpios = <&tlmm 14 GPIO_ACTIVE_HIGH>, <&tlmm 56 GPIO_ACTIVE_HIGH>, <&tlmm 57 GPIO_ACTIVE_LOW>; gpio-line-names = "urlader_rdy", "fm_alive", "fm_reset"; }; companion-panic { compatible = "avm,companion-panic"; in-gpio = <&tlmm 13 GPIO_ACTIVE_HIGH>; /* fm_panic */ out-gpio = <&tlmm 11 GPIO_ACTIVE_HIGH>; /* hk_panic */ avm,sync = <5000>; avm,default-disabled; }; }; &soc { mdio@90000 { #address-cells = <1>; #size-cells = <0>; pinctrl-0 = <&mdio_pins>; pinctrl-names = "default"; phy-reset-gpio = <&tlmm 37 0 &tlmm 43 1>; phy0: ethernet-phy@0 { reg = <0>; }; phy1: ethernet-phy@1 { reg = <1>; }; phy2: ethernet-phy@2 { reg = <2>; }; phy3: ethernet-phy@3 { reg = <3>; }; phy4: ethernet-phy@30 { reg = <30>; }; phy5: ethernet-phy@28 { reg = <28>; }; }; ess-switch@3a000000 { switch_cpu_bmp = <0x1>; /* cpu port bitmap */ switch_lan_bmp = <0x3E>; /* lan port bitmap */ switch_wan_bmp = <0x40>; /* wan port bitmap */ switch_mac_mode = <0x0>; /* mac mode for uniphy instance0 - PORT_WRAPPER_PSGMII (Malibu) */ switch_mac_mode1 = <0xe>; /* mac mode for uniphy instance1 - PORT_WRAPPER_10GBASE_R */ switch_mac_mode2 = <0xf>; /* mac mode for uniphy instance2 - PORT_WRAPPER_SGMII_CHANNEL0 (Napa) */ bm_tick_mode = <0>; /* bm tick mode */ tm_tick_mode = <0>; /* tm tick mode */ sfp_force_speed = <100>; /* force 10G for sfp ports. See SFP_SPEED_10000M in VENDOR */ qcom,port_phyinfo { port@0 { port_id = <1>; phy_address = <0>; }; port@1 { port_id = <2>; phy_address = <1>; }; port@2 { port_id = <3>; phy_address = <2>; }; port@3 { port_id = <4>; phy_address = <3>; }; port@4 { /* dirtect HK to prx */ port_id = <5>; /* address 30 is special for i2c */ phy_address = <30>; phy_i2c_address = <30>; phy-i2c-mode; }; port@5 { /* Napa */ port_id = <6>; phy_address = <28>; port_mac_sel = "QGMAC_PORT"; }; }; }; dp1 { device_type = "network"; compatible = "qcom,nss-dp"; qcom,id = <4>; reg = <0x3a001000 0x200>; qcom,mactype = <0>; /* QCOM GMAC */ local-mac-address = [000000000000]; macname = "maca"; devname = "eth0"; qcom,link-poll = <1>; qcom,phy-mdio-addr = <3>; phy-mode = "sgmii"; }; dp2 { device_type = "network"; compatible = "qcom,nss-dp"; qcom,id = <3>; reg = <0x3a001200 0x200>; qcom,mactype = <0>; local-mac-address = [000000000000]; macname = "macb"; devname = "eth1"; qcom,link-poll = <1>; qcom,phy-mdio-addr = <2>; phy-mode = "sgmii"; }; dp3 { device_type = "network"; compatible = "qcom,nss-dp"; qcom,id = <2>; reg = <0x3a001400 0x200>; qcom,mactype = <0>; local-mac-address = [000000000000]; macname = "usb_rndis_mac"; devname = "eth2"; qcom,link-poll = <1>; qcom,phy-mdio-addr = <1>; phy-mode = "sgmii"; }; dp4 { device_type = "network"; compatible = "qcom,nss-dp"; qcom,id = <1>; reg = <0x3a001600 0x200>; qcom,mactype = <0>; local-mac-address = [000000000000]; macname = "usb_board_mac"; devname = "eth3"; qcom,link-poll = <1>; qcom,phy-mdio-addr = <0>; phy-mode = "sgmii"; }; dp5 { /* HK <-> PRX, no PHY */ device_type = "network"; compatible = "qcom,nss-dp"; qcom,id = <5>; reg = <0x3a003000 0x3fff>; qcom,mactype = <1>; local-mac-address = [1CED6F8C44B7]; /* AVM/TMA: Assigned via JZ-107264 */ devname = "wanmodem"; qcom,link-poll = <1>; qcom,phy-mdio-addr = <30>; phy-mode = "sgmii"; }; dp6 { /* Napa */ device_type = "network"; /* Not used? */ compatible = "qcom,nss-dp"; qcom,id = <6>; /* MAC port */ reg = <0x3a007000 0x3fff>; qcom,mactype = <1>; /* Third party 10G/XGMAC */ local-mac-address = [000000000000]; /* TODO: Fix urlader env name? */ macname = "macdsl"; devname = "wan"; qcom,link-poll = <1>; qcom,phy-mdio-addr = <28>; phy-mode = "sgmii"; /* Not used? */ }; pwm: pwm { #pwm-cells = <3>; pinctrl-0 = <&pwm_pins>; pinctrl-names = "default"; used-pwm-indices = <1>, <0>, <0>, <0>; status = "ok"; }; }; &tlmm { pwm_pins: pwm_pinmux { mux_1 { pins = "gpio21"; function = "pwm00"; drive-strength = <8>; }; }; avm_led_pins: avm_led_pins { mux { pins = "gpio1", "gpio3", "gpio15", "gpio41", "gpio42", "gpio44", "gpio40", "gpio46", "gpio50"; function = "gpio"; drive-strength = <2>; bias-disable; }; }; hsuart_pins: hsuart_pins { mux { pins = "gpio47", "gpio48", "gpio49"; function = "blsp2_uart"; drive-strength = <8>; bias-disable; }; }; }; &serial_blsp4 { pinctrl-0 = <&uart_pins>; pinctrl-names = "default"; status = "ok"; }; &serial_blsp2 { pinctrl-0 = <&hsuart_pins>; pinctrl-names = "default"; status = "ok"; }; &serial_blsp5 { pinctrl-0 = <&uart5_pins>; pinctrl-1 = <&uart5_rx_only_pins>; pinctrl-names = "default", "avm,rx-only"; status = "ok"; }; &serial_blsp3 { pinctrl-0 = <&uart3_pins>; pinctrl-names = "default"; status = "ok"; }; #ifndef __IPQ_MEM_PROFILE_256_MB__ &nss_crypto { status = "ok"; }; #endif &msm_imem { status = "disabled"; }; &ssphy_0 { qcom,emulation = <1>; status = "ok"; }; &qusb_phy_0 { qcom,emulation = <1>; status = "ok"; }; &ssphy_1 { qcom,emulation = <1>; status = "ok"; }; &qusb_phy_1 { qcom,emulation = <1>; status = "ok"; }; &usb3_0 { status = "ok"; }; &usb3_1 { status = "ok"; }; &cryptobam { status = "ok"; }; &crypto { status = "ok"; }; &i2c_0 { pinctrl-0 = <&i2c_0_pins>; pinctrl-names = "default"; status = "disabled"; }; &i2c_1 { status = "disabled"; }; &sdhc_1 { qcom,clk-rates = <400000 25000000 50000000 100000000 \ 192000000 384000000>; qcom,bus-speed-mode = "HS400_1p8v", "HS200_1p8v", "DDR_1p8v"; qcom,nonremovable; status = "ok"; }; &qpic_bam { status = "ok"; }; &nand { pinctrl-0 = <&qpic_pins>; pinctrl-names = "default"; status = "disabled"; }; &sdhc_2 { qcom,clk-rates = <400000 25000000 50000000 100000000 \ 192000000>; qcom,bus-speed-mode = "HS200_1p8v", "DDR_1p8v"; pinctrl-0 = <&sd_pins>; pinctrl-names = "default"; cd-gpios = <&tlmm 63 1>; sd-ldo-gpios = <&tlmm 21 0>; vqmmc-supply = <&ldo11>; status = "ok"; }; &mdio_pins { /* PHY reset pins need to be open drain. */ rst { pins = "gpio37", "gpio43"; function = "gpio"; bias-disable; }; }; &qcom_q6v5_wcss { qcom,nosecure; }; &pcie0 { status = "disabled"; }; &pcie1 { status = "disabled"; };