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


Quelle  sun55i-t527-orangepi-4a.dts   Sprache: unbekannt

 
// SPDX-License-Identifier: (GPL-2.0-only OR MIT)
/*
 * Copyright (C) 2025 Chen-Yu Tsai <wens@csie.org>
 */

/dts-v1/;

#include "sun55i-a523.dtsi"

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

/ {
 model = "OrangePi 4A";
 compatible = "xunlong,orangepi-4a", "allwinner,sun55i-t527";

 aliases {
  serial0 = &uart0;
 };

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

 ext_osc32k: ext-osc32k-clk {
  #clock-cells = <0>;
  compatible = "fixed-clock";
  clock-frequency = <32768>;
  clock-output-names = "ext_osc32k";
 };

 leds {
  compatible = "gpio-leds";

  /* PWM capable pin, but PWM isn't supported yet. */
  led {
   function = LED_FUNCTION_STATUS;
   color = <LED_COLOR_ID_GREEN>;
   gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>; /* PD20 */
  };
 };

 wifi_pwrseq: pwrseq {
  compatible = "mmc-pwrseq-simple";
  reset-gpios = <&r_pio 1 1 GPIO_ACTIVE_LOW>; /* PM1 */
  clocks = <&rtc CLK_OSC32K_FANOUT>;
  clock-names = "ext_clock";
 };

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

 reg_pcie_vcc3v3: regulator-pcie-vcc3v3 {
  compatible = "regulator-fixed";
  regulator-name = "vcc-pcie-3v3";
  regulator-min-microvolt = <3300000>;
  regulator-max-microvolt = <3300000>;
  vin-supply = <®_vcc5v>;
  gpio = <&r_pio 0 8 GPIO_ACTIVE_HIGH>; /* PL8 */
  enable-active-high;
 };

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

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

&ehci0 {
 status = "okay";
};

&ehci1 {
 status = "okay";
};

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

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

&mmc1 {
 bus-width = <4>;
 mmc-pwrseq = <&wifi_pwrseq>;
 non-removable;
 vmmc-supply = <®_dldo1_323>;
 vqmmc-supply = <®_bldo1>;
 status = "okay";

 brcmf: wifi@1 {
  compatible = "brcm,bcm4329-fmac";
  reg = <1>;
  interrupt-parent = <&r_pio>;
  interrupts = <1 0 IRQ_TYPE_LEVEL_LOW>; /* PM0 */
  interrupt-names = "host-wake";
 };
};

&mmc2 {
 bus-width = <8>;
 cap-mmc-hw-reset;
 mmc-ddr-1_8v;
 mmc-hs200-1_8v;
 non-removable;
 vmmc-supply = <®_cldo3>;
 vqmmc-supply = <®_cldo1>;
 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>; /* VCC-IO for 3.3v; VCC-MCSI for 1.8v */
 vcc-pg-supply = <®_bldo1>;
 vcc-ph-supply = <®_cldo3>; /* via VCC-IO */
 vcc-pi-supply = <®_cldo3>;
 vcc-pj-supply = <®_cldo1>;
 vcc-pk-supply = <®_cldo1>;
};

&r_i2c0 {
 status = "okay";

 axp717: pmic@35 {
  compatible = "x-powers,axp717";
  reg = <0x35>;
  interrupt-controller;
  #interrupt-cells = <1>;
  interrupts-extended = <&nmi_intc 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 = <1160000>;
    regulator-max-microvolt = <1160000>;
    regulator-name = "vcc-dram";
   };

   reg_dcdc4: dcdc4 {
    /* feeds 3.3V pin on GPIO header */
    regulator-always-on;
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-name = "vdd-io";
   };

   aldo1 {
    /* not actually connected */
    regulator-name = "avdd-csi";
   };

   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-wifi";
   };

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

   bldo3 {
    /* not actually connected */
    regulator-name = "afvcc-csi";
   };

   bldo4 {
    /* not actually connected */
    regulator-name = "dvdd-csi";
   };

   reg_cldo1: cldo1 {
    regulator-always-on;
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <1800000>;
    regulator-name = "vcc-cvp-pc-lvds-mcsi-pk-efuse-pcie-edp-1v8";
   };

   reg_cldo2: cldo2 {
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-name = "vcc3v3-csi";
   };

   reg_cldo3: cldo3 {
    regulator-always-on;
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-name = "vcc-io-mmc-nand-pd-pi-usb";
   };

   reg_cldo4: cldo4 {
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-name = "vcc-3v3-phy1-lcd";
   };

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

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

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

  regulators {
   reg_aldo1_323: aldo1 {
    /* less capable and shares load with dldo1 */
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-name = "vcc-wifi";
   };

   reg_dldo1_323: dldo1 {
    /* more capable and shares load with aldo1 */
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-name = "vcc-wifi2";
   };

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

   /* DCDC2 is polyphased with DCDC1 */

   /* Some RISC-V management core related voltage */
   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 = <®_bldo2>;
};

&rtc {
 clocks = <&r_ccu CLK_BUS_R_RTC>, <&osc24M>,
   <&r_ccu CLK_R_AHB>, <&ext_osc32k>;
 clock-names = "bus", "hosc", "ahb", "ext-osc32k";
 assigned-clocks = <&rtc CLK_OSC32K>;
 assigned-clock-rates = <32768>;
};

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

&uart1 {
 pinctrl-names = "default";
 pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
 uart-has-rtscts;
 status = "okay";

 bluetooth {
  compatible = "brcm,bcm4345c5";
  clocks = <&rtc CLK_OSC32K_FANOUT>;
  clock-names = "lpo";
  vbat-supply = <®_aldo1_323>;
  vddio-supply = <®_bldo1>;
  device-wakeup-gpios = <&r_pio 1 3 GPIO_ACTIVE_HIGH>; /* PM3 */
  host-wakeup-gpios = <&r_pio 1 4 GPIO_ACTIVE_HIGH>; /* PM4 */
  shutdown-gpios = <&r_pio 1 2 GPIO_ACTIVE_HIGH>; /* PM2 */
 };
};

&usb_otg {
 /*
  * The OTG controller is connected to one of the type-A ports.
  * There is a regulator, controlled by a GPIO, to provide VBUS power
  * to the port, and a VBUSDET GPIO, to detect externally provided
  * power. But without ID or CC pins there is no real way to do a
  * runtime role detection.
  */
 dr_mode = "host";
 status = "okay";
};

&usbphy {
 usb0_vbus-supply = <®_otg_vbus>;
 usb0_vbus_det-gpios = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
 usb1_vbus-supply = <®_usb_vbus>;
 status = "okay";
};

[ Dauer der Verarbeitung: 0.13 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


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