/* 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" #include / { model = "AVM FRITZ!Repeater 3000"; compatible = "qcom,ipq4019"; avm-hw-revision{ compatible = "avm,avm_hw_revision"; revision = "246"; subrevision = "2"; }; 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; }; }; serial_pins: serial_pinmux { mux { pins = "gpio16", "gpio17"; }; }; pwm_pins: pwm_pinmux { mux_1 { pins = "gpio30"; function = "audio_pwm0"; }; mux_2 { pins = "gpio31"; function = "audio_pwm1"; }; mux_3 { pins = "gpio32"; function = "audio_pwm2"; }; mux_4 { pins = "gpio33"; function = "audio_pwm3"; }; }; }; 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 { qcom,ess-interface-select = ; }; mdio@90000 { #address-cells = <1>; #size-cells = <0>; pinctrl-0 = <&mdio_pins>; pinctrl-names = "default"; status = "ok"; bias-disable; /* Default sets phy 0 to 4 to reg 0 to 4. * This is ok here. */ }; /* Collision with PHY reset pin 9 */ serial@78b0000 { status = "disable"; }; spi_0: spi@78b5000 { /* BLSP1 QUP1 */ status = "disable"; }; ess-switch@c000000 { /* Always need to enable all 5 ports when using * PSGMII or psgmii self test goes bonkers. */ switch_lan_bmp = <0x3e>; switch_wan_bmp = <0>; }; edma@c080000 { qcom,num-gmac = <2>; status = "ok"; gmac0 { qcom,phy-mdio-addr = <3>; qcom,poll-required = <1>; qcom,forced-speed = <0>; qcom,forced-duplex = <0>; vlan-tag = <0 0x10>; devname = "eth0"; macname = "maca"; mac = <0>; }; gmac1 { qcom,phy-mdio-addr = <4>; qcom,poll-required = <1>; qcom,forced-speed = <0>; qcom,forced-duplex = <0>; vlan-tag = <0 0x20>; devname = "eth1"; macname = "macb"; mac = <1>; }; }; clock-controller@7700038 { status = "ok"; }; pwm: pwm { #pwm-cells = <3>; 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 */ cpu_freq_ipq40xx { compatible = "qca,ipq40xx_freq"; clock-latency = <100000>; qcom,cpufreq-table = < 200000 >, < 500000 >, < 710000 >; }; /* 20180302 AVM/VGJ USB2 not present on this board */ usb2: usb2@6000000 { status = "disable"; }; }; avm_hui { compatible = "avm,hui"; pinctrl-0 = <&pwm_pins>; pinctrl-names = "default"; repeater-one-fr3000 { compatible = "avm,hui-generic-led-pwm"; brightness-range = <0>, <255>; pwms = <&pwm 3 2550 PWM_POLARITY_INVERTED>; pwm-names = "green"; dimmable; }; repeater-rssi-color { brightness-range = <0>, <255>; compatible = "avm,hui-generic-led-pwm"; pwms = <&pwm 0 2550 PWM_POLARITY_INVERTED>, <&pwm 1 2550 PWM_POLARITY_INVERTED>, <&pwm 2 2550 PWM_POLARITY_INVERTED>; pwm-names = "red", "green", "blue"; dimmable; colors { normal = <0x20>, <0x50>, <0x0>; warn = <0x50>, <0x23>, <0x0>; error = <0x78>, <0x0>, <0x0>; }; }; repeater-connect { compatible = "avm,hui-generic-button-gpio"; gpios = <&tlmm 10 GPIO_ACTIVE_LOW>; }; }; avm_netdev_map { compatible = "avm,port_netdev"; lan1 { netdev = "eth0"; }; lan2 { netdev = "eth1"; }; }; }; &pcie0 { status = "ok"; perst-gpio = <&tlmm 35 GPIO_ACTIVE_LOW>; };