// SPDX-License-Identifier: GPL-2.0-only OR MIT #include "qcom-ipq4019.dtsi" #include #include #include / { model = "Aruba AP-303H"; compatible = "aruba,ap-303h"; aliases { led-boot = &led_system_green; led-failsafe = &led_system_red; led-running = &led_system_green; led-upgrade = &led_system_amber; }; memory { device_type = "memory"; reg = <0x80000000 0x10000000>; }; soc { rng@22000 { status = "okay"; }; mdio@90000 { status = "okay"; pinctrl-0 = <&mdio_pins>; pinctrl-names = "default"; reset-gpios = <&tlmm 19 GPIO_ACTIVE_LOW>; reset-delay-us = <2000>; }; counter@4a1000 { compatible = "qcom,qca-gcnt"; reg = <0x4a1000 0x4>; }; ess_tcsr@1953000 { compatible = "qcom,tcsr"; reg = <0x1953000 0x1000>; qcom,ess-interface-select = ; }; tcsr@1949000 { compatible = "qcom,tcsr"; reg = <0x1949000 0x100>; qcom,wifi_glb_cfg = ; }; tcsr@194b000 { compatible = "qcom,tcsr"; reg = <0x194b000 0x100>; qcom,usb-hsphy-mode-select = ; }; tcsr@1957000 { compatible = "qcom,tcsr"; reg = <0x1957000 0x100>; qcom,wifi_noc_memtype_m0_m2 = ; }; usb2@60f8800 { status = "okay"; }; crypto@8e3a000 { status = "okay"; }; watchdog@b017000 { status = "okay"; }; i2c_0: i2c@78b7000 { pinctrl-0 = <&i2c_0_pins>; pinctrl-names = "default"; status = "okay"; tpm@29 { /* No Driver */ compatible = "atmel,at97sc3203"; reg = <0x29>; read-only; }; power-monitor@40 { /* No driver */ compatible = "isl,isl28022"; reg = <0x40>; }; }; }; leds { compatible = "gpio-leds"; wifi_green { label = "green:wifi"; gpios = <&tlmm 27 GPIO_ACTIVE_HIGH>; linux,default-trigger = "phy0tpt"; }; wifi_amber { label = "amber:wifi"; gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>; linux,default-trigger = "phy1tpt"; }; pse { label = "green:pse"; gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>; }; led_system_red: system_red { label = "red:system"; gpios = <&tlmm 25 GPIO_ACTIVE_HIGH>; }; led_system_green: system_green { label = "green:system"; gpios = <&tlmm 24 GPIO_ACTIVE_HIGH>; }; led_system_amber: system_amber { label = "amber:system"; gpios = <&tlmm 26 GPIO_ACTIVE_HIGH>; }; }; keys { compatible = "gpio-keys"; reset { label = "Reset button"; gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; linux,code = ; }; }; }; &blsp_dma { status = "okay"; }; &blsp1_uart1 { pinctrl-0 = <&serial_0_pins>; pinctrl-names = "default"; status = "okay"; }; &blsp1_uart2 { /* Texas Instruments CC2540T BLE radio */ pinctrl-0 = <&serial_1_pins>; pinctrl-names = "default"; status = "okay"; }; &cryptobam { status = "okay"; }; &qpic_bam { status = "okay"; }; &tlmm { /* * In addition to the Pins listed below, * the following GPIOs have "features": * 39 - out - active low to force HW reset * 32 - out - active low to reset TPM * 43 - out - active low to reset BLE radio * 41 - out - pulse to set warm reset status * 34 - out - active low to enable PSE port * 22 - in - active low when 802.3at powered * 29 - in - active high when DC powered * 40 - in - active low when reset due to cold HW reset * 30 - in - active low when USB overcurrent detected * 35 - in - interrupt line for power monitor chip * 31 - in - active low when PSE port active */ mdio_pins: mdio_pinmux { mux_1 { pins = "gpio6"; function = "mdio"; bias-pull-up; }; mux_2 { pins = "gpio7"; function = "mdc"; bias-pull-up; }; }; spi_0_pins: spi_0_pinmux { pin { function = "blsp_spi0"; pins = "gpio13", "gpio14", "gpio15"; drive-strength = <12>; bias-disable; }; pin_cs { function = "gpio"; pins = "gpio12", "gpio59"; drive-strength = <2>; bias-disable; output-high; }; }; i2c_0_pins: i2c_0_pinmux { mux { pins = "gpio20", "gpio21"; function = "blsp_i2c0"; drive-strength = <4>; bias-disable; }; }; serial_0_pins: serial_0_pinmux { mux { pins = "gpio16", "gpio17"; function = "blsp_uart0"; bias-disable; }; }; serial_1_pins: serial_1_pinmux { mux { pins = "gpio8", "gpio9"; function = "blsp_uart1"; bias-disable; }; }; usb-power { line-name = "USB-power"; gpios = <23 GPIO_ACTIVE_HIGH>; gpio-hog; output-high; }; }; &blsp1_spi1 { pinctrl-0 = <&spi_0_pins>; pinctrl-names = "default"; status = "okay"; cs-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>, <&tlmm 59 GPIO_ACTIVE_HIGH>; flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <24000000>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; /* * There is no partition map for the NOR flash * in the stock firmware. * * All partitions here are based on offsets * found in the U-Boot GPL code and information * from smem. */ partition@0 { label = "sbl1"; reg = <0x0 0x40000>; read-only; }; partition@40000 { label = "mibib"; reg = <0x40000 0x20000>; read-only; }; partition@60000 { label = "qsee"; reg = <0x60000 0x60000>; read-only; }; partition@c0000 { label = "cdt"; reg = <0xc0000 0x10000>; read-only; }; partition@d0000 { label = "ddrparams"; reg = <0xd0000 0x10000>; read-only; }; partition@e0000 { label = "appsblenv"; reg = <0xe0000 0x10000>; read-only; }; partition@f0000 { label = "appsbl"; reg = <0xf0000 0x100000>; read-only; }; partition@1e0000 { label = "ART"; reg = <0x1f0000 0x10000>; read-only; nvmem-layout { compatible = "fixed-layout"; #address-cells = <1>; #size-cells = <1>; precal_art_1000: precal@1000 { reg = <0x1000 0x2f20>; }; precal_art_5000: precal@5000 { reg = <0x5000 0x2f20>; }; }; }; partition@1f0000 { label = "osss"; reg = <0x200000 0x170000>; read-only; }; partition@200000 { label = "pds"; reg = <0x370000 0x10000>; read-only; }; partition@380000 { label = "apcd"; reg = <0x380000 0x10000>; read-only; }; partition@390000 { label = "mfginfo"; reg = <0x390000 0x10000>; read-only; nvmem-layout { compatible = "fixed-layout"; #address-cells = <1>; #size-cells = <1>; macaddr_mfginfo_1d: macaddr@1d { reg = <0x1d 0x6>; }; macaddr_mfginfo_45: macaddr@45 { compatible = "mac-base"; reg = <0x45 0x6>; #nvmem-cell-cells = <1>; }; }; }; partition@3a0000 { label = "fcache"; reg = <0x3a0000 0x10000>; read-only; }; partition@3b0000 { /* Called osss1 in smem */ label = "u-boot-env-bak"; reg = <0x3b0000 0x10000>; read-only; }; partition@3f0000 { label = "u-boot-env"; reg = <0x3c0000 0x40000>; read-only; }; }; }; flash@1 { status = "okay"; compatible = "spi-nand"; reg = <1>; spi-max-frequency = <24000000>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; partition@0 { /* 'aos0' in Aruba firmware */ label = "aos0"; reg = <0x0 0x2000000>; read-only; }; partition@2000000 { /* 'aos1' in Aruba firmware */ label = "ubi"; reg = <0x2000000 0x2000000>; }; partition@4000000 { label = "aruba-ubifs"; reg = <0x4000000 0x4000000>; read-only; }; }; }; }; &usb2_hs_phy { status = "okay"; }; &gmac { status = "okay"; }; &switch { status = "okay"; }; &swport2 { status = "okay"; label = "lan1"; }; &swport3 { status = "okay"; label = "lan2"; }; &swport4 { status = "okay"; label = "lan3"; }; &swport5 { status = "okay"; label = "wan"; }; &wifi0 { status = "okay"; nvmem-cell-names = "pre-calibration", "mac-address"; nvmem-cells = <&precal_art_1000>, <&macaddr_mfginfo_45 0>; qcom,ath10k-calibration-variant = "Aruba-AP-303"; }; &wifi1 { status = "okay"; nvmem-cell-names = "pre-calibration", "mac-address"; nvmem-cells = <&precal_art_5000>, <&macaddr_mfginfo_45 1>; qcom,ath10k-calibration-variant = "Aruba-AP-303"; };