// SPDX-License-Identifier: GPL-2.0-or-later OR MIT #include "qca955x.dtsi" #include #include / { aliases { led-boot = &led_user; led-failsafe = &led_user; led-upgrade = &led_user; serial0 = &uart; }; leds { compatible = "gpio-leds"; led_user: user { label = "green:user"; gpios = <&gpio 12 GPIO_ACTIVE_LOW>; }; }; keys { compatible = "gpio-keys"; reset { label = "reset"; linux,code = ; gpios = <&gpio 20 GPIO_ACTIVE_LOW>; debounce-interval = <60>; }; }; gpio-export { compatible = "gpio-export"; buzzer { /* Beeper requires PWM for frequency selection */ gpio-export,name = "buzzer"; gpio-export,output = <0>; gpios = <&gpio 4 GPIO_ACTIVE_HIGH>; }; usb_power { gpio-export,name = "usb-power"; gpio-export,output = <0>; gpios = <&gpio 13 GPIO_ACTIVE_HIGH>; }; }; i2c: i2c { compatible = "i2c-gpio"; sda-gpios = <&gpio 18 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; scl-gpios = <&gpio 19 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; i2c-gpio,delay-us = <5>; i2c-gpio,timeout-ms = <1>; }; sfp1: sfp { compatible = "sff,sfp"; i2c-bus = <&i2c>; maximum-power-milliwatt = <1000>; los-gpios = <&gpio 21 GPIO_ACTIVE_HIGH>; mod-def0-gpios = <&gpio 17 GPIO_ACTIVE_LOW>; tx-disable-gpios = <&gpio 16 GPIO_ACTIVE_HIGH>; // Toggling GPIO16 actually enables/disables the transmitter, // but the SFP driver does not seem to be using it. }; }; &spi { status = "okay"; flash@0 { compatible = "jedec,spi-nor"; reg = <0>; spi-max-frequency = <40000000>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; partition@0 { label = "RouterBoot"; reg = <0x0 0x20000>; compatible = "mikrotik,routerboot-partitions"; #address-cells = <1>; #size-cells = <1>; partition@0 { label = "bootloader1"; reg = <0x0 0x0>; read-only; }; hard_config { read-only; }; bios { size = <0x1000>; read-only; }; partition@10000 { label = "bootloader2"; reg = <0x10000 0x0>; read-only; }; soft_config { }; }; partition@20000 { compatible = "mikrotik,minor"; label = "firmware"; reg = <0x020000 0xfe0000>; }; }; }; }; &mdio0 { status = "okay"; phy0: ethernet-phy@0 { reg = <0>; qca,ar8327-initvals = < /* PAD0_MODE from vendor firmware * RGMII_EN, TX/RXCLK_DELAY_EN, TXCLK_DELAY_SEL=1 */ 0x04 0x07400000 /* PAD0_MODE */ 0x50 0xc737c737 /* LED_CTRL0 */ 0x54 0x00000000 /* LED_CTRL1 */ 0x58 0x00000000 /* LED_CTRL2 */ 0x5c 0x0030c300 /* LED_CTRL3 */ 0x7c 0x0000007e /* PORT0_STATUS */ >; }; }; ð0 { status = "okay"; phy-handle = <&phy0>; /* gigabit pll-data from vendor firmware * TX_INVERT, TX_DELAY=3, GIGE, OFFSET_PHASE */ pll-data = <0x8f000000 0x00000101 0x00001616>; gmac-config { device = <&gmac>; rgmii-enabled = <1>; }; }; &mdio1 { status = "okay"; phy_sfp: ethernet-phy@0 { reg = <0>; phy-mode = "sgmii"; sfp = <&sfp1>; }; }; ð1 { status = "okay"; phy-handle = <&phy_sfp>; pll-data = <0x03000000 0x00000101 0x00001616>; qca955x-sgmii-fixup; gmac-config { device = <&gmac>; }; fixed-link { speed = <1000>; full-duplex; }; }; &usb0 { status = "okay"; }; &usb_phy0 { status = "okay"; };