mirror of
https://git.openwrt.org/openwrt/openwrt.git
synced 2025-12-10 08:44:39 +01:00
mediatek: add support for BananaPi BPi-R4 Lite
The BPi-R4 Lite is a WiFi-7 router board based on the MT7987 SoC.
Specification :
- SOC: Mediatek MT7987A (4x Cortex-A53
- RAM: 2GB
- Flash: 32MB SPI NOR, 256MB SPI NAND, 8GB eMMC
- Switch: MediaTek MT7531AE
- Ports : 4x LAN (1G), 1x SFP (via MT7531), 1x WAN (2.5G)
- Buttons : Reset & WPS/Mesh
- LEDs : Status (PWM), SFP
- USB: on-board VIA VL817 USB3.1/USB2.0 hub
* 1 - mPCIe B (SIM3)
* 2 - NGFF-KEYB (SIM1)
* 3 - USB-A connector
* 4 - mPCIe A (SIM4)
- mPCIe: 1x 8GT/s x2 or 2x 8GT/s x1 (configurable via bootloader)
- RTC: PCF8563
- mikroBUS socket with SPI, I2C and full UART
- on-board HT42B534 USB-to-serial for Type-C console port
- Power: USB Type-C PD 20V, or DC via barrel connector or JST-VH 3.96
Installation:
Uncompress *sdcard.img.gz and write to microSD card, eg. using 'dd'.
Use bootloader menu on the serial console to install SPI-NAND or SPI-NOR,
once installed to SPI-NAND you can use the bootloader menu to install to
eMMC. See instructions for BananaPi R3 for details.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
This commit is contained in:
parent
3a71dd5871
commit
8b6c6978d6
13 changed files with 828 additions and 0 deletions
|
|
@ -13,6 +13,7 @@ bananapi,bpi-r3|\
|
|||
bananapi,bpi-r3-mini|\
|
||||
bananapi,bpi-r4|\
|
||||
bananapi,bpi-r4-2g5|\
|
||||
bananapi,bpi-r4-lite|\
|
||||
bananapi,bpi-r4-poe)
|
||||
[ -z "$(fw_printenv -n ethaddr 2>/dev/null)" ] &&
|
||||
fw_setenv ethaddr "$(cat /sys/class/net/eth0/address)"
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
/*
|
||||
* Copyright (C) 2025 MediaTek Inc.
|
||||
* Author: Sam.Shih <sam.shih@mediatek.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
compatible = "bananapi,bpi-r4-lite",
|
||||
"mediatek,mt7987a", "mediatek,mt7987";
|
||||
};
|
||||
|
||||
/ {
|
||||
fragment@0 {
|
||||
target-path = "/soc/pinctrl@1001f000";
|
||||
__overlay__ {
|
||||
pcie_sel: aw35710qnr_sel {
|
||||
gpio-hog;
|
||||
gpios = <11 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target-path = "/soc/pcie@11290000";
|
||||
__overlay__ {
|
||||
status = "disabled";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
/*
|
||||
* Copyright (C) 2025 MediaTek Inc.
|
||||
* Author: Sam.Shih <sam.shih@mediatek.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
compatible = "bananapi,bpi-r4-lite",
|
||||
"mediatek,mt7987a", "mediatek,mt7987";
|
||||
};
|
||||
|
||||
/ {
|
||||
fragment@0 {
|
||||
target-path = "/soc/pinctrl@1001f000";
|
||||
__overlay__ {
|
||||
pcie_sel: aw35710qnr_sel {
|
||||
gpio-hog;
|
||||
gpios = <11 GPIO_ACTIVE_HIGH>;
|
||||
output-low;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fragment@1 {
|
||||
target-path = "/soc/pcie@11290000";
|
||||
__overlay__ {
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
compatible = "bananapi,bpi-r4-lite",
|
||||
"mediatek,mt7987a", "mediatek,mt7987";
|
||||
};
|
||||
|
||||
&{/soc/mmc@11230000} {
|
||||
pinctrl-names = "default", "state_uhs";
|
||||
pinctrl-0 = <&mmc_pins_default>;
|
||||
pinctrl-1 = <&mmc_pins_uhs>;
|
||||
reset-gpios = <&pio 14 GPIO_ACTIVE_LOW>;
|
||||
|
||||
bus-width = <4>; /* interference from shared DAT5<->SD-CD pin */
|
||||
max-frequency = <48000000>;
|
||||
cap-mmc-highspeed;
|
||||
non-removable;
|
||||
no-sd;
|
||||
no-sdio;
|
||||
vmmc-supply = <®_3p3v>;
|
||||
vqmmc-supply = <®_3p3v>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
status = "okay";
|
||||
|
||||
card@0 {
|
||||
compatible = "mmc-card";
|
||||
reg = <0>;
|
||||
|
||||
partitions {
|
||||
compatible = "gpt-partitions";
|
||||
|
||||
block-partition-env {
|
||||
partname = "ubootenv";
|
||||
nvmem-layout {
|
||||
compatible = "u-boot,env-layout";
|
||||
};
|
||||
};
|
||||
|
||||
emmc_rootfs: block-partition-production {
|
||||
partname = "production";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&{/chosen} {
|
||||
rootdisk-emmc = <&emmc_rootfs>;
|
||||
};
|
||||
|
|
@ -0,0 +1,134 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
/*
|
||||
* Copyright (C) 2025 MediaTek Inc.
|
||||
* Author: Sam.Shih <sam.shih@mediatek.com>
|
||||
*/
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/*
|
||||
* --------------- Bananapi Bpi R4 Lite MikroBus ----------------
|
||||
* | 9 | GPIO7/PWM1 | 8 |
|
||||
* | 10 | GPIO6/PCM_FS/UART1_RTS GPIO5/PCM_CLK/UART1_CTS | 7 |
|
||||
* | 11 | GPIO49/SPI1_CS GPIO3/PCM_DTX/UART1_RXD | 6 |
|
||||
* | 12 | GPIO46/SPI1_CLK GPIO4/PCM_DRX/UART1_TXD | 5 |
|
||||
* | 13 | GPIO48/SPI1_MISO I2C3 SCL (PCA9548) | 4 |
|
||||
* | 14 | GPIO47/SPI1_MOSI I2C3 SDA (PCA9548) | 3 |
|
||||
* | 15 | +3.3V +5V | 2 |
|
||||
* | 16 | GND GND | 1 |
|
||||
* --------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/ {
|
||||
mikrobus: MikroBus {
|
||||
compatible = "simple-bus";
|
||||
|
||||
/* MikroBus pins 5,6,7,8 as GPIOs */
|
||||
mikrobus_gpios_0: gpio-export@0 {
|
||||
compatible = "gpio-export";
|
||||
status = "disabled";
|
||||
|
||||
gpio-3 {
|
||||
gpio-export,name = "mikrobus-gpio-RX";
|
||||
gpio-export,output = <1>;
|
||||
gpios = <&pio 3 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
gpio-4 {
|
||||
gpio-export,name = "mikrobus-gpio-TX";
|
||||
gpio-export,output = <1>;
|
||||
gpios = <&pio 4 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
gpio-5 {
|
||||
gpio-export,name = "mikrobus-gpio-INT";
|
||||
gpio-export,output = <1>;
|
||||
gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
gpio-6 {
|
||||
gpio-export,name = "mikrobus-gpio-INT";
|
||||
gpio-export,output = <1>;
|
||||
gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
|
||||
/* MikroBus pins 11,12,13,14 as GPIOs */
|
||||
mikrobus_gpios_1: gpio-export@1 {
|
||||
compatible = "gpio-export";
|
||||
status = "disabled";
|
||||
|
||||
gpio-46 {
|
||||
gpio-export,name = "mikrobus-gpio-CS";
|
||||
gpio-export,output = <1>;
|
||||
gpios = <&pio 46 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
gpio-47 {
|
||||
gpio-export,name = "mikrobus-gpio-MOSI";
|
||||
gpio-export,output = <1>;
|
||||
gpios = <&pio 47 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
gpio-48 {
|
||||
gpio-export,name = "mikrobus-gpio-MISO";
|
||||
gpio-export,output = <1>;
|
||||
gpios = <&pio 48 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
gpio-49 {
|
||||
gpio-export,name = "mikrobus-gpio-SCK";
|
||||
gpio-export,output = <1>;
|
||||
gpios = <&pio 49 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/* MikroBus pins 3,4 as I2C3 (Provided by PCA9548 i2c-mux) */
|
||||
/* Please refer to &imux2_MikroBus device tree node */
|
||||
|
||||
/* MikroBus pins 5,6,7,10 as PCM function */
|
||||
&afe {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pcm_pins>;
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
&pcm_pins {
|
||||
mux {
|
||||
function = "pcm";
|
||||
groups = "pcm0_0";
|
||||
};
|
||||
};
|
||||
|
||||
/* MikroBus pins 5,6,7,10 as UART1 function */
|
||||
&uart1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&uart1_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&uart1_pins {
|
||||
mux {
|
||||
function = "uart";
|
||||
groups = "uart1_0";
|
||||
};
|
||||
};
|
||||
|
||||
/* MikroBus pins 8 as PWM1 */
|
||||
/* Please refer to &pwm device tree node */
|
||||
|
||||
/* MikroBus pins 11,12,13,14 as SPI1 function */
|
||||
&spi1 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spic_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spic_pins {
|
||||
mux {
|
||||
function = "spi";
|
||||
groups = "spi1_1";
|
||||
};
|
||||
};
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "bananapi,bpi-r4-lite",
|
||||
"mediatek,mt7987a", "mediatek,mt7987";
|
||||
};
|
||||
|
||||
&{/soc/spi@11009800} {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
flash@0 {
|
||||
compatible = "spi-nand";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <52000000>;
|
||||
spi-rx-bus-width = <4>;
|
||||
spi-tx-bus-width = <4>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "bl2-nand";
|
||||
reg = <0x0 0x200000>;
|
||||
};
|
||||
|
||||
partition@200000 {
|
||||
label = "ubi";
|
||||
reg = <0x200000 0xfe00000>;
|
||||
compatible = "linux,ubi";
|
||||
|
||||
volumes {
|
||||
ubi-volume-ubootenv {
|
||||
volname = "ubootenv";
|
||||
nvmem-layout {
|
||||
compatible = "u-boot,env-redundant-bool-layout";
|
||||
};
|
||||
};
|
||||
|
||||
ubi-volume-ubootenv2 {
|
||||
volname = "ubootenv2";
|
||||
nvmem-layout {
|
||||
compatible = "u-boot,env-redundant-bool-layout";
|
||||
};
|
||||
};
|
||||
|
||||
ubi_rootfs: ubi-volume-fit {
|
||||
volname = "fit";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&{/chosen} {
|
||||
rootdisk-spim-nand = <&ubi_rootfs>;
|
||||
};
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
/ {
|
||||
compatible = "bananapi,bpi-r4-lite",
|
||||
"mediatek,mt7987a", "mediatek,mt7987";
|
||||
};
|
||||
|
||||
&{/soc/spi@11009800} {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
flash@0 {
|
||||
compatible = "jedec,spi-nor";
|
||||
reg = <0>;
|
||||
spi-max-frequency = <52000000>;
|
||||
spi-rx-bus-width = <4>;
|
||||
spi-tx-bus-width = <4>;
|
||||
|
||||
partitions {
|
||||
compatible = "fixed-partitions";
|
||||
#address-cells = <1>;
|
||||
#size-cells = <1>;
|
||||
|
||||
partition@0 {
|
||||
label = "bl2-nor";
|
||||
reg = <0x0 0x40000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@40000 {
|
||||
label = "u-boot-env";
|
||||
reg = <0x40000 0x40000>;
|
||||
};
|
||||
|
||||
partition@50000 {
|
||||
label = "factory";
|
||||
reg = <0x80000 0x80000>;
|
||||
read-only;
|
||||
};
|
||||
|
||||
partition@100000 {
|
||||
label = "fip";
|
||||
reg = <0x100000 0x80000>;
|
||||
};
|
||||
|
||||
partition@180000 {
|
||||
label = "recovery";
|
||||
reg = <0x180000 0xe80000>;
|
||||
};
|
||||
|
||||
nor_rootfs: partition@1000000 {
|
||||
label = "fit";
|
||||
reg = <0x1000000 0x1000000>;
|
||||
compatible = "denx,fit";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&{/chosen} {
|
||||
rootdisk-nor = <&nor_rootfs>;
|
||||
};
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
/ {
|
||||
compatible = "bananapi,bpi-r4-lite",
|
||||
"mediatek,mt7987a", "mediatek,mt7987";
|
||||
};
|
||||
|
||||
&{/soc/mmc@11230000} {
|
||||
pinctrl-names = "default", "state_uhs";
|
||||
pinctrl-0 = <&sd_pins_default>;
|
||||
pinctrl-1 = <&sd_pins_uhs>;
|
||||
cd-gpios = <&pio 20 GPIO_ACTIVE_LOW>;
|
||||
|
||||
bus-width = <4>;
|
||||
max-frequency = <48000000>;
|
||||
cap-sd-highspeed;
|
||||
no-mmc;
|
||||
no-sdio;
|
||||
vmmc-supply = <®_3p3v>;
|
||||
vqmmc-supply = <®_3p3v>;
|
||||
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
status = "okay";
|
||||
|
||||
card@0 {
|
||||
compatible = "mmc-card";
|
||||
reg = <0>;
|
||||
|
||||
partitions {
|
||||
compatible = "gpt-partitions";
|
||||
|
||||
block-partition-env {
|
||||
partname = "ubootenv";
|
||||
nvmem-layout {
|
||||
compatible = "u-boot,env-layout";
|
||||
};
|
||||
};
|
||||
|
||||
sd_rootfs: block-partition-production {
|
||||
partname = "production";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&{/chosen} {
|
||||
rootdisk-sd = <&sd_rootfs>;
|
||||
};
|
||||
321
target/linux/mediatek/dts/mt7987a-bananapi-bpi-r4-lite.dts
Normal file
321
target/linux/mediatek/dts/mt7987a-bananapi-bpi-r4-lite.dts
Normal file
|
|
@ -0,0 +1,321 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
||||
/*
|
||||
* Copyright (C) 2025 MediaTek Inc.
|
||||
* Author: Sam.Shih <sam.shih@mediatek.com>
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
#include "mt7987a.dtsi"
|
||||
#include <dt-bindings/input/input.h>
|
||||
#include <dt-bindings/leds/common.h>
|
||||
#include "mt7987a-bananapi-bpi-r4-lite-mikrobus.dtsi"
|
||||
|
||||
/ {
|
||||
model = "Bananapi BPI-R4-LITE";
|
||||
compatible = "bananapi,bpi-r4-lite",
|
||||
"mediatek,mt7987a", "mediatek,mt7987";
|
||||
|
||||
aliases {
|
||||
/* mt7987 I2C0 */
|
||||
i2c0 = &i2c0;
|
||||
/* PCA9548 (0-0070) provides 4 i2c channels */
|
||||
i2c1 = &imux0_rtc;
|
||||
i2c2 = &imux1_sfp;
|
||||
i2c3 = &imux2_MikroBus;
|
||||
i2c4 = &imux3;
|
||||
led-boot = &sys_led_blue;
|
||||
led-failsafe = &sys_led_blue;
|
||||
led-running = &sys_led_blue;
|
||||
led-upgrade = &sys_led_blue;
|
||||
serial0 = &uart0;
|
||||
};
|
||||
|
||||
chosen {
|
||||
bootargs = "console=ttyS0,115200n1 earlycon=uart8250,mmio32,0x11000000 \
|
||||
ubi.block=0,firmware root=/dev/fit0 rootwait";
|
||||
stdout-path = "serial0:115200n8";
|
||||
};
|
||||
|
||||
gpio-keys {
|
||||
compatible = "gpio-keys";
|
||||
|
||||
reset {
|
||||
label = "reset";
|
||||
linux,code = <KEY_RESTART>;
|
||||
gpios = <&pio 1 GPIO_ACTIVE_LOW>;
|
||||
debounce-interval = <10>;
|
||||
};
|
||||
|
||||
wps {
|
||||
label = "wps";
|
||||
linux,code = <KEY_WPS_BUTTON>;
|
||||
gpios = <&pio 0 GPIO_ACTIVE_LOW>;
|
||||
debounce-interval = <10>;
|
||||
};
|
||||
};
|
||||
|
||||
gpio-leds {
|
||||
compatible = "gpio-leds";
|
||||
|
||||
sfp-led {
|
||||
gpios = <&pca9555 11 GPIO_ACTIVE_LOW>;
|
||||
function = "sfp";
|
||||
color = <LED_COLOR_ID_GREEN>;
|
||||
};
|
||||
};
|
||||
|
||||
pwm-leds {
|
||||
compatible = "pwm-leds";
|
||||
status = "okay";
|
||||
|
||||
/* ACT LED on bpi-r4-lite */
|
||||
sys_led_blue: sys-led {
|
||||
color = <LED_COLOR_ID_BLUE>;
|
||||
function = LED_FUNCTION_STATUS;
|
||||
pwms = <&pwm 0 50000>;
|
||||
max-brightness = <255>;
|
||||
active-high;
|
||||
linux,default-trigger = "default-on";
|
||||
};
|
||||
};
|
||||
|
||||
sfp: sfp@0 {
|
||||
compatible = "sff,sfp";
|
||||
i2c-bus = <&imux1_sfp>;
|
||||
los-gpios = <&pio 10 GPIO_ACTIVE_HIGH>;
|
||||
mod-def0-gpios = <&pio 9 GPIO_ACTIVE_LOW>;
|
||||
tx-disable-gpios = <&pio 8 GPIO_ACTIVE_HIGH>;
|
||||
tx-fault-gpios = <&pca9555 12 GPIO_ACTIVE_HIGH>;
|
||||
rate-select0-gpios = <&pca9555 13 GPIO_ACTIVE_HIGH>;
|
||||
rate-select1-gpios = <&pca9555 14 GPIO_ACTIVE_HIGH>;
|
||||
maximum-power-milliwatt = <3000>;
|
||||
};
|
||||
|
||||
reg_3p3v: regulator-3p3v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "fixed-3.3V";
|
||||
regulator-min-microvolt = <3300000>;
|
||||
regulator-max-microvolt = <3300000>;
|
||||
regulator-boot-on;
|
||||
regulator-always-on;
|
||||
};
|
||||
|
||||
reg_usb_5v: regulator-usb-5v {
|
||||
compatible = "regulator-fixed";
|
||||
regulator-name = "usb-5v";
|
||||
regulator-min-microvolt = <5000000>;
|
||||
regulator-max-microvolt = <5000000>;
|
||||
gpio = <&pca9555 9 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
usb-vbus-regulator {
|
||||
compatible = "regulator-output";
|
||||
vout-supply = <®_usb_5v>;
|
||||
};
|
||||
};
|
||||
|
||||
&fan {
|
||||
pwms = <&pwm 2 50000>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&gmac0 {
|
||||
phy-mode = "2500base-x";
|
||||
status = "okay";
|
||||
fixed-link {
|
||||
speed = <2500>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
|
||||
&gmac1 {
|
||||
phy-mode = "internal";
|
||||
phy-handle = <&phy15>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&pwm_pins>;
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&pwm_pins {
|
||||
mux {
|
||||
/*
|
||||
* - pwm0 : PWM0@PIN13
|
||||
* - pwm1_0 : PWM@PIN7 (share with JTAG)
|
||||
* - pwm2_0 : PWM2@PIN12 (share with PCM)
|
||||
*/
|
||||
function = "pwm";
|
||||
groups = "pwm0", "pwm1_0", "pwm2_0";
|
||||
};
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&i2c0_pins>;
|
||||
status = "okay";
|
||||
|
||||
pca9545@70 {
|
||||
compatible = "nxp,pca9545";
|
||||
reg = <0x70>;
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
imux0_rtc: i2c@0 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x0>;
|
||||
|
||||
rtc@51 {
|
||||
compatible = "nxp,pcf8563";
|
||||
reg = <0x51>;
|
||||
};
|
||||
|
||||
eeprom@57 {
|
||||
compatible = "atmel,24c02";
|
||||
reg = <0x57>;
|
||||
address-bits = <8>;
|
||||
page-size = <8>;
|
||||
size = <256>;
|
||||
};
|
||||
};
|
||||
|
||||
imux1_sfp: i2c@1 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x1>;
|
||||
};
|
||||
|
||||
imux2_MikroBus: i2c@2 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x2>;
|
||||
};
|
||||
|
||||
imux3: i2c@3 {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
reg = <0x3>;
|
||||
|
||||
pca9555: i2c-gpio-expander@20 {
|
||||
compatible = "nxp,pca9555";
|
||||
interrupt-controller;
|
||||
interrupt-parent = <&pio>;
|
||||
interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
|
||||
gpio-controller;
|
||||
#gpio-cells = <2>;
|
||||
reg = <0x20>;
|
||||
};
|
||||
|
||||
wifi_eeprom@50 {
|
||||
compatible = "atmel,24c02";
|
||||
reg = <0x50>;
|
||||
wp-gpios = <&pca9555 10 GPIO_ACTIVE_LOW>;
|
||||
address-bits = <8>;
|
||||
page-size = <8>;
|
||||
size = <256>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mdio {
|
||||
/* built-in 2.5G Ethernet PHY */
|
||||
phy15: phy@15 {
|
||||
pinctrl-names = "i2p5gbe-led";
|
||||
pinctrl-0 = <&i2p5gbe_led0_pins>;
|
||||
compatible = "ethernet-phy-ieee802.3-c45";
|
||||
reg = <15>;
|
||||
phy-mode = "internal";
|
||||
};
|
||||
|
||||
switch31: switch@31 {
|
||||
compatible = "mediatek,mt7531";
|
||||
reg = <31>;
|
||||
reset-gpios = <&pio 42 GPIO_ACTIVE_HIGH>;
|
||||
interrupt-controller;
|
||||
#interrupt-cells = <1>;
|
||||
interrupt-parent = <&pio>;
|
||||
interrupts = <41 IRQ_TYPE_LEVEL_HIGH>;
|
||||
status = "okay";
|
||||
};
|
||||
};
|
||||
|
||||
&ssusb {
|
||||
mediatek,u3p-dis-msk=<0>;
|
||||
phys = <&tphyu2port0 PHY_TYPE_USB2>,
|
||||
<&tphyu3port0 PHY_TYPE_USB3>;
|
||||
|
||||
/*
|
||||
* VIA VL817 USB3.1/USB2.0 hub
|
||||
* ports:
|
||||
* 1 - mPCIe B (SIM3)
|
||||
* 2 - NGFF-KEYB (SIM1)
|
||||
* 3 - USB-A connector
|
||||
* 4 - mPCIe A (SIM4)
|
||||
*/
|
||||
|
||||
// reset-gpios = <&pca9555 8 GPIO_ACTIVE_HIGH>;
|
||||
};
|
||||
|
||||
&switch31 {
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
label = "lan0";
|
||||
};
|
||||
|
||||
port@1 {
|
||||
reg = <1>;
|
||||
label = "lan1";
|
||||
};
|
||||
|
||||
port@2 {
|
||||
reg = <2>;
|
||||
label = "lan2";
|
||||
};
|
||||
|
||||
port@3 {
|
||||
reg = <3>;
|
||||
label = "lan3";
|
||||
};
|
||||
|
||||
port@5 {
|
||||
reg = <5>;
|
||||
label = "sfp0";
|
||||
phy-mode = "2500base-x";
|
||||
sfp = <&sfp>;
|
||||
managed = "in-band-status";
|
||||
};
|
||||
|
||||
port@6 {
|
||||
reg = <6>;
|
||||
label = "cpu";
|
||||
ethernet = <&gmac0>;
|
||||
phy-mode = "2500base-x";
|
||||
|
||||
fixed-link {
|
||||
speed = <2500>;
|
||||
full-duplex;
|
||||
pause;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&tphyu3port0 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&spi2 {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&spi2_flash_pins>;
|
||||
|
||||
status = "okay";
|
||||
};
|
||||
|
|
@ -53,6 +53,9 @@ bananapi,bpi-r4-poe)
|
|||
ucidef_set_led_netdev "lan2" "lan2" "mt7530-0:02:green:lan" "lan2" "link tx rx"
|
||||
ucidef_set_led_netdev "lan3" "lan3" "mt7530-0:03:green:lan" "lan3" "link tx rx"
|
||||
;;
|
||||
bananapi,bpi-r4-lite)
|
||||
ucidef_set_led_netdev "sfp0" "sfp0" "green:sfp" "sfp0" "link tx rx"
|
||||
;;
|
||||
cudy,re3000-v1|\
|
||||
wavlink,wl-wn573hx3)
|
||||
ucidef_set_led_netdev "lan" "lan" "green:lan" "eth0" "link tx rx"
|
||||
|
|
|
|||
|
|
@ -91,6 +91,9 @@ mediatek_setup_interfaces()
|
|||
bananapi,bpi-r4)
|
||||
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 sfp-lan" "wan sfp-wan"
|
||||
;;
|
||||
bananapi,bpi-r4-lite)
|
||||
ucidef_set_interfaces_lan_wan "lan0 lan1 lan2 lan3 sfp0" "eth1"
|
||||
;;
|
||||
bananapi,bpi-r4-2g5|\
|
||||
bananapi,bpi-r4-poe)
|
||||
ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan sfp-wan"
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@ platform_do_upgrade() {
|
|||
bananapi,bpi-r4|\
|
||||
bananapi,bpi-r4-2g5|\
|
||||
bananapi,bpi-r4-poe|\
|
||||
bananapi,bpi-r4-lite|\
|
||||
cmcc,a10-ubootmod|\
|
||||
cmcc,rax3000m|\
|
||||
cudy,tr3000-v1-ubootmod|\
|
||||
|
|
@ -252,6 +253,7 @@ platform_check_image() {
|
|||
bananapi,bpi-r4|\
|
||||
bananapi,bpi-r4-2g5|\
|
||||
bananapi,bpi-r4-poe|\
|
||||
bananapi,bpi-r4-lite|\
|
||||
cmcc,a10-ubootmod|\
|
||||
cmcc,rax3000m|\
|
||||
cudy,tr3000-v1-ubootmod|\
|
||||
|
|
@ -308,6 +310,7 @@ platform_copy_config() {
|
|||
bananapi,bpi-r4|\
|
||||
bananapi,bpi-r4-2g5|\
|
||||
bananapi,bpi-r4-poe|\
|
||||
bananapi,bpi-r4-lite|\
|
||||
cmcc,rax3000m|\
|
||||
gatonetworks,gdsp|\
|
||||
mediatek,mt7988a-rfb)
|
||||
|
|
|
|||
|
|
@ -638,6 +638,67 @@ endif
|
|||
endef
|
||||
TARGET_DEVICES += bananapi_bpi-r4-poe
|
||||
|
||||
define Device/bananapi_bpi-r4-lite
|
||||
DEVICE_VENDOR := Bananapi
|
||||
DEVICE_MODEL := BPi-R4 Lite
|
||||
DEVICE_DTS := mt7987a-bananapi-bpi-r4-lite
|
||||
DEVICE_DTS_OVERLAY:= mt7987a-bananapi-bpi-r4-lite-1pcie-2L mt7987a-bananapi-bpi-r4-lite-2pcie-1L \
|
||||
mt7987a-bananapi-bpi-r4-lite-emmc mt7987a-bananapi-bpi-r4-lite-sd \
|
||||
mt7987a-bananapi-bpi-r4-lite-nand mt7987a-bananapi-bpi-r4-lite-nor
|
||||
DEVICE_DTS_CONFIG := config-mt7987a-bananapi-bpi-r4-lite
|
||||
DEVICE_DTC_FLAGS := --pad 4096
|
||||
DEVICE_DTS_DIR := ../dts
|
||||
DEVICE_DTS_LOADADDR := 0x4ff00000
|
||||
DEVICE_PACKAGES := mt7987-2p5g-phy-firmware-internal kmod-eeprom-at24 \
|
||||
kmod-gpio-pca953x kmod-i2c-mux-pca954x kmod-rtc-pcf8563 \
|
||||
kmod-sfp e2fsprogs mkf2fs
|
||||
BLOCKSIZE := 128k
|
||||
PAGESIZE := 2048
|
||||
KERNEL_IN_UBI := 1
|
||||
UBOOTENV_IN_UBI := 1
|
||||
KERNEL_LOADADDR := 0x40000000
|
||||
KERNEL := kernel-bin | gzip
|
||||
KERNEL_INITRAMFS := kernel-bin | lzma | \
|
||||
fit lzma $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb with-initrd | pad-to 64k
|
||||
IMAGES := sysupgrade.itb
|
||||
KERNEL_INITRAMFS_SUFFIX := -recovery.itb
|
||||
KERNEL_IN_UBI := 1
|
||||
IMAGES := sysupgrade.itb
|
||||
IMAGE/sysupgrade.itb := append-kernel | fit gzip $$(KDIR)/image-$$(firstword $$(DEVICE_DTS)).dtb external-with-rootfs | pad-rootfs | append-metadata
|
||||
ARTIFACTS := \
|
||||
emmc-preloader.bin emmc-bl31-uboot.fip \
|
||||
nor-preloader.bin nor-bl31-uboot.fip \
|
||||
sdcard.img.gz \
|
||||
snand-preloader.bin snand-bl31-uboot.fip
|
||||
ARTIFACT/emmc-preloader.bin := mt7987-bl2 emmc-comb
|
||||
ARTIFACT/emmc-bl31-uboot.fip := mt7987-bl31-uboot bananapi_bpi-r4-lite-emmc
|
||||
ARTIFACT/nor-preloader.bin := mt7987-bl2 nor-comb
|
||||
ARTIFACT/nor-bl31-uboot.fip := mt7987-bl31-uboot bananapi_bpi-r4-lite-nor
|
||||
ARTIFACT/snand-preloader.bin := mt7987-bl2 spim-nand2-ubi-comb
|
||||
ARTIFACT/snand-bl31-uboot.fip := mt7987-bl31-uboot bananapi_bpi-r4-lite-snand
|
||||
ARTIFACT/sdcard.img.gz := mt798x-gpt sdmmc |\
|
||||
pad-to 17k | mt7987-bl2 sdmmc-comb |\
|
||||
pad-to 6656k | mt7987-bl31-uboot bananapi_bpi-r4-lite-sdmmc |\
|
||||
$(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),\
|
||||
pad-to 12M | append-image-stage initramfs-recovery.itb | check-size 44m |\
|
||||
) \
|
||||
pad-to 44M | mt7987-bl2 spim-nand2-ubi-comb |\
|
||||
pad-to 45M | mt7987-bl31-uboot bananapi_bpi-r4-lite-snand |\
|
||||
pad-to 49M | mt7987-bl2 nor-comb |\
|
||||
pad-to 50M | mt7987-bl31-uboot bananapi_bpi-r4-lite-nor |\
|
||||
pad-to 51M | mt7987-bl2 emmc-comb |\
|
||||
pad-to 52M | mt7987-bl31-uboot bananapi_bpi-r4-lite-emmc |\
|
||||
pad-to 56M | mt798x-gpt emmc |\
|
||||
$(if $(CONFIG_TARGET_ROOTFS_SQUASHFS),\
|
||||
pad-to 64M | append-image squashfs-sysupgrade.itb | check-size |\
|
||||
) \
|
||||
gzip
|
||||
ifeq ($(DUMP),)
|
||||
IMAGE_SIZE := $$(shell expr 64 + $$(CONFIG_TARGET_ROOTFS_PARTSIZE))m
|
||||
endif
|
||||
endef
|
||||
TARGET_DEVICES += bananapi_bpi-r4-lite
|
||||
|
||||
define Device/buffalo_wsr-6000ax8
|
||||
DEVICE_MODEL := WSR-6000AX8
|
||||
DEVICE_VENDOR := Buffalo
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue