openwrt/target/linux/ath79/dts/ar9342_mikrotik_routerboard-912uag-2hpnd.dts
Koen Vandeputte 1db847488d ath79: rb912: fix pll init issues
It was reported that some rb912 boards (ar934x) have issues with some ethernet speeds.
Investigation shows that the board failed to adapt the ethernet pll values as shown here:

[    5.284359] ag71xx 19000000.eth: failed to read pll-handle property

added custom prints in code and triggering a link switch:

[   62.821446] Atheros AG71xx: fast reset
[   62.826442] Atheros AG71xx: update pll 2
[   62.830494] Atheros AG71xx: no pll regmap!

Comparison with another very similar board (rb922 - QCA955x) showed a missing
reference clock frequency in dts, which seems to cause a pll init issue.
Unfortunately, no errors are printed when this occurs.

Adding the frequency property fixes the pll init as it can be parsed now
by the ethernet driver.

[   55.861407] Atheros AG71xx: fast reset
[   55.866403] Atheros AG71xx: update pll 2
[   55.870462] Atheros AG71xx: ath79_set_pllval: regmap: 0x81548000, pll_reg: 0x2c, pll_val: 0x02000000

Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com>
Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
(cherry picked from commit 2a00054618)
2022-01-13 10:04:06 +01:00

223 lines
3.9 KiB
Plaintext

// SPDX-License-Identifier: GPL-2.0-or-later
#include "ar9344.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
/ {
compatible = "mikrotik,routerboard-912uag-2hpnd", "qca,ar9342";
model = "MikroTik RouterBOARD 912UAG-2HPnD";
aliases {
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
};
gpio_latch: gpio_latch {
compatible = "gpio-latch";
gpio-controller;
#gpio-cells = <2>;
gpios = <&gpio 0 GPIO_ACTIVE_HIGH>,
<&gpio 1 GPIO_ACTIVE_HIGH>,
<&gpio 2 GPIO_ACTIVE_HIGH>,
<&gpio 3 GPIO_ACTIVE_HIGH>,
<0>, /* Not connected */
<&gpio 13 GPIO_ACTIVE_HIGH>,
<&gpio 14 GPIO_ACTIVE_HIGH>,
<&gpio 15 GPIO_ACTIVE_HIGH>,
<&gpio 11 GPIO_ACTIVE_LOW>; /* Latch Enable */
};
nand_gpio {
compatible = "mikrotik,rb91x-nand";
gpios = <&gpio_latch 3 GPIO_ACTIVE_HIGH>, /* Read */
<&gpio 4 GPIO_ACTIVE_HIGH>, /* Ready (RDY) */
<&gpio_latch 5 GPIO_ACTIVE_LOW>, /* Chip Enable (nCE) */
<&gpio_latch 6 GPIO_ACTIVE_HIGH>, /* Command Latch Enable (CLE) */
<&gpio_latch 7 GPIO_ACTIVE_HIGH>, /* Address Latch Enable (ALE) */
<&gpio 12 GPIO_ACTIVE_LOW>, /* Read/Write Enable (nRW) */
<&gpio_latch 8 GPIO_ACTIVE_LOW>; /* Latch Enable (nLE) */
partitions {
compatible = "fixed-partitions";
#size-cells = <1>;
partition@0 {
label = "booter";
reg = <0x0 0x0040000>;
read-only;
};
partition@40000 {
label = "kernel";
reg = <0x0040000 0x03c0000>;
};
partition@400000 {
label = "ubi";
reg = <0x0400000 0x7c00000>;
};
};
};
leds {
compatible = "gpio-leds";
led_power: power {
label = "green:power";
gpios = <&gpio_latch 1 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
user {
label = "green:user";
gpios = <&gpio_latch 2 GPIO_ACTIVE_HIGH>;
};
led1 {
label = "green:led1";
gpios = <&ssr 0 GPIO_ACTIVE_HIGH>;
};
led2 {
label = "green:led2";
gpios = <&ssr 1 GPIO_ACTIVE_HIGH>;
};
led3 {
label = "green:led3";
gpios = <&ssr 2 GPIO_ACTIVE_HIGH>;
};
led4 {
label = "green:led4";
gpios = <&ssr 3 GPIO_ACTIVE_HIGH>;
};
led5 {
label = "green:led5";
gpios = <&ssr 4 GPIO_ACTIVE_HIGH>;
};
};
gpio-export {
compatible = "gpio-export";
beeper {
gpio-export,name = "beeper";
gpio-export,output = <1>; /* Must be 1 to avoid EMI induced clicking noise */
gpios = <&ssr 5 GPIO_ACTIVE_HIGH>;
};
usb_power {
gpio-export,name = "power-usb";
gpio-export,output = <1>;
gpios = <&ssr 6 GPIO_ACTIVE_HIGH>;
};
pcie_power {
gpio-export,name = "power-pcie";
gpio-export,output = <0>;
gpios = <&ssr 7 GPIO_ACTIVE_HIGH>;
};
};
};
&ref {
clock-frequency = <25000000>;
};
&spi {
status = "okay";
compatible = "qca,ar7100-spi";
cs-gpios = <0>, <&gpio_latch 0 GPIO_ACTIVE_LOW>;
flash@0 {
compatible = "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <50000000>;
partitions {
compatible = "mikrotik,routerboot-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "routerboot";
reg = <0x0 0x0>;
read-only;
};
hard_config: hard_config {
read-only;
};
bios {
size = <0x1000>;
read-only;
};
soft_config {
};
};
};
ssr: ssr@1 {
compatible = "fairchild,74hc595";
gpio-controller;
#gpio-cells = <2>;
registers-number = <1>;
reg = <1>;
spi-max-frequency = <50000000>;
};
};
&mdio0 {
status = "okay";
phy-mask = <0>;
phy0: ethernet-phy@0 {
reg = <0>;
};
};
&eth0 {
status = "okay";
phy-mode = "rgmii-id";
phy-handle = <&phy0>;
pll-data = <0x02000000 0x00000101 0x00001313>;
gmac-config {
device = <&gmac>;
rgmii-gmac0 = <1>;
rgmii-enabled = <1>;
rxd-delay = <1>;
txd-delay = <1>;
};
};
&wmac {
status = "okay";
qca,no-eeprom;
};
&pcie {
status = "okay";
};
&usb {
status = "okay";
};
&usb_phy {
status = "okay";
};