/* Copyright (c) 2015, 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 "Fritz_qcom-ipq4019.dtsi" #include "qcom-ipq4019-audio.dtsi" #include "../../../../include/linux/avm_hw_config_def.h" / { model = "AVM FRITZ!Repeater 1200"; compatible = "qcom,ipq4019"; avm-hw-revision{ compatible = "avm,avm_hw_revision"; revision = "244"; subrevision = "1"; }; soc { #address-cells = <1>; #size-cells = <1>; vccq_sd0: regulator@0 { status = "ok"; }; pinctrl@0x01000000 { mdio_pins: mdio_pinmux { mux_1 { pins = "gpio6"; function = "mdio0"; bias-bus-hold; }; mux_2 { pins = "gpio7"; function = "mdc"; bias-bus-hold; }; }; qpic_nand_pins: qpic_pinmux { qpic_pad { pins = "gpio53", "gpio55", "gpio56", "gpio62", "gpio63", "gpio69"; function = "qpic_pad"; bias-disable; }; qpic_pad0 { pins = "gpio67"; function = "qpic_pad0"; bias-disable; }; qpic_pad1 { pins = "gpio64"; function = "qpic_pad1"; bias-disable; }; qpic_pad2 { pins = "gpio65"; function = "qpic_pad2"; bias-disable; }; qpic_pad3 { pins = "gpio66"; function = "qpic_pad3"; bias-disable; }; qpic_pad4 { pins = "gpio57"; function = "qpic_pad4"; bias-disable; }; qpic_pad5 { pins = "gpio58"; function = "qpic_pad5"; bias-disable; }; qpic_pad6 { pins = "gpio59"; function = "qpic_pad6"; bias-disable; }; qpic_pad7 { pins = "gpio60"; function = "qpic_pad7"; bias-disable; }; }; rgmii_pins: rgmii_pinmux { rgmii0_22{ pins = "gpio22"; function = "rgmii0"; bias-bus-hold; drive-strength = <16>; bias-pull-up; }; rgmii1_23 { pins = "gpio23"; function = "rgmii1"; bias-bus-hold; drive-strength = <16>; bias-pull-up; }; rgmii2_24 { pins = "gpio24"; function = "rgmii2"; bias-bus-hold; drive-strength = <16>; bias-pull-up; }; rgmii3_25 { pins = "gpio25"; function = "rgmii3"; bias-bus-hold; drive-strength = <16>; bias-pull-up; }; rgmii_rx_26 { pins = "gpio26"; function = "rgmii_rx"; bias-bus-hold; drive-strength = <16>; bias-pull-up; }; rgmii_txc_27 { pins = "gpio27"; function = "rgmii_txc"; bias-bus-hold; drive-strength = <16>; bias-pull-up; }; rgmii0_28 { pins = "gpio28"; function = "rgmii0"; bias-bus-hold; drive-strength = <16>; bias-pull-up; }; rgmii1_29 { pins = "gpio29"; function = "rgmii1"; bias-bus-hold; drive-strength = <16>; bias-pull-up; }; rgmii2_30 { pins = "gpio30"; function = "rgmii2"; bias-bus-hold; drive-strength = <16>; bias-pull-up; }; rgmii3_31 { pins = "gpio31"; function = "rgmii3"; bias-bus-hold; drive-strength = <16>; bias-pull-up; }; rgmii_rxc_32 { pins = "gpio32"; function = "rgmii_rxc"; bias-bus-hold; drive-strength = <16>; bias-pull-up; }; rgmii_tx_33 { pins = "gpio33"; function = "rgmii_tx"; bias-bus-hold; drive-strength = <16>; bias-pull-up; }; }; serial_pins: serial_pinmux { mux { pins = "gpio16", "gpio17"; }; }; }; qcom: ledc@1937000 { status = "disable"; }; qpic_bam: dma@7984000 { status = "ok"; }; nand: qpic-nand@79b0000 { status = "ok"; nandcs@0 { compatible = "qcom,nandcs", "avm,nand_partitions"; }; /* Partitionen werden vom Urlader eingetragen */ /* kernel { label = "kernel"; reg = <0x00B00000 0x00400000>; }; urlader { label = "urlader"; reg = <0x00000000 0x002C0000>; }; nand-tffs { label = "nand-tffs"; reg = <0x002C0000 0x00840000>; }; reserved-kernel { label = "reserved-kernel"; reg = <0x00F00000 0x00400000>; }; ubi { label = "ubi"; reg = <0x01300000 0x06D00000>; }; */ }; ess_tcsr: ess_tcsr@1953000 { ipq,ess-interface-select = ; }; ess-switch@c000000 { pinctrl-0 = <&rgmii_pins>; pinctrl-names = "default"; switch_mac_mode = <1>; /* PSGMII_RGMII5 = 1 */ link-polling-required = <1>; /* This controls which PHYs to initialize. */ switch_lan_bmp = <0x01>; switch_wan_bmp = <0>; qcom,port_phyinfo { port_id = <5>; phy_address = <0>; }; }; mdio@90000 { #address-cells = <1>; #size-cells = <0>; pinctrl-0 = <&mdio_pins>; pinctrl-names = "default"; status = "ok"; bias-disable; /* FIXME: * If we reset PHY in Kernel, we get problems * with instable network connection, packet loss etc. * * What is missing? */ /* phy-reset-gpio = <&tlmm 19 0>; */ phy0: ethernet-phy@0 { reg = <0>; }; }; adcc: clock-controller@7700038 { status = "ok"; }; /* Collision with PHY reset pin 9 */ serial@78b0000 { status = "disable"; }; spi_0: spi@78b5000 { /* BLSP1 QUP1 */ status = "disable"; }; edma: edma@c080000 { qcom,num-gmac = <1>; gmac0 { qcom,phy-mdio-addr = <0>; qcom,poll-required = <1>; qcom,poll-required-dynamic = <1>; qcom,forced-speed = <0>; qcom,forced-duplex = <0>; vlan-tag = <0 0x20>; devname = "eth0"; macname = "maca"; mac = <0>; }; }; clock-controller@7700038 { status = "ok"; }; pwm { /*--- pinctrl-0 = <&pwm_pins>; ---*/ used-pwm-indices = <1>, <1>, <1>, <1>; status = "ok"; }; /* start of pcmlink */ tdm@0 { status = "ok"; }; qca-pcm-tdm@7709000 { status = "ok"; }; audio: audio@7700000 { status = "ok"; }; pcm: pcm@7704000 { status = "ok"; }; mbox0: mbox@7708000 { status = "ok"; }; mbox1: mbox@770a000 { status = "ok"; }; mbox2: mbox@770c000 { status = "ok"; }; mbox3: mbox@770e000 { status = "ok"; }; mbox4: mbox@7706000 { status = "ok"; }; stereo0: stereo@7709000 { status = "ok"; }; stereo1: stereo@770b000 { status = "ok"; }; stereo2: stereo@770d000 { status = "ok"; }; stereo3: stereo@770f000 { status = "ok"; }; /* end of pcmlink */ }; avm_gpio { compatible = "avm,avm_gpio_generic"; /* 600/601 are 'special GPIO' */ /* 600 uses the PWM Interface on GPIO30-33 */ /* 601 uses the PWM Interface on GPIO64-37 */ /* Pins are configured inside the avm gpio driver */ gpio_avm_led_connect { value = <600>; }; gpio_avm_button_connect { value = <10>; param = ; }; }; };