Commit 5de14398 authored by Jonathan McDowell's avatar Jonathan McDowell Committed by Bjorn Andersson

ARM: dts: qcom: Add MikroTik RB3011

This patch adds a DTS file for the MikroTik RouterBoard 3011, which is a
1U rackmount router based on the IPQ8064, supporting the serial UART,
dual QCA8337 Gigabit ethernet switches, boot loader NOR and user LED
device.
Signed-off-by: default avatarJonathan McDowell <noodles@earth.li>
Link: https://lore.kernel.org/r/75390e66c9e6e36ddd42dc7f54cac28dfd7a24b9.1589824955.git.noodles@earth.liSigned-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
parent 6acd6ad5
......@@ -884,6 +884,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \
qcom-ipq4019-ap.dk07.1-c1.dtb \
qcom-ipq4019-ap.dk07.1-c2.dtb \
qcom-ipq8064-ap148.dtb \
qcom-ipq8064-rb3011.dtb \
qcom-msm8660-surf.dtb \
qcom-msm8960-cdp.dtb \
qcom-msm8974-fairphone-fp2.dtb \
......
// SPDX-License-Identifier: GPL-2.0
#include "qcom-ipq8064.dtsi"
#include <dt-bindings/input/input.h>
/ {
model = "MikroTik RB3011UiAS-RM";
compatible = "mikrotik,rb3011";
aliases {
serial0 = &gsbi7_serial;
ethernet0 = &gmac0;
ethernet1 = &gmac3;
mdio-gpio0 = &mdio0;
mdio-gpio1 = &mdio1;
};
chosen {
bootargs = "loglevel=8 console=ttyMSM0,115200";
stdout-path = "serial0:115200n8";
};
memory@0 {
reg = <0x42000000 0x3e000000>;
device_type = "memory";
};
mdio0: mdio@0 {
status = "okay";
compatible = "virtual,mdio-gpio";
gpios = <&qcom_pinmux 1 GPIO_ACTIVE_HIGH>,
<&qcom_pinmux 0 GPIO_ACTIVE_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&mdio0_pins>;
pinctrl-names = "default";
switch0: switch@10 {
compatible = "qca,qca8337";
#address-cells = <1>;
#size-cells = <0>;
dsa,member = <0 0>;
pinctrl-0 = <&sw0_reset_pin>;
pinctrl-names = "default";
reset-gpios = <&qcom_pinmux 16 GPIO_ACTIVE_LOW>;
reg = <0x10>;
ports {
#address-cells = <1>;
#size-cells = <0>;
switch0cpu: port@0 {
reg = <0>;
label = "cpu";
ethernet = <&gmac0>;
phy-mode = "rgmii-id";
fixed-link {
speed = <1000>;
full-duplex;
};
};
port@1 {
reg = <1>;
label = "sw1";
};
port@2 {
reg = <2>;
label = "sw2";
};
port@3 {
reg = <3>;
label = "sw3";
};
port@4 {
reg = <4>;
label = "sw4";
};
port@5 {
reg = <5>;
label = "sw5";
};
};
};
};
mdio1: mdio@1 {
status = "okay";
compatible = "virtual,mdio-gpio";
gpios = <&qcom_pinmux 11 GPIO_ACTIVE_HIGH>,
<&qcom_pinmux 10 GPIO_ACTIVE_HIGH>;
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&mdio1_pins>;
pinctrl-names = "default";
switch1: switch@14 {
compatible = "qca,qca8337";
#address-cells = <1>;
#size-cells = <0>;
dsa,member = <1 0>;
pinctrl-0 = <&sw1_reset_pin>;
pinctrl-names = "default";
reset-gpios = <&qcom_pinmux 17 GPIO_ACTIVE_LOW>;
reg = <0x10>;
ports {
#address-cells = <1>;
#size-cells = <0>;
switch1cpu: port@0 {
reg = <0>;
label = "cpu";
ethernet = <&gmac3>;
phy-mode = "sgmii";
fixed-link {
speed = <1000>;
full-duplex;
};
};
port@1 {
reg = <1>;
label = "sw6";
};
port@2 {
reg = <2>;
label = "sw7";
};
port@3 {
reg = <3>;
label = "sw8";
};
port@4 {
reg = <4>;
label = "sw9";
};
port@5 {
reg = <5>;
label = "sw10";
};
};
};
};
soc {
gsbi5: gsbi@1a200000 {
qcom,mode = <GSBI_PROT_SPI>;
status = "okay";
spi4: spi@1a280000 {
status = "okay";
spi-max-frequency = <50000000>;
pinctrl-0 = <&spi_pins>;
pinctrl-names = "default";
cs-gpios = <&qcom_pinmux 20 GPIO_ACTIVE_HIGH>;
norflash: s25fl016k@0 {
compatible = "jedec,spi-nor";
#address-cells = <1>;
#size-cells = <1>;
spi-max-frequency = <50000000>;
reg = <0>;
partition@0 {
label = "RouterBoot";
reg = <0x0 0x40000>;
};
};
};
};
gpio_keys {
compatible = "gpio-keys";
pinctrl-0 = <&buttons_pins>;
pinctrl-names = "default";
button@1 {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&qcom_pinmux 66 GPIO_ACTIVE_LOW>;
linux,input-type = <1>;
debounce-interval = <60>;
};
};
leds {
compatible = "gpio-leds";
pinctrl-0 = <&leds_pins>;
pinctrl-names = "default";
led@7 {
label = "rb3011:green:user";
gpios = <&qcom_pinmux 33 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
};
};
};
&gmac0 {
status = "okay";
phy-mode = "rgmii";
qcom,id = <0>;
phy-handle = <&switch0cpu>;
fixed-link {
speed = <1000>;
full-duplex;
};
};
&gmac3 {
status = "okay";
phy-mode = "sgmii";
qcom,id = <3>;
phy-handle = <&switch1cpu>;
fixed-link {
speed = <1000>;
full-duplex;
};
};
&gsbi7 {
status = "okay";
qcom,mode = <GSBI_PROT_I2C_UART>;
};
&gsbi7_serial {
status = "okay";
};
&qcom_pinmux {
buttons_pins: buttons_pins {
mux {
pins = "gpio66";
drive-strength = <16>;
bias-disable;
};
};
leds_pins: leds_pins {
mux {
pins = "gpio33";
drive-strength = <16>;
bias-disable;
};
};
mdio0_pins: mdio0_pins {
mux {
pins = "gpio0", "gpio1";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
};
mdio1_pins: mdio1_pins {
mux {
pins = "gpio10", "gpio11";
function = "gpio";
drive-strength = <8>;
bias-disable;
};
};
sw0_reset_pin: sw0_reset_pin {
mux {
pins = "gpio16";
drive-strength = <16>;
function = "gpio";
bias-disable;
input-disable;
};
};
sw1_reset_pin: sw1_reset_pin {
mux {
pins = "gpio17";
drive-strength = <16>;
function = "gpio";
bias-disable;
input-disable;
};
};
};
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment