/* 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!Box 7520"; avm-hw-revision{ compatible = "avm,avm_hw_revision"; revision = "247"; subrevision = "0"; }; 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 = "gpio32"; function = "audio_pwm2"; }; mux_3 { 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; phy0: ethernet-phy@0 { reg = <0>; }; phy1: ethernet-phy@1 { reg = <1>; }; phy2: ethernet-phy@2 { reg = <2>; }; phy3: ethernet-phy@3 { reg = <3>; }; }; /* Collision with PHY reset pin 9 */ serial@78b0000 { status = "disable"; }; spi_0: spi@78b5000 { /* BLSP1 QUP1 */ status = "disable"; }; edma@c080000 { qcom,num-gmac = <4>; status = "ok"; gmac0 { qcom,phy-mdio-addr = <0>; qcom,poll-required = <1>; qcom,forced-speed = <0>; qcom,forced-duplex = <0>; vlan-tag = <0 0x02>; devname = "eth0"; macname = "maca"; mac = <0>; eee-adv = <0>; }; gmac1 { qcom,phy-mdio-addr = <1>; qcom,poll-required = <1>; qcom,forced-speed = <0>; qcom,forced-duplex = <0>; vlan-tag = <0 0x04>; devname = "eth1"; macname = "macb"; mac = <1>; }; gmac2 { qcom,phy-mdio-addr = <2>; qcom,poll-required = <1>; qcom,forced-speed = <100>; qcom,forced-duplex = <0>; vlan-tag = <0 0x08>; devname = "eth2"; macname = "usb_board_mac"; mac = <0>; }; gmac3 { qcom,phy-mdio-addr = <3>; qcom,poll-required = <1>; qcom,forced-speed = <100>; qcom,forced-duplex = <0>; vlan-tag = <0 0x10>; devname = "eth3"; macname = "usb_rndis_mac"; mac = <1>; }; }; clock-controller@7700038 { status = "ok"; }; pwm: pwm { #pwm-cells = <3>; used-pwm-indices = <1>, <0>, <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_gpio { compatible = "avm,avm_gpio_generic"; gpio_avm_dect_reset{ value = <40>; param = ; }; gpio_avm_dect_rd { value = <16>; param = ; }; gpio_avm_pcmlink_fsc { value = <22>; param = ; function = ; }; gpio_avm_pcmlink_fsc_2 { value = <26>; param = ; function = ; }; gpio_avm_pcmlink_dcl { value = <21>; param = ; function = ; }; gpio_avm_pcmlink_dcl_2 { value = <25>; param = ; function = ; }; gpio_avm_pcmlink_mcl { value = <20>; param = ; function = ; }; gpio_avm_pcmlink_mcl_2 { value = <24>; param = ; function = ; }; gpio_avm_pcmlink_di { value = <23>; param = ; function = ; }; gpio_avm_pcmlink_do { value = <27>; param = ; function = ; }; gpio_avm_usb_power_enable { value = <49>; param = ; }; }; avm_hui { compatible = "avm,hui"; pinctrl-0 = <&pwm_pins>; pinctrl-names = "default"; dim_leds: dim-leds { /* brightness-range = <0>, <255>; */ compatible = "avm,hui-generic-led-pwm"; led-type = "always-on"; pwms = <&pwm 0 2550 PWM_POLARITY_INVERTED>; /* dimmable; */ }; box-power { compatible = "avm,hui-generic-led-gpio"; gpios = <&tlmm 39 GPIO_ACTIVE_LOW>; location = <1>; }; box-wlan@0 { compatible = "avm,hui-generic-led-gpio"; gpios = <&tlmm 34 GPIO_ACTIVE_LOW>; location = <2>; }; box-fon-dect@0 { compatible = "avm,hui-generic-led-gpio"; gpios = <&tlmm 35 GPIO_ACTIVE_LOW>; location = <3>; }; connect@0 { compatible = "avm,hui-generic-led-gpio"; gpios = <&tlmm 45 GPIO_ACTIVE_LOW>; location = <4>; }; box_info: info { /* brightness-range = <0>, <255>; */ compatible = "avm,hui-generic-led-pwm"; pwms = <&pwm 2 2550 PWM_POLARITY_INVERTED>, <&pwm 3 2550 PWM_POLARITY_INVERTED>; pwm-names = "red", "green"; /* dimmable; */ location = <5>; colors { error = <0xff>, <0>, <0>; warn = <0xff>, <0>, <0>; normal = <0>, <0xff>, <0>; }; }; box-wlan@1 { compatible = "avm,hui-generic-button-gpio"; gpios = <&tlmm 42 GPIO_ACTIVE_LOW>; }; box-fon@1 { compatible = "avm,hui-generic-button-gpio"; gpios = <&tlmm 43 GPIO_ACTIVE_LOW>; }; box-connect@1 { compatible = "avm,hui-generic-button-gpio"; gpios = <&tlmm 41 GPIO_ACTIVE_LOW>; }; }; avm_netdev_map { compatible = "avm,port_netdev"; lan1 { netdev = "eth0"; }; lan2 { netdev = "eth1"; }; lan3 { netdev = "eth2"; }; lan4 { netdev = "eth3"; }; }; }; &pcie0 { perst-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; avm,host_magic; status = "ok"; };