Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Linux/arch/arm64/boot/dts/allwinner/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 7 kB image not shown  

Quelle  sun55i-a527-cubie-a5e.dts   Sprache: unbekannt

 
// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
// Copyright (C) 2025 Arm Ltd.

/dts-v1/;

#include "sun55i-a523.dtsi"

#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/leds/common.h>

/ {
 model = "Radxa Cubie A5E";
 compatible = "radxa,cubie-a5e", "allwinner,sun55i-a527";

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

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

 leds {
  compatible = "gpio-leds";

  power-led {
   function = LED_FUNCTION_POWER;
   color = <LED_COLOR_ID_GREEN>;
   gpios = <&r_pio 0 4 GPIO_ACTIVE_LOW>; /* PL4 */
   default-state = "on";
   linux,default-trigger = "heartbeat";
  };

  use-led {
   function = LED_FUNCTION_ACTIVITY;
   color = <LED_COLOR_ID_BLUE>;
   gpios = <&r_pio 0 5 GPIO_ACTIVE_LOW>; /* PL5 */
  };
 };

 reg_vcc5v: vcc5v {
  /* board wide 5V supply from the USB-C connector */
  compatible = "regulator-fixed";
  regulator-name = "vcc-5v";
  regulator-min-microvolt = <5000000>;
  regulator-max-microvolt = <5000000>;
  regulator-always-on;
 };

 reg_usb_vbus: vbus {
  compatible = "regulator-fixed";
  regulator-name = "usb-vbus";
  regulator-min-microvolt = <5000000>;
  regulator-max-microvolt = <5000000>;
  vin-supply = <®_vcc5v>;
  gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
  enable-active-high;
 };
};

&ehci0 {
 status = "okay";
};

&ehci1 {
 status = "okay";
};

&gmac0 {
 phy-mode = "rgmii-id";
 phy-handle = <&ext_rgmii_phy>;
 phy-supply = <®_cldo3>;

 allwinner,tx-delay-ps = <300>;
 allwinner,rx-delay-ps = <400>;

 status = "okay";
};

&gpu {
 mali-supply = <®_dcdc2>;
 status = "okay";
};

&mdio0 {
 ext_rgmii_phy: ethernet-phy@1 {
  compatible = "ethernet-phy-ieee802.3-c22";
  reg = <1>;
  reset-gpios = <&pio 7 8 GPIO_ACTIVE_LOW>; /* PH8 */
  reset-assert-us = <10000>;
  reset-deassert-us = <150000>;
 };
};

&mmc0 {
 vmmc-supply = <®_cldo3>;
 cd-gpios = <&pio 5 6 (GPIO_ACTIVE_LOW | GPIO_PULL_UP)>; /* PF6 */
 bus-width = <4>;
 status = "okay";
};

&ohci0 {
 status = "okay";
};

&ohci1 {
 status = "okay";
};

&pio {
 vcc-pb-supply = <®_cldo3>; /* via VCC-IO */
 vcc-pc-supply = <®_cldo1>;
 vcc-pd-supply = <®_cldo3>;
 vcc-pe-supply = <®_aldo2>;
 vcc-pf-supply = <®_cldo3>; /* actually switchable */
 vcc-pg-supply = <®_bldo1>;
 vcc-ph-supply = <®_cldo3>; /* via VCC-IO */
 vcc-pi-supply = <®_cldo3>;
 vcc-pj-supply = <®_cldo4>;
 vcc-pk-supply = <®_cldo1>;
};

&r_i2c0 {
 status = "okay";

 axp717: pmic@34 {
  compatible = "x-powers,axp717";
  reg = <0x34>;
  interrupt-controller;
  #interrupt-cells = <1>;
  interrupt-parent = <&nmi_intc>;
  interrupts = <0 IRQ_TYPE_LEVEL_LOW>;

  vin1-supply = <®_vcc5v>;
  vin2-supply = <®_vcc5v>;
  vin3-supply = <®_vcc5v>;
  vin4-supply = <®_vcc5v>;
  aldoin-supply = <®_vcc5v>;
  bldoin-supply = <®_vcc5v>;
  cldoin-supply = <®_vcc5v>;

  regulators {
   /* Supplies the "little" cluster (1.4 GHz cores) */
   reg_dcdc1: dcdc1 {
    regulator-always-on;
    regulator-min-microvolt = <900000>;
    regulator-max-microvolt = <1160000>;
    regulator-name = "vdd-cpul";
   };

   reg_dcdc2: dcdc2 {
    regulator-always-on;
    regulator-min-microvolt = <920000>;
    regulator-max-microvolt = <920000>;
    regulator-name = "vdd-gpu-sys";
   };

   reg_dcdc3: dcdc3 {
    regulator-always-on;
    regulator-min-microvolt = <1100000>;
    regulator-max-microvolt = <1100000>;
    regulator-name = "vdd-dram";
   };

   reg_aldo1: aldo1 {
    /* not connected */
   };

   reg_aldo2: aldo2 {
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-name = "vcc-pe";
   };

   reg_aldo3: aldo3 {
    /* supplies the I2C pins for this PMIC */
    regulator-always-on;
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-name = "vcc-pl-usb";
   };

   reg_aldo4: aldo4 {
    regulator-always-on;
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-name = "vcc-pll-dxco-avcc";
   };

   reg_bldo1: bldo1 {
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-name = "vcc-pg-iowifi";
   };

   reg_bldo2: bldo2 {
    regulator-always-on;
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-name = "vcc-pm-lpddr4";
   };

   reg_bldo3: bldo3 {
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-name = "vcc-mipi-cam";
   };

   reg_bldo4: bldo4 {
    /* not connected */
   };

   reg_cldo1: cldo1 {
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-name = "vcc-pc-and-their-dog";
   };

   reg_cldo2: cldo2 {
    /* not connected */
   };

   reg_cldo3: cldo3 {
    /* IO, USB-2, 3V3, card, NAND, sensor, PI */
    regulator-always-on;
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-name = "vcc-io-mmc-spi-ana";
   };

   reg_cldo4: cldo4 {
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-name = "vcc-pj-phy";
   };

   reg_cpusldo: cpusldo {
    /* supplies the management core */
    regulator-always-on;
    regulator-min-microvolt = <900000>;
    regulator-max-microvolt = <900000>;
    regulator-name = "vdd-cpus";
   };
  };
 };

 axp323: pmic@36 {
  compatible = "x-powers,axp323";
  reg = <0x36>;
  #interrupt-cells = <1>;
  interrupt-controller;
  interrupt-parent = <&nmi_intc>;
  interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
  status = "okay";

  vin1-supply = <®_vcc5v>;
  vin2-supply = <®_vcc5v>;
  vin3-supply = <®_vcc5v>;

  regulators {
   aldo1 {
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-name = "vcc-mipi-dsi";
   };

   dldo1 {
    /* not connected */
   };

   /* Supplies the "big" cluster (1.8 GHz cores) */
   reg_dcdc1_323: dcdc1 {
    regulator-always-on;
    regulator-min-microvolt = <900000>;
    regulator-max-microvolt = <1160000>;
    regulator-name = "vdd-cpub";
   };

   /* DCDC2 is polyphased with DCDC1 */

   /* RISC-V management core supply */
   reg_dcdc3_323: dcdc3 {
    regulator-always-on;
    regulator-min-microvolt = <900000>;
    regulator-max-microvolt = <900000>;
    regulator-name = "vdd-dnr";
   };
  };
 };
};

&r_pio {
/*
 * Specifying the supply would create a circular dependency.
 *
 * vcc-pl-supply = <®_aldo3>;
 */
 vcc-pm-supply = <®_aldo3>;
};

&uart0 {
 pinctrl-names = "default";
 pinctrl-0 = <&uart0_pb_pins>;
 status = "okay";
};

&usb_otg {
 /*
  * The USB-C port is the primary power supply, so in this configuration
  * relies on the other end of the USB cable to supply the VBUS power.
  * So use this port in peripheral mode.
  * It is possible to supply the board with the 5V pins on the GPIO
  * header, and since the DCIN_5V line is hardwired to the USB-C VBUS
  * pins, the port turns into a host port, unconditionally supplying
  * power. The dr_mode property should be changed to "host" here, if
  * users choose this setup.
  */
 dr_mode = "peripheral";
 status = "okay";
};

/*
 * The schematic describes USB0_ID (PL10), measuring VBUS_5V, which looks to
 * be always on. Also there is USB-VBUSDET (PL2), which is measuring the same
 * VBUS_5V. There is also DCIN_DET, which measures DCIN_5V, so the power
 * input rail.
 * None of them seem to make any sense in relation to detecting USB devices
 * or whether there is power provided via any USB pins: they would always
 * report high, otherwise the system wouldn't be running.
 * The AXP717C provides proper USB-C CC pin functionality, but the PMIC is
 * not connected to those pins of the USB-C connector.
 */
&usbphy {
 usb0_vbus-supply = <®_vcc5v>;
 usb1_vbus-supply = <®_usb_vbus>;
 status = "okay";
};

[ Dauer der Verarbeitung: 0.4 Sekunden  (vorverarbeitet)  ]