// SPDX-License-Identifier: (GPL-2.0 OR MIT) /* * Copyright (C) 2022 MediaTek Inc. * Author: Sam.Shih */ /dts-v1/; #include "mt7988a.dtsi" #include #include #include #include / { model = "Bananapi BPI-R4"; compatible = "bananapi,bpi-r4", "mediatek,mt7988"; aliases { serial0 = &uart0; led-boot = &led_green; led-failsafe = &led_green; led-running = &led_green; led-upgrade = &led_green; }; chosen { stdout-path = &uart0; bootargs = "console=ttyS0,115200n1 loglevel=8 pci=pcie_bus_perf ubi.block=0,fit root=/dev/fit0 rootwait"; rootdisk-spim-nand = <&ubi_rootfs>; }; memory { reg = <0x00 0x40000000 0x00 0x10000000>; }; /* SFP1 cage (WAN) */ sfp1: sfp1 { compatible = "sff,sfp"; i2c-bus = <&i2c_sfp1>; los-gpios = <&pio 54 GPIO_ACTIVE_HIGH>; mod-def0-gpios = <&pio 82 GPIO_ACTIVE_LOW>; tx-disable-gpios = <&pio 70 GPIO_ACTIVE_HIGH>; tx-fault-gpios = <&pio 69 GPIO_ACTIVE_HIGH>; rate-select0-gpios = <&pio 21 GPIO_ACTIVE_LOW>; maximum-power-milliwatt = <3000>; }; /* SFP2 cage (LAN) */ sfp2: sfp2 { compatible = "sff,sfp"; i2c-bus = <&i2c_sfp2>; los-gpios = <&pio 2 GPIO_ACTIVE_HIGH>; mod-def0-gpios = <&pio 83 GPIO_ACTIVE_LOW>; tx-disable-gpios = <&pio 0 GPIO_ACTIVE_HIGH>; tx-fault-gpios = <&pio 1 GPIO_ACTIVE_HIGH>; rate-select0-gpios = <&pio 3 GPIO_ACTIVE_LOW>; maximum-power-milliwatt = <3000>; }; gpio-keys { compatible = "gpio-keys"; wps { label = "WPS"; linux,code = ; gpios = <&pio 14 GPIO_ACTIVE_LOW>; }; }; gpio-leds { compatible = "gpio-leds"; led_green: led-green { function = LED_FUNCTION_STATUS; color = ; gpios = <&pio 79 GPIO_ACTIVE_HIGH>; default-state = "on"; }; led_blue: led-blue { function = LED_FUNCTION_WPS; color = ; gpios = <&pio 63 GPIO_ACTIVE_HIGH>; default-state = "off"; }; }; }; ð { status = "okay"; }; &gmac0 { status = "okay"; }; &gmac1 { sfp = <&sfp2>; managed = "in-band-status"; phy-mode = "usxgmii"; status = "okay"; }; &gmac2 { sfp = <&sfp1>; managed = "in-band-status"; phy-mode = "usxgmii"; status = "okay"; }; &switch { status = "okay"; }; &gsw_phy0 { pinctrl-names = "gbe-led"; pinctrl-0 = <&gbe0_led0_pins>; }; &gsw_port0 { label = "wan"; }; &gsw_phy0_led0 { status = "okay"; color = ; }; &gsw_phy1 { pinctrl-names = "gbe-led"; pinctrl-0 = <&gbe1_led0_pins>; }; &gsw_phy1_led0 { status = "okay"; color = ; }; &gsw_phy2 { pinctrl-names = "gbe-led"; pinctrl-0 = <&gbe2_led0_pins>; }; &gsw_phy2_led0 { status = "okay"; color = ; }; &gsw_phy3 { pinctrl-names = "gbe-led"; pinctrl-0 = <&gbe3_led0_pins>; }; &gsw_phy3_led0 { status = "okay"; color = ; }; &cpu0 { proc-supply = <&rt5190_buck3>; }; &cpu1 { proc-supply = <&rt5190_buck3>; }; &cpu2 { proc-supply = <&rt5190_buck3>; }; &cpu3 { proc-supply = <&rt5190_buck3>; }; &cci { proc-supply = <&rt5190_buck3>; }; &i2c0 { pinctrl-names = "default"; pinctrl-0 = <&i2c0_pins>; status = "okay"; rt5190a_64: rt5190a@64 { compatible = "richtek,rt5190a"; reg = <0x64>; vin2-supply = <&rt5190_buck1>; vin3-supply = <&rt5190_buck1>; vin4-supply = <&rt5190_buck1>; regulators { rt5190_buck1: buck1 { regulator-name = "rt5190a-buck1"; regulator-min-microvolt = <5090000>; regulator-max-microvolt = <5090000>; regulator-allowed-modes = ; regulator-boot-on; regulator-always-on; }; buck2 { regulator-name = "vcore"; regulator-min-microvolt = <600000>; regulator-max-microvolt = <1400000>; regulator-boot-on; regulator-always-on; }; rt5190_buck3: buck3 { regulator-name = "vproc"; regulator-min-microvolt = <600000>; regulator-max-microvolt = <1400000>; regulator-boot-on; }; buck4 { regulator-name = "rt5190a-buck4"; regulator-min-microvolt = <850000>; regulator-max-microvolt = <850000>; regulator-allowed-modes = ; regulator-boot-on; regulator-always-on; }; ldo { regulator-name = "rt5190a-ldo"; regulator-min-microvolt = <1200000>; regulator-max-microvolt = <1200000>; regulator-boot-on; regulator-always-on; }; }; }; }; &i2c2 { pinctrl-names = "default"; pinctrl-0 = <&i2c2_1_pins>; status = "okay"; pca9545: i2c-switch@70 { reg = <0x70>; compatible = "nxp,pca9545"; reset-gpios = <&pio 5 GPIO_ACTIVE_LOW>; #address-cells = <1>; #size-cells = <0>; i2c_rtc: i2c@0 { //eeprom,rtc,ngff #address-cells = <1>; #size-cells = <0>; reg = <0>; eeprom@50 { compatible = "atmel,24c02"; reg = <0x50>; address-bits = <8>; page-size = <8>; size = <256>; }; eeprom@57 { compatible = "atmel,24c02"; reg = <0x57>; address-bits = <8>; page-size = <8>; size = <256>; }; pcf8563: rtc@51 { compatible = "nxp,pcf8563"; reg = <0x51>; status = "disabled"; }; }; i2c_sfp1: i2c@1 { #address-cells = <1>; #size-cells = <0>; reg = <1>; }; i2c_sfp2: i2c@2 { #address-cells = <1>; #size-cells = <0>; reg = <2>; }; i2c_wifi: i2c@3 { #address-cells = <1>; #size-cells = <0>; reg = <3>; }; }; }; /* mPCIe SIM2 */ &pcie0 { pinctrl-names = "default"; pinctrl-0 = <&pcie0_pins>; status = "okay"; }; /* mPCIe SIM3 */ &pcie1 { pinctrl-names = "default"; pinctrl-0 = <&pcie1_pins>; status = "okay"; }; /* M.2 key-B SIM1 */ &pcie2 { pinctrl-names = "default"; pinctrl-0 = <&pcie2_pins>; status = "okay"; }; /* M.2 key-M SSD */ &pcie3 { pinctrl-names = "default"; pinctrl-0 = <&pcie3_pins>; status = "okay"; }; &ssusb1 { status = "okay"; }; &tphy { status = "okay"; }; &spi0 { pinctrl-names = "default"; pinctrl-0 = <&spi0_flash_pins>; status = "okay"; spi_nand: spi_nand@0 { compatible = "spi-nand"; reg = <0>; spi-max-frequency = <52000000>; spi-tx-buswidth = <4>; spi-rx-buswidth = <4>; }; }; &spi_nand { partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; partition@0 { label = "bl2"; reg = <0x0 0x200000>; read-only; }; partition@200000 { label = "ubi"; reg = <0x200000 0x7e00000>; 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"; }; }; }; }; }; &uart0 { status = "okay"; }; &uart1 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&uart1_2_lite_pins>; }; &uart2 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&uart2_3_pins>; }; &watchdog { status = "okay"; }; &xphy { status = "okay"; };