Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  mt7986a-bananapi-bpi-r3.dts   Sprache: unbekannt

 
Spracherkennung für: .dts vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]

// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/*
 * Copyright (C) 2021 MediaTek Inc.
 * Authors: Sam.Shih <sam.shih@mediatek.com>
 *          Frank Wunderlich <frank-w@public-files.de>
 *          Daniel Golle <daniel@makrotopia.org>
 */

/dts-v1/;
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/mt65xx.h>

#include "mt7986a.dtsi"

/ {
 model = "Bananapi BPI-R3";
 chassis-type = "embedded";
 compatible = "bananapi,bpi-r3", "mediatek,mt7986a";

 aliases {
  serial0 = &uart0;
  ethernet0 = &gmac0;
  ethernet1 = &gmac1;
 };

 chosen {
  stdout-path = "serial0:115200n8";
 };

 dcin: regulator-12vd {
  compatible = "regulator-fixed";
  regulator-name = "12vd";
  regulator-min-microvolt = <12000000>;
  regulator-max-microvolt = <12000000>;
  regulator-boot-on;
  regulator-always-on;
 };

 fan: pwm-fan {
  compatible = "pwm-fan";
  #cooling-cells = <2>;
  /* cooling level (0, 1, 2) - pwm inverted */
  cooling-levels = <255 96 0>;
  pwms = <&pwm 0 10000>;
  status = "okay";
 };

 gpio-keys {
  compatible = "gpio-keys";

  reset-key {
   label = "reset";
   linux,code = <KEY_RESTART>;
   gpios = <&pio 9 GPIO_ACTIVE_LOW>;
  };

  wps-key {
   label = "wps";
   linux,code = <KEY_WPS_BUTTON>;
   gpios = <&pio 10 GPIO_ACTIVE_LOW>;
  };
 };

 /* i2c of the left SFP cage (wan) */
 i2c_sfp1: i2c-gpio-0 {
  compatible = "i2c-gpio";
  sda-gpios = <&pio 16 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
  scl-gpios = <&pio 17 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
  i2c-gpio,delay-us = <2>;
  #address-cells = <1>;
  #size-cells = <0>;
 };

 /* i2c of the right SFP cage (lan) */
 i2c_sfp2: i2c-gpio-1 {
  compatible = "i2c-gpio";
  sda-gpios = <&pio 18 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
  scl-gpios = <&pio 19 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
  i2c-gpio,delay-us = <2>;
  #address-cells = <1>;
  #size-cells = <0>;
 };

 leds {
  compatible = "gpio-leds";

  green_led: led-0 {
   color = <LED_COLOR_ID_GREEN>;
   function = LED_FUNCTION_POWER;
   gpios = <&pio 69 GPIO_ACTIVE_HIGH>;
   default-state = "on";
  };

  blue_led: led-1 {
   color = <LED_COLOR_ID_BLUE>;
   function = LED_FUNCTION_STATUS;
   gpios = <&pio 86 GPIO_ACTIVE_HIGH>;
   default-state = "off";
  };
 };

 reg_1p8v: regulator-1p8v {
  compatible = "regulator-fixed";
  regulator-name = "1.8vd";
  regulator-min-microvolt = <1800000>;
  regulator-max-microvolt = <1800000>;
  regulator-boot-on;
  regulator-always-on;
  vin-supply = <&dcin>;
 };

 reg_3p3v: regulator-3p3v {
  compatible = "regulator-fixed";
  regulator-name = "3.3vd";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  regulator-boot-on;
  regulator-always-on;
  vin-supply = <&dcin>;
 };

 /* left SFP cage (wan) */
 sfp1: sfp-1 {
  compatible = "sff,sfp";
  i2c-bus = <&i2c_sfp1>;
  los-gpios = <&pio 46 GPIO_ACTIVE_HIGH>;
  maximum-power-milliwatt = <3000>;
  mod-def0-gpios = <&pio 49 GPIO_ACTIVE_LOW>;
  tx-disable-gpios = <&pio 20 GPIO_ACTIVE_HIGH>;
  tx-fault-gpios = <&pio 7 GPIO_ACTIVE_HIGH>;
 };

 /* right SFP cage (lan) */
 sfp2: sfp-2 {
  compatible = "sff,sfp";
  i2c-bus = <&i2c_sfp2>;
  los-gpios = <&pio 31 GPIO_ACTIVE_HIGH>;
  mod-def0-gpios = <&pio 47 GPIO_ACTIVE_LOW>;
  maximum-power-milliwatt = <3000>;
  tx-disable-gpios = <&pio 15 GPIO_ACTIVE_HIGH>;
  tx-fault-gpios = <&pio 48 GPIO_ACTIVE_HIGH>;
 };
};

&cpu_thermal {
 cooling-maps {
  map-cpu-active-high {
   /* active: set fan to cooling level 2 */
   cooling-device = <&fan 2 2>;
   trip = <&cpu_trip_active_high>;
  };

  map-cpu-active-med {
   /* active: set fan to cooling level 1 */
   cooling-device = <&fan 1 1>;
   trip = <&cpu_trip_active_med>;
  };

  map-cpu-active-low {
   /* active: set fan to cooling level 0 */
   cooling-device = <&fan 0 0>;
   trip = <&cpu_trip_active_low>;
  };
 };
};

&crypto {
 status = "okay";
};

ð {
 status = "okay";

 gmac0: mac@0 {
  compatible = "mediatek,eth-mac";
  reg = <0>;
  phy-mode = "2500base-x";

  fixed-link {
   speed = <2500>;
   full-duplex;
   pause;
  };
 };

 gmac1: mac@1 {
  compatible = "mediatek,eth-mac";
  reg = <1>;
  phy-mode = "2500base-x";
  sfp = <&sfp1>;
  managed = "in-band-status";
 };

 mdio: mdio-bus {
  #address-cells = <1>;
  #size-cells = <0>;
 };
};

&mdio {
 switch: switch@31 {
  compatible = "mediatek,mt7531";
  reg = <31>;
  interrupt-controller;
  #interrupt-cells = <1>;
  interrupts-extended = <&pio 66 IRQ_TYPE_LEVEL_HIGH>;
  reset-gpios = <&pio 5 GPIO_ACTIVE_HIGH>;
 };
};

&mmc0 {
 pinctrl-names = "default", "state_uhs";
 pinctrl-0 = <&mmc0_pins_default>;
 pinctrl-1 = <&mmc0_pins_uhs>;
 vmmc-supply = <®_3p3v>;
 vqmmc-supply = <®_1p8v>;
};

&i2c0 {
 pinctrl-names = "default";
 pinctrl-0 = <&i2c_pins>;
 status = "okay";
};

&pcie {
 pinctrl-names = "default";
 pinctrl-0 = <&pcie_pins>;
 status = "okay";
};

&pcie_phy {
 status = "okay";
};

&pio {
 i2c_pins: i2c-pins {
  mux {
   function = "i2c";
   groups = "i2c";
  };
 };

 mmc0_pins_default: mmc0-pins {
  mux {
   function = "emmc";
   groups = "emmc_51";
  };
  conf-cmd-dat {
   pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
          "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
          "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
   input-enable;
   drive-strength = <4>;
   bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
  };
  conf-clk {
   pins = "EMMC_CK";
   drive-strength = <6>;
   bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
  };
  conf-ds {
   pins = "EMMC_DSL";
   bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
  };
  conf-rst {
   pins = "EMMC_RSTB";
   drive-strength = <4>;
   bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
  };
 };

 mmc0_pins_uhs: mmc0-uhs-pins {
  mux {
   function = "emmc";
   groups = "emmc_51";
  };
  conf-cmd-dat {
   pins = "EMMC_DATA_0", "EMMC_DATA_1", "EMMC_DATA_2",
          "EMMC_DATA_3", "EMMC_DATA_4", "EMMC_DATA_5",
          "EMMC_DATA_6", "EMMC_DATA_7", "EMMC_CMD";
   input-enable;
   drive-strength = <4>;
   bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
  };
  conf-clk {
   pins = "EMMC_CK";
   drive-strength = <6>;
   bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
  };
  conf-ds {
   pins = "EMMC_DSL";
   bias-pull-down = <MTK_PUPD_SET_R1R0_10>; /* pull-down 50K */
  };
  conf-rst {
   pins = "EMMC_RSTB";
   drive-strength = <4>;
   bias-pull-up = <MTK_PUPD_SET_R1R0_01>; /* pull-up 10K */
  };
 };

 pcie_pins: pcie-pins {
  mux {
   function = "pcie";
   groups = "pcie_clk", "pcie_pereset";
  };
 };

 pwm_pins: pwm-pins {
  mux {
   function = "pwm";
   groups = "pwm0", "pwm1_0";
  };
 };

 spi_flash_pins: spi-flash-pins {
  mux {
   function = "spi";
   groups = "spi0", "spi0_wp_hold";
  };
 };

 spic_pins: spic-pins {
  mux {
   function = "spi";
   groups = "spi1_0";
  };
 };

 uart1_pins: uart1-pins {
  mux {
   function = "uart";
   groups = "uart1_rx_tx";
  };
 };

 uart2_pins: uart2-pins {
  mux {
   function = "uart";
   groups = "uart2_0_rx_tx";
  };
 };

 wf_2g_5g_pins: wf-2g-5g-pins {
  mux {
   function = "wifi";
   groups = "wf_2g", "wf_5g";
  };
  conf {
   pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
          "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
          "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
          "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
          "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
          "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
          "WF1_TOP_CLK", "WF1_TOP_DATA";
   drive-strength = <4>;
  };
 };

 wf_dbdc_pins: wf-dbdc-pins {
  mux {
   function = "wifi";
   groups = "wf_dbdc";
  };
  conf {
   pins = "WF0_HB1", "WF0_HB2", "WF0_HB3", "WF0_HB4",
          "WF0_HB0", "WF0_HB0_B", "WF0_HB5", "WF0_HB6",
          "WF0_HB7", "WF0_HB8", "WF0_HB9", "WF0_HB10",
          "WF0_TOP_CLK", "WF0_TOP_DATA", "WF1_HB1",
          "WF1_HB2", "WF1_HB3", "WF1_HB4", "WF1_HB0",
          "WF1_HB5", "WF1_HB6", "WF1_HB7", "WF1_HB8",
          "WF1_TOP_CLK", "WF1_TOP_DATA";
   drive-strength = <4>;
  };
 };

 wf_led_pins: wf-led-pins {
  mux {
   function = "led";
   groups = "wifi_led";
  };
 };
};

&pwm {
 pinctrl-names = "default";
 pinctrl-0 = <&pwm_pins>;
 status = "okay";
};

&spi0 {
 pinctrl-names = "default";
 pinctrl-0 = <&spi_flash_pins>;
 status = "okay";
};

&spi1 {
 pinctrl-names = "default";
 pinctrl-0 = <&spic_pins>;
 status = "okay";
};

&ssusb {
 status = "okay";
};

&switch {
 ports {
  #address-cells = <1>;
  #size-cells = <0>;

  port@0 {
   reg = <0>;
   label = "wan";
  };

  port@1 {
   reg = <1>;
   label = "lan0";
  };

  port@2 {
   reg = <2>;
   label = "lan1";
  };

  port@3 {
   reg = <3>;
   label = "lan2";
  };

  port@4 {
   reg = <4>;
   label = "lan3";
  };

  port5: port@5 {
   reg = <5>;
   label = "lan4";
   phy-mode = "2500base-x";
   sfp = <&sfp2>;
   managed = "in-band-status";
  };

  port@6 {
   reg = <6>;
   label = "cpu";
   ethernet = <&gmac0>;
   phy-mode = "2500base-x";

   fixed-link {
    speed = <2500>;
    full-duplex;
    pause;
   };
  };
 };
};

&trng {
 status = "okay";
};

&uart0 {
 status = "okay";
};

&uart1 {
 pinctrl-names = "default";
 pinctrl-0 = <&uart1_pins>;
 status = "okay";
};

&uart2 {
 pinctrl-names = "default";
 pinctrl-0 = <&uart2_pins>;
 status = "okay";
};

&usb_phy {
 status = "okay";
};

&watchdog {
 status = "okay";
};

&wifi {
 status = "okay";
 pinctrl-names = "default", "dbdc";
 pinctrl-0 = <&wf_2g_5g_pins>, <&wf_led_pins>;
 pinctrl-1 = <&wf_dbdc_pins>, <&wf_led_pins>;

 led {
  led-active-low;
 };
};


[Dauer der Verarbeitung: 0.13 Sekunden, vorverarbeitet 2026-04-29]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge