Files
openwrt_mitrastar/target/linux/ath79/dts/ar9344_mikrotik_routerboard-2011uias-2hnd.dts
Lech Perczak d932d884b2 ath79: support Mikrotik RouterBOARD 2011-UiAS-2HnD
Mikrotik RouterBOARD 2011 series are AR9344-based wired routers, with
optional 2,4GHz 802.11n 2x2:2 Wi-Fi radio, with desktop or rack-mount
capability, featuring 5 gigabit Ethernet ports and 5 fast Ethernet
ports. Different variants of the board are supported using a single
image.
Bare-bones RouterBOARD 2011LS is supported using the same image.

Specification:
- Power: 10-28V input via 5,5/2,1 DC barrel jack, or terminal block on
  some boards
- CPU: AR9344 at 600 to 750MHz (configurable)
- RAM: 128MB (64MB in early versions) DDR2
- Flash: 128MB (64MB in early versions) NAND flash
- Gigabit Ethernet: 5 ports via AR8327 switch (eth1 to eth5)
- Fast Ethernet: 5 ports via AR9344 built-in switch (eth6 to eth10)
- SFP: single port through AR8327 switch (SGMII at port 6)
- PoE in: passive input up to 28V at eth1
- PoE out: passive output up to 28V at eth10
- USB: optional micro-AB host port or type-A host port
- Console: optional Cisco-style RS232 console at the back of the device,
  on budget devices available as 3.3V UART via testpoints
- LCD: 2" touchscreen-equipped LCD (unsupported)

Installation:
- perform TFTP boot of initramfs image as for netinstall procedure
  typical for Mikrotik devices
- when initramfs image boots, use sysupgrade to perform final
  installation.

If upgrading from ar71xx, clean installation should be performed, as the
devices now uses yafut to handle kernel image.

TODO:
- 64MB NAND variant using K9F1208U0C isn't yet supported, because it
  needs disabling subpage write support for that chip. A proper solution
  would be to fix that in kernel, but I don't have this variant to test
  with currently.
- The same is true for GD9FU1G8F3A NAND, which isn't ONFI compliant and
  needs definition in kernel for proper geometry.
- SFP port probes over I²C and gigabit link is possible, but currently
  the drivers lack support of handling link status information to
  userspace, including swconfig. Link will appear as always up.
  Currently, link status logging can detect something, but status both
  for ports 0 and 6 is logged simultaneously,
  but "swconfig dev switch0 show" will always show link up on port 6.
- Not yet fully known connection to display and touch panel, but some
  documentation is available (seemingly connected via SPI, according to
  Mikrotik's open source code at [1])

[1] https://github.com/robimarko/routeros-GPL

Signed-off-by: Lech Perczak <lech.perczak@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17617
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2025-05-08 20:32:51 +02:00

345 lines
6.3 KiB
Plaintext

// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
#include "ar9344.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
/ {
model = "MikroTik RouterBOARD 2011UiAS-2HnD";
compatible = "mikrotik,routerboard-2011uias-2hnd", "qca,ar9344";
aliases {
led-boot = &led_user;
led-failsafe = &led_user;
led-running = &led_user;
led-upgrade = &led_user;
};
keys {
compatible = "gpio-keys";
reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
poe-in {
label = "poe-in";
linux,input-type = <EV_SW>;
linux,code = <BTN_1>;
gpios = <&gpio 13 GPIO_ACTIVE_LOW>;
debounce-interval = <60>;
};
};
beeper {
compatible = "gpio-beeper";
gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
};
sfp_i2c: i2c-gpio {
compatible = "i2c-gpio";
#address-cells = <1>;
#size-cells = <0>;
pictrl-names = "default";
pinctrl-0 = <&pmx_sfp_i2c>;
sda-gpios = <&gpio 11 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
scl-gpios = <&gpio 21 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
i2c-gpio,delay-us = <2>;
};
sfp {
/*
* SFP port attached throug AR8327 port 6 isn't functional for now
* The module detects sucessfully, but lacks some GPIO definitions,
* and proper SGMII configuration isn't known yet.
*/
compatible = "sff,sfp";
i2c-bus = <&sfp_i2c>;
los-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
maximum-power-milliwatt = <1000>;
};
leds {
compatible = "gpio-leds";
led-0 {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_WLAN_2GHZ;
gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
linux,default-trigger = "phy0tpt";
};
};
};
&ref {
clock-frequency = <25000000>;
};
&gpio {
nand-nce {
gpio-hog;
gpios = <14 GPIO_ACTIVE_LOW>;
output-high;
line-name = "nand-nce";
};
};
&nand {
status = "okay";
nand-ecc-mode = "soft";
nand-ecc-step-size = <2048>;
qca,nand-swap-dma;
qca,nand-scan-fixup;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "booter";
reg = <0x0000000 0x0040000>;
read-only;
};
partition@40000 {
label = "kernel";
reg = <0x0040000 0x03c0000>;
};
partition@400000 {
label = "ubi";
reg = <0x0400000 0x0>;
};
};
};
&pinmux {
pmx_sfp_i2c: pinmux_sfp_i2c {
pinctrl-single,bits = <0x8 0x00000000 0xff000000>; /* set GPIO11 back as GPIO */
};
};
&spi {
status = "okay";
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <25000000>;
partitions {
compatible = "mikrotik,routerboot-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "routerboot";
reg = <0x0 0x0>;
read-only;
};
hard_config {
read-only;
nvmem-layout {
compatible = "fixed-layout";
#address-cells = <1>;
#size-cells = <1>;
macaddr_hardconfig_10: macaddr@10 {
compatible = "mac-base";
reg = <0x10 0x6>;
#nvmem-cell-cells = <1>;
};
};
};
bios {
size = <0x1000>;
read-only;
};
soft_config {
};
};
};
};
&mdio0 {
status = "okay";
switch@1f {
compatible = "qca,ar8327";
reg = <0x1f>;
qca,ar8327-initvals = <
0x04 0x07c00000 /* PORT0 PAD MODE CTRL: Mac0_rgmii_en | Mac0_rgmii_txclk_delay_en | Mac0_rgmii_rxclk_delay_en | Mac0_rgmii_txclk_delay_sel3 | Mac0_rgmii_rxclk_delay_sel0 */
0x0c 0x00000080 /* PORT6 PAD MODE CTRL: Mac6_sgmii_en */
0x10 0x81000000 /* PWS_REG: POWER_ON_STRAP | LED_OPEN_EN_CSR */
0x50 0xc731c731 /* LED_CTRL0 */
0x54 0x00000000 /* LED_CTRL1 */
0x5c 0x0230c300 /* LED_CTRL3: 5C: enable SFP power */
0x7c 0x0000007e /* PORT0_STATUS: DUPLEX_MODE_0 | RX_FLOW_EN_0 | TX_FLOW_EN_0 | RXMAC_EN_0 | TXMAC_EN_0 | SPEED_0 1000M */
0x94 0x0000007e /* PORT6_STATUS: DUPLEX_MODE_0 | RX_FLOW_EN_0 | TX_FLOW_EN_0 | RXMAC_EN_0 | TXMAC_EN_0 | SPEED_0 1000M */
0xe0 0xc701e7d0 /* SGMII_CTRL */
>;
leds {
led@0 {
reg = <0>;
color = <LED_COLOR_ID_GREEN>;
function = "eth";
function-enumerator = <1>;
qca,led-mode = <0>;
};
led@1 {
reg = <1>;
color = <LED_COLOR_ID_GREEN>;
function = "eth";
function-enumerator = <6>;
qca,led-mode = <1>;
};
lcd_backlight: led@2 {
reg = <2>;
color = <LED_COLOR_ID_WHITE>;
function = LED_FUNCTION_BACKLIGHT;
linux,default-trigger = "backlight";
active-low;
qca,led-mode = <1>;
};
led@3 {
reg = <3>;
color = <LED_COLOR_ID_GREEN>;
function = "eth";
function-enumerator = <2>;
qca,led-mode = <0>;
};
led@4 {
reg = <4>;
color = <LED_COLOR_ID_GREEN>;
function = "eth";
function-enumerator = <7>;
qca,led-mode = <1>;
};
led@6 {
reg = <6>;
color = <LED_COLOR_ID_GREEN>;
function = "eth";
function-enumerator = <3>;
qca,led-mode = <0>;
};
led@7 {
reg = <7>;
color = <LED_COLOR_ID_GREEN>;
function = "eth";
function-enumerator = <8>;
qca,led-mode = <1>;
};
led@9 {
reg = <9>;
color = <LED_COLOR_ID_GREEN>;
function = "eth";
function-enumerator = <4>;
qca,led-mode = <0>;
};
led@10 {
reg = <10>;
color = <LED_COLOR_ID_GREEN>;
function = "eth";
function-enumerator = <9>;
qca,led-mode = <1>;
};
led@12 {
reg = <12>;
color = <LED_COLOR_ID_GREEN>;
function = "eth";
function-enumerator = <5>;
qca,led-mode = <0>;
};
led@13 {
reg = <13>;
color = <LED_COLOR_ID_GREEN>;
function = "eth";
function-enumerator = <10>;
qca,led-mode = <1>;
};
led_user: led@14 {
reg = <14>;
color = <LED_COLOR_ID_GREEN>;
function = "user";
qca,led-mode = <1>;
};
};
};
};
&eth0 {
status = "okay";
/* default for ar934x, except for 1000M */
pll-data = <0x6f000000 0x00000101 0x00001616>;
phy-mode = "rgmii";
nvmem-cells = <&macaddr_hardconfig_10 0>;
nvmem-cell-names = "mac-address";
fixed-link {
speed = <1000>;
full-duplex;
};
gmac-config {
device = <&gmac>;
rgmii-gmac0 = <1>;
switch-phy-swap = <0>;
switch-only-mode = <1>;
rxd-delay = <1>;
rxdv-delay = <1>;
};
};
&builtin_switch {
/delete-property/ qca,phy4-mii-enable;
};
&eth1 {
status = "okay";
nvmem-cells = <&macaddr_hardconfig_10 5>;
nvmem-cell-names = "mac-address";
};
&usb {
status = "okay";
};
&usb_phy {
status = "okay";
};
&wmac {
status = "okay";
qca,no-eeprom;
};