forked from openwrt/openwrt
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Ruckus R500 datasheet: https://webresources.ruckuswireless.com/datasheets/r500/ds-ruckus-r500.html Specifications: SoC: 720Mhz QCA9558 RAM: 256MB Storage: 64MB of FLASH (SPI NOR - S25FL512S) 1x AR8327 GB switch Ethernet: 1x1000M port openwrt#3 on AR8327, 1x1000M (802.3at POE), port openwrt#5 on AR8327 Wireless: QCA988X HW2.0 802.11ac AR9550 2.4GHz 802.11b/g/n 5x GPIO LED 1x GPIO Reset Button 1x DC Jack 12v 1x UART, 3.3v, 115200 1x TPM, SLB9645TT12 2x Beamforming antennas configured via 74LV164 MAC addresses: 1. art 0x807E | Factory bridged | f0:3e:90:XX:XX:80 | 2. art 0x66 | eth0 | f0:3e:90:XX:XX:83 | (port 5, cpu port 6) - PoE port 3. art 0x6c | eth1 | f0:3e:90:XX:XX:84 | (port 3, cpu port 0) - non PoE port Installation: Serial Port/TFTP 1. Setup tftp server on the local network 2. Connect to UART with TTL 3. Interupt uboot process with Ctrl-C 4. Setup appropriate ipaddr and serverip in setenv: a) setenv ipaddr 192.168.1.1 b) setenv serverip 192.168.1.2 5. On TFTP Server - copy openwrt-ath79-generic-ruckus_r500-initramfs-kernel.bin to /srv/tftp/1600000A.img 6. On R500 boot into initrd image a) tftpboot b) bootm 7. On TFTP server - scp openwrt-ath79-generic-ruckus_r500-squashfs-sysupgrade.bin [email protected]:/tmp 8. On R500 - sysupgrade /tmp/openwrt-ath79-generic-ruckus_r500-squashfs-sysupgrade.bin This patch adapted from https://github.com/victhor393/openwrt-ruckus-r500/tree/ruckus-r500-master Signed-off-by: Damien Mascord <[email protected]> - Refactored MAC and calibration data setups to use nvmem-layout - Switched LAN interface to be the PoE (primary) port - Enable lzma-loader for compressed initramfs - Enabled the optional internal USB port - Added missing LEDs and according pinctrl settings - Added reserved memory region used for bootloader communication - Added the bit-banged I²C bus and onboard TPM TODO: - Locate 2nd shift register (U7) controlling beamforming antennas, probably on ath10k GPIOs which are currently unsupported - Configure Ethernet port LED initvals for link/act/speed - Refactor boot scheme and flash layout Signed-off-by: Lech Perczak <[email protected]>
- Loading branch information
Showing
3 changed files
with
366 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,343 @@ | ||
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT | ||
|
||
#include "qca955x.dtsi" | ||
|
||
#include <dt-bindings/gpio/gpio.h> | ||
#include <dt-bindings/input/input.h> | ||
#include <dt-bindings/leds/common.h> | ||
#include <dt-bindings/mtd/partitions/uimage.h> | ||
|
||
/ { | ||
compatible = "ruckus,r500", "qca,qca9557"; | ||
model = "Ruckus R500"; | ||
|
||
aliases { | ||
led-boot = &power_green; | ||
led-failsafe = &power_red; | ||
led-running = &power_green; | ||
led-upgrade = &power_red; | ||
}; | ||
|
||
chosen { | ||
bootargs = "console=ttyS0,115200n8"; | ||
}; | ||
|
||
leds { | ||
compatible = "gpio-leds"; | ||
|
||
pinctrl-names = "default"; | ||
pinctrl-0 = <&jtag_disable_pins &clks_disable_pins &enable_gpio_4>; | ||
|
||
power_green: power-green { | ||
function = LED_FUNCTION_POWER; | ||
color = <LED_COLOR_ID_GREEN>; | ||
gpios = <&gpio 4 GPIO_ACTIVE_LOW>; | ||
default-state = "on"; | ||
}; | ||
|
||
power_red: power-red { | ||
function = LED_FUNCTION_POWER; | ||
color = <LED_COLOR_ID_RED>; | ||
gpios = <&gpio 16 GPIO_ACTIVE_HIGH>; | ||
default-state = "off"; | ||
panic-indicator; | ||
}; | ||
|
||
// DIR (Zone Director) LED - Indicates Zone director connection status | ||
dir { | ||
label = "green:dir"; | ||
gpios = <&gpio 17 GPIO_ACTIVE_LOW>; | ||
}; | ||
|
||
// AIR (Signal/Air Quality) LED - Indicates uplink status and the quality of the wireless signal to the uplink AP | ||
air { | ||
label = "green:air"; | ||
gpios = <&gpio 18 GPIO_ACTIVE_LOW>; | ||
}; | ||
|
||
wlan2g_green { | ||
label = "green:wlan2g"; | ||
gpios = <&gpio 1 GPIO_ACTIVE_LOW>; | ||
linux,default-trigger = "phy1tpt"; | ||
}; | ||
|
||
wlan2g_orange { | ||
label = "orange:wlan2g"; | ||
gpios = <&gpio 2 GPIO_ACTIVE_LOW>; | ||
}; | ||
|
||
wlan5g_green { | ||
label = "green:wlan5g"; | ||
gpios = <&gpio 21 GPIO_ACTIVE_LOW>; | ||
linux,default-trigger = "phy0tpt"; | ||
}; | ||
|
||
wlan5g_orange { | ||
label = "orange:wlan5g"; | ||
gpios = <&gpio 22 GPIO_ACTIVE_LOW>; | ||
}; | ||
|
||
}; | ||
|
||
keys { | ||
compatible = "gpio-keys"; | ||
|
||
reset { | ||
label = "reset"; | ||
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>; | ||
linux,code = <KEY_RESTART>; | ||
debounce-interval = <60>; | ||
}; | ||
|
||
}; | ||
|
||
beamforming-2g-spi { | ||
compatible = "spi-gpio"; | ||
mosi-gpios = <&gpio 15 GPIO_ACTIVE_HIGH>; | ||
sck-gpios = <&gpio 14 GPIO_ACTIVE_HIGH>; | ||
num-chipselects = <0>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
beamforming-2g-gpio@0 { | ||
compatible = "fairchild,74hc595"; | ||
reg = <0>; | ||
registers-number = <1>; | ||
spi-max-frequency = <24000000>; | ||
gpio-controller; | ||
#gpio-cells = <2>; | ||
}; | ||
}; | ||
|
||
/* | ||
beamforming-5g-spi { | ||
compatible = "spi-gpio"; | ||
mosi-gpios = <&ath10k 15 GPIO_ACTIVE_HIGH>; | ||
sck-gpios = <&ath10k 14 GPIO_ACTIVE_HIGH>; | ||
num-chipselects = <0>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
beamforming-5g-gpio@0 { | ||
compatible = "fairchild,74hc595"; | ||
reg = <0>; | ||
registers-number = <1>; | ||
spi-max-frequency = <24000000>; | ||
gpio-controller; | ||
#gpio-cells = <2>; | ||
}; | ||
}; | ||
*/ | ||
|
||
i2c: i2c { | ||
compatible = "i2c-gpio"; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
scl-gpios = <&gpio 19 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; | ||
sda-gpios = <&gpio 20 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; | ||
|
||
tpm@20 { | ||
compatible = "infineon,slb9645tt", "tcg,tpm-tis-i2c"; | ||
reg = <0x20>; | ||
crc-checksum; | ||
}; | ||
}; | ||
|
||
reserved-memory { | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
ranges; | ||
|
||
ruckus-himem@fff0000 { | ||
/* Ruckus Himem area used to control | ||
* redundant boot image selection | ||
*/ | ||
compatible = "nvmem-rmem"; | ||
reg = <0xfff0000 0x10000>; | ||
no-map; | ||
}; | ||
}; | ||
}; | ||
|
||
&pinmux { | ||
clks_disable_pins: pinmux_clks_disable_pins { | ||
pinctrl-single,bits = <0x40 0x0 0x80>; | ||
}; | ||
|
||
enable_gpio_4: pinctrl_enable_gpio_4 { | ||
pinctrl-single,bits = <0x4 0x0 0xff>; | ||
}; | ||
}; | ||
|
||
&spi { | ||
status = "okay"; | ||
|
||
flash@0 { | ||
compatible = "jedec,spi-nor"; | ||
reg = <0>; | ||
spi-max-frequency = <50000000>; | ||
|
||
partitions { | ||
compatible = "fixed-partitions"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
partition@0 { | ||
reg = <0x0000000 0x100000>; | ||
label = "u-boot"; | ||
read-only; | ||
}; | ||
|
||
partition@100000 { | ||
compatible = "u-boot,env"; | ||
reg = <0x0100000 0x40000>; | ||
label = "u-boot-env"; | ||
}; | ||
|
||
board_data: partition@140000 { | ||
reg = <0x0140000 0x80000>; | ||
label = "board-data"; | ||
read-only; | ||
}; | ||
|
||
partition@1c0000 { | ||
reg = <0x01c0000 0x640000>; | ||
label = "config-data"; | ||
read-only; | ||
}; | ||
|
||
partition@800000 { | ||
compatible = "openwrt,uimage", "denx,uimage"; | ||
reg = <0x0800000 0x1800000>; | ||
label = "firmware"; | ||
openwrt,offset = <0xA0>; | ||
openwrt,partition-magic = <0x52434B53>; | ||
}; | ||
|
||
partition@2000000 { | ||
reg = <0x2000000 0x1800000>; | ||
label = "firmware-backup"; | ||
}; | ||
|
||
partition@3800000 { | ||
reg = <0x3800000 0x300000>; | ||
label = "backup-config-data"; | ||
read-only; | ||
}; | ||
|
||
partition@3B00000 { | ||
reg = <0x3B00000 0x500000>; | ||
label = "reserved-space"; | ||
read-only; | ||
}; | ||
}; | ||
}; | ||
}; | ||
|
||
&mdio0 { | ||
status = "okay"; | ||
|
||
phy0: ethernet-phy@0 { | ||
reg = <0>; | ||
|
||
qca,ar8327-initvals = < | ||
0x04 0x00080080 /* PORT0 PAD MODE CTRL */ | ||
0x0c 0x07600000 /* PORT6 PAD MODE CTRL */ | ||
0x7c 0x0000007e /* PORT0_STATUS */ | ||
0x94 0x0000007e /* PORT6 STATUS */ | ||
>; | ||
}; | ||
}; | ||
|
||
ð0 { | ||
status = "okay"; | ||
|
||
nvmem-cells = <&macaddr_board_data_66>; | ||
nvmem-cell-names = "mac-address"; | ||
pll-data = <0x96000000 0x00000101 0x00001616>; | ||
|
||
phy-handle = <&phy0>; | ||
}; | ||
|
||
ð1 { | ||
status = "okay"; | ||
|
||
nvmem-cells = <&macaddr_board_data_6c>; | ||
nvmem-cell-names = "mac-address"; | ||
pll-data = <0x03000101 0x00000101 0x00001616>; | ||
|
||
fixed-link { | ||
speed = <1000>; | ||
full-duplex; | ||
}; | ||
}; | ||
|
||
&pcie0 { | ||
status = "okay"; | ||
|
||
ath10k: wifi@0,0 { | ||
compatible = "pci168c,003c"; | ||
reg = <0x0000 0 0 0 0>; | ||
gpio-controller; | ||
#gpio-cells = <2>; | ||
|
||
nvmem-cells = <&macaddr_board_data_76>, <&cal_board_data_45000>; | ||
nvmem-cell-names = "mac-address", "calibration"; | ||
}; | ||
}; | ||
|
||
&wmac { | ||
status = "okay"; | ||
|
||
nvmem-cells = <&macaddr_board_data_60>, <&cal_board_data_41000>; | ||
nvmem-cell-names = "mac-address", "calibration"; | ||
}; | ||
|
||
&usb_phy0 { | ||
status = "okay"; | ||
}; | ||
|
||
&usb0 { | ||
status = "okay"; | ||
}; | ||
|
||
&usb_phy1 { | ||
status = "okay"; | ||
}; | ||
|
||
&usb1 { | ||
status = "okay"; | ||
}; | ||
|
||
&board_data { | ||
nvmem-layout { | ||
compatible = "fixed-layout"; | ||
#address-cells = <1>; | ||
#size-cells = <1>; | ||
|
||
macaddr_board_data_60: macaddr@60 { | ||
reg = <0x60 0x6>; | ||
}; | ||
|
||
macaddr_board_data_66: macaddr@66 { | ||
reg = <0x66 0x6>; | ||
}; | ||
|
||
macaddr_board_data_6c: macaddr@6c { | ||
reg = <0x6c 0x6>; | ||
}; | ||
|
||
macaddr_board_data_76: macaddr@76 { | ||
reg = <0x76 0x6>; | ||
}; | ||
|
||
cal_board_data_41000: cal@41000 { | ||
reg = <0x41000 0x440>; | ||
}; | ||
|
||
cal_board_data_45000: cal@45000 { | ||
reg = <0x45000 0x844>; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters