/* Copyright (c) 2015, The Linux Foundation. All rights reserved. * Copyright (c) 2019, Nguyen Dinh Phi * * 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 #include #include / { model = "Compex WPJ419"; compatible = "compex,wpj419", "qcom,ipq4019"; memory { device_type = "memory"; reg = <0x80000000 0x10000000>; }; reserved-memory { ranges; rsvd1@87000000 { /* Reserved for other subsystem */ reg = <0x87000000 0x500000>; no-map; }; wifi_dump@87500000 { reg = <0x87500000 0x600000>; no-map; }; rsvd2@87B00000 { /* Reserved for other subsystem */ reg = <0x87B00000 0x500000>; no-map; }; }; chosen { bootargs-append = " ubi.mtd=ubi root=/dev/ubiblock0_1 clk_ignore_unused"; }; soc { pinctrl@1000000 { mdio_pins: mdio_pinmux { mux_1 { pins = "gpio6"; function = "mdio"; bias-pull-up; }; mux_2 { pins = "gpio7"; function = "mdc"; bias-pull-up; }; }; serial_0_pins: serial_pinmux { mux { pins = "gpio16", "gpio17"; function = "blsp_uart0"; bias-disable; }; }; serial_1_pins: serial1_pinmux { mux { pins = "gpio8", "gpio9", "gpio10", "gpio11"; function = "blsp_uart1"; bias-disable; }; }; spi_0_pins: spi_0_pinmux { pinmux { function = "blsp_spi0"; pins = "gpio13", "gpio14", "gpio15"; bias-disable; }; pinmux_cs { function = "gpio"; pins = "gpio12"; bias-disable; output-high; }; }; i2c_0_pins: i2c_0_pinmux { mux { pins = "gpio20", "gpio21"; function = "blsp_i2c0"; bias-disable; }; }; nand_pins: nand_pins { pullups { pins = "gpio52", "gpio53", "gpio58", "gpio59"; function = "qpic"; bias-pull-up; }; pulldowns { pins = "gpio54", "gpio55", "gpio56", "gpio57", "gpio60", "gpio61", "gpio62", "gpio63", "gpio64", "gpio65", "gpio66", "gpio67", "gpio68", "gpio69"; function = "qpic"; bias-pull-down; }; }; led_0_pins: led0_pinmux { mux_1 { pins = "gpio36"; function = "led0"; bias-pull-down; }; mux_2 { pins = "gpio40"; function = "led4"; bias-pull-down; }; }; }; blsp_dma: dma@7884000 { status = "okay"; }; spi_0: spi@78b5000 { pinctrl-0 = <&spi_0_pins>; pinctrl-names = "default"; status = "okay"; cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>, <&tlmm 41 GPIO_ACTIVE_HIGH>; num-cs = <2>; flash0@0 { reg = <0>; compatible = "jedec,spi-nor"; spi-max-frequency = <24000000>; broken-flash-reset; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; partition@0 { label = "0:SBL1"; reg = <0x000000 0x040000>; read-only; }; partition@40000 { label = "0:MIBIB"; reg = <0x040000 0x020000>; read-only; }; partition@60000 { label = "0:QSEE"; reg = <0x060000 0x060000>; read-only; }; partition@c0000 { label = "0:CDT"; reg = <0x0c0000 0x010000>; read-only; }; partition@d0000 { label = "0:DDRPARAMS"; reg = <0x0d0000 0x010000>; read-only; }; partition@e0000 { label = "u-boot-env"; reg = <0x0e0000 0x010000>; }; partition@f0000 { label = "u-boot"; reg = <0x0f0000 0x080000>; read-only; }; partition@170000 { label = "0:ART"; reg = <0x170000 0x010000>; read-only; }; }; }; nand@1 { reg = <1>; status = "okay"; compatible = "spi-nand"; spi-max-frequency = <24000000>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; /* The device has 128MB, but we can only address * 64MB because of the bootloader's default settings. * This is due to the old mt29f driver, * which detected the deivce with only 64MB */ partition@0 { label = "ubi"; reg = <0x0000000 0x4000000>; }; }; }; }; mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; pinctrl-names = "default"; reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>; reset-delay-us = <5000>; }; ess-psgmii@98000 { status = "okay"; }; tcsr@194b000 { /* select hostmode */ compatible = "qcom,tcsr"; reg = <0x194b000 0x100>; qcom,usb-hsphy-mode-select = ; status = "okay"; }; tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; qcom,wifi_glb_cfg = ; }; ess_tcsr@1953000 { compatible = "qcom,tcsr"; reg = <0x1953000 0x1000>; qcom,ess-interface-select = ; }; tcsr@1957000 { compatible = "qcom,tcsr"; reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; i2c_0: i2c@78b7000 { pinctrl-0 = <&i2c_0_pins>; pinctrl-names = "default"; status = "okay"; }; serial@78af000 { pinctrl-0 = <&serial_0_pins>; pinctrl-names = "default"; status = "okay"; }; serial@78b0000 { pinctrl-0 = <&serial_1_pins>; pinctrl-names = "default"; status = "okay"; }; usb3_ss_phy: ssphy@9a000 { status = "okay"; }; usb3_hs_phy: hsphy@a6000 { status = "okay"; }; usb3: usb3@8af8800 { status = "okay"; }; usb2_hs_phy: hsphy@a8000 { status = "okay"; }; usb2: usb2@60f8800 { status = "okay"; }; cryptobam: dma@8e04000 { status = "okay"; }; crypto@8e3a000 { status = "okay"; }; watchdog@b017000 { status = "okay"; }; ess-switch@c000000 { switch_lan_bmp = <0x1e>; switch_wan_bmp = <0x20>; status = "okay"; }; edma@c080000 { status = "okay"; }; qpic_bam: dma@7984000 { status = "okay"; }; pcie0: pci@40000000 { status = "okay"; perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>; wake-gpio = <&tlmm 50 GPIO_ACTIVE_LOW>; }; nand: qpic-nand@79b0000 { pinctrl-0 = <&nand_pins>; pinctrl-names = "default"; status = "okay"; }; }; }; &gmac0 { qcom,phy_mdio_addr = <4>; qcom,poll_required = <1>; qcom,forced_speed = <1000>; qcom,forced_duplex = <1>; vlan_tag = <2 0x20>; }; &gmac1 { qcom,phy_mdio_addr = <3>; qcom,poll_required = <1>; qcom,forced_speed = <1000>; qcom,forced_duplex = <1>; vlan_tag = <1 0x10>; }; &wifi0 { status = "okay"; }; &wifi1 { status = "okay"; };