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

Quelle  loongson-2k0500.dtsi   Sprache: unbekannt

 
// SPDX-License-Identifier: GPL-2.0
/*
 * Copyright (C) 2023 Loongson Technology Corporation Limited
 */

/dts-v1/;

#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/clock/loongson,ls2k-clk.h>

/ {
 #address-cells = <2>;
 #size-cells = <2>;

 cpus {
  #address-cells = <1>;
  #size-cells = <0>;

  cpu0: cpu@0 {
   compatible = "loongson,la264";
   device_type = "cpu";
   reg = <0x0>;
   clocks = <&clk LOONGSON2_NODE_CLK>;
  };
 };

 ref_100m: clock-ref-100m {
  compatible = "fixed-clock";
  #clock-cells = <0>;
  clock-frequency = <100000000>;
  clock-output-names = "ref_100m";
 };

 cpuintc: interrupt-controller {
  compatible = "loongson,cpu-interrupt-controller";
  #interrupt-cells = <1>;
  interrupt-controller;
 };

 thermal-zones {
  cpu-thermal {
   polling-delay-passive = <1000>;
   polling-delay = <5000>;
   thermal-sensors = <&tsensor 0>;

   trips {
    cpu-alert {
     temperature = <33000>;
     hysteresis = <2000>;
     type = "active";
    };

    cpu-crit {
     temperature = <85000>;
     hysteresis = <5000>;
     type = "critical";
    };
   };
  };
 };

 bus@10000000 {
  compatible = "simple-bus";
  ranges = <0x0 0x10000000 0x0 0x10000000 0x0 0x10000000>,
    <0x0 0x02000000 0x0 0x02000000 0x0 0x02000000>,
    <0x0 0x20000000 0x0 0x20000000 0x0 0x10000000>,
    <0x0 0x40000000 0x0 0x40000000 0x0 0x40000000>,
    <0xfe 0x0 0xfe 0x0 0x0 0x40000000>;
  #address-cells = <2>;
  #size-cells = <2>;

  isa@16400000 {
   compatible = "isa";
   #size-cells = <1>;
   #address-cells = <2>;
   ranges = <1 0x0 0x0 0x16400000 0x4000>;
  };

  clk: clock-controller@1fe10400 {
   compatible = "loongson,ls2k0500-clk";
   reg = <0x0 0x1fe10400 0x0 0x2c>;
   #clock-cells = <1>;
   clocks = <&ref_100m>;
   clock-names = "ref_100m";
  };

  dma-controller@1fe10c00 {
   compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
   reg = <0 0x1fe10c00 0 0x8>;
   interrupt-parent = <&eiointc>;
   interrupts = <67>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #dma-cells = <1>;
   status = "disabled";
  };

  dma-controller@1fe10c10 {
   compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
   reg = <0 0x1fe10c10 0 0x8>;
   interrupt-parent = <&eiointc>;
   interrupts = <68>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #dma-cells = <1>;
   status = "disabled";
  };

  apbdma2: dma-controller@1fe10c20 {
   compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
   reg = <0 0x1fe10c20 0 0x8>;
   interrupt-parent = <&eiointc>;
   interrupts = <69>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #dma-cells = <1>;
   status = "disabled";
  };

  apbdma3: dma-controller@1fe10c30 {
   compatible = "loongson,ls2k0500-apbdma", "loongson,ls2k1000-apbdma";
   reg = <0 0x1fe10c30 0 0x8>;
   interrupt-parent = <&eiointc>;
   interrupts = <70>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #dma-cells = <1>;
   status = "disabled";
  };

  liointc0: interrupt-controller@1fe11400 {
   compatible = "loongson,liointc-2.0";
   reg = <0x0 0x1fe11400 0x0 0x40>,
         <0x0 0x1fe11040 0x0 0x8>;
   reg-names = "main", "isr0";

   interrupt-controller;
   #interrupt-cells = <2>;
   interrupt-parent = <&cpuintc>;
   interrupts = <2>;
   interrupt-names = "int0";

   loongson,parent_int_map = <0xffffffff>, /* int0 */
        <0x00000000>, /* int1 */
        <0x00000000>, /* int2 */
        <0x00000000>; /* int3 */
  };

  liointc1: interrupt-controller@1fe11440 {
   compatible = "loongson,liointc-2.0";
   reg = <0x0 0x1fe11440 0x0 0x40>,
         <0x0 0x1fe11048 0x0 0x8>;
   reg-names = "main", "isr0";

   interrupt-controller;
   #interrupt-cells = <2>;
   interrupt-parent = <&cpuintc>;
   interrupts = <4>;
   interrupt-names = "int2";

   loongson,parent_int_map = <0x00000000>, /* int0 */
        <0x00000000>, /* int1 */
        <0xffffffff>, /* int2 */
        <0x00000000>; /* int3 */
  };

  eiointc: interrupt-controller@1fe11600 {
   compatible = "loongson,ls2k0500-eiointc";
   reg = <0x0 0x1fe11600 0x0 0xea00>;
   interrupt-controller;
   #interrupt-cells = <1>;
   interrupt-parent = <&cpuintc>;
   interrupts = <3>;
  };

  pwm@1ff5c000 {
   compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
   reg = <0x0 0x1ff5c000 0x0 0x10>;
   interrupt-parent = <&liointc0>;
   interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #pwm-cells = <3>;
   status = "disabled";
  };

  pwm@1ff5c010 {
   compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
   reg = <0x0 0x1ff5c010 0x0 0x10>;
   interrupt-parent = <&liointc0>;
   interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #pwm-cells = <3>;
   status = "disabled";
  };

  pwm@1ff5c020 {
   compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
   reg = <0x0 0x1ff5c020 0x0 0x10>;
   interrupt-parent = <&liointc0>;
   interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #pwm-cells = <3>;
   status = "disabled";
  };

  pwm@1ff5c030 {
   compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
   reg = <0x0 0x1ff5c030 0x0 0x10>;
   interrupt-parent = <&liointc0>;
   interrupts = <24 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #pwm-cells = <3>;
   status = "disabled";
  };

  pwm@1ff5c040 {
   compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
   reg = <0x0 0x1ff5c040 0x0 0x10>;
   interrupt-parent = <&liointc0>;
   interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #pwm-cells = <3>;
   status = "disabled";
  };

  pwm@1ff5c050 {
   compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
   reg = <0x0 0x1ff5c050 0x0 0x10>;
   interrupt-parent = <&liointc0>;
   interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #pwm-cells = <3>;
   status = "disabled";
  };

  pwm@1ff5c060 {
   compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
   reg = <0x0 0x1ff5c060 0x0 0x10>;
   interrupt-parent = <&liointc0>;
   interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #pwm-cells = <3>;
   status = "disabled";
  };

  pwm@1ff5c070 {
   compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
   reg = <0x0 0x1ff5c070 0x0 0x10>;
   interrupt-parent = <&liointc0>;
   interrupts = <25 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #pwm-cells = <3>;
   status = "disabled";
  };

  pwm@1ff5c080 {
   compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
   reg = <0x0 0x1ff5c080 0x0 0x10>;
   interrupt-parent = <&liointc0>;
   interrupts = <26 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #pwm-cells = <3>;
   status = "disabled";
  };

  pwm@1ff5c090 {
   compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
   reg = <0x0 0x1ff5c090 0x0 0x10>;
   interrupt-parent = <&liointc0>;
   interrupts = <26 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #pwm-cells = <3>;
   status = "disabled";
  };

  pwm@1ff5c0a0 {
   compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
   reg = <0x0 0x1ff5c0a0 0x0 0x10>;
   interrupt-parent = <&liointc0>;
   interrupts = <26 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #pwm-cells = <3>;
   status = "disabled";
  };

  pwm@1ff5c0b0 {
   compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
   reg = <0x0 0x1ff5c0b0 0x0 0x10>;
   interrupt-parent = <&liointc0>;
   interrupts = <26 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #pwm-cells = <3>;
   status = "disabled";
  };

  pwm@1ff5c0c0 {
   compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
   reg = <0x0 0x1ff5c0c0 0x0 0x10>;
   interrupt-parent = <&liointc0>;
   interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #pwm-cells = <3>;
   status = "disabled";
  };

  pwm@1ff5c0d0 {
   compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
   reg = <0x0 0x1ff5c0d0 0x0 0x10>;
   interrupt-parent = <&liointc0>;
   interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #pwm-cells = <3>;
   status = "disabled";
  };

  pwm@1ff5c0e0 {
   compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
   reg = <0x0 0x1ff5c0e0 0x0 0x10>;
   interrupt-parent = <&liointc0>;
   interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #pwm-cells = <3>;
   status = "disabled";
  };

  pwm@1ff5c0f0 {
   compatible = "loongson,ls2k0500-pwm", "loongson,ls7a-pwm";
   reg = <0x0 0x1ff5c0f0 0x0 0x10>;
   interrupt-parent = <&liointc0>;
   interrupts = <27 IRQ_TYPE_LEVEL_HIGH>;
   clocks = <&clk LOONGSON2_APB_CLK>;
   #pwm-cells = <3>;
   status = "disabled";
  };

  gmac0: ethernet@1f020000 {
   compatible = "snps,dwmac-3.70a";
   reg = <0x0 0x1f020000 0x0 0x10000>;
   interrupt-parent = <&liointc0>;
   interrupts = <12 IRQ_TYPE_LEVEL_HIGH>;
   interrupt-names = "macirq";
   status = "disabled";
  };

  gmac1: ethernet@1f030000 {
   compatible = "snps,dwmac-3.70a";
   reg = <0x0 0x1f030000 0x0 0x10000>;
   interrupt-parent = <&liointc0>;
   interrupts = <14 IRQ_TYPE_LEVEL_HIGH>;
   interrupt-names = "macirq";
   status = "disabled";
  };

  sata: sata@1f040000 {
   compatible = "snps,spear-ahci";
   reg = <0x0 0x1f040000 0x0 0x10000>;
   interrupt-parent = <&eiointc>;
   interrupts = <75>;
   status = "disabled";
  };

  ehci0: usb@1f050000 {
   compatible = "generic-ehci";
   reg = <0x0 0x1f050000 0x0 0x8000>;
   interrupt-parent = <&eiointc>;
   interrupts = <71>;
   status = "disabled";
  };

  ohci0: usb@1f058000 {
   compatible = "generic-ohci";
   reg = <0x0 0x1f058000 0x0 0x8000>;
   interrupt-parent = <&eiointc>;
   interrupts = <72>;
   status = "disabled";
  };

  tsensor: thermal-sensor@1fe11500 {
   compatible = "loongson,ls2k0500-thermal", "loongson,ls2k1000-thermal";
   reg = <0x0 0x1fe11500 0x0 0x30>;
   interrupt-parent = <&liointc0>;
   interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
   #thermal-sensor-cells = <1>;
  };

  uart0: serial@1ff40800 {
   compatible = "ns16550a";
   reg = <0x0 0x1ff40800 0x0 0x10>;
   clock-frequency = <100000000>;
   interrupt-parent = <&eiointc>;
   interrupts = <2>;
   no-loopback-test;
   status = "disabled";
  };

  i2c0: i2c@1ff48000 {
   compatible = "loongson,ls2k-i2c";
   reg = <0x0 0x1ff48000 0x0 0x0800>;
   interrupt-parent = <&eiointc>;
   interrupts = <14>;
   status = "disabled";
  };

  i2c@1ff48800 {
   compatible = "loongson,ls2k-i2c";
   reg = <0x0 0x1ff48800 0x0 0x0800>;
   interrupt-parent = <&eiointc>;
   interrupts = <15>;
   status = "disabled";
  };

  i2c@1ff49000 {
   compatible = "loongson,ls2k-i2c";
   reg = <0x0 0x1ff49000 0x0 0x0800>;
   interrupt-parent = <&eiointc>;
   interrupts = <16>;
   status = "disabled";
  };

  i2c@1ff49800 {
   compatible = "loongson,ls2k-i2c";
   reg = <0x0 0x1ff49800 0x0 0x0800>;
   interrupt-parent = <&eiointc>;
   interrupts = <17>;
   status = "disabled";
  };

  i2c@1ff4a000 {
   compatible = "loongson,ls2k-i2c";
   reg = <0x0 0x1ff4a000 0x0 0x0800>;
   interrupt-parent = <&eiointc>;
   interrupts = <18>;
   status = "disabled";
  };

  i2c@1ff4a800 {
   compatible = "loongson,ls2k-i2c";
   reg = <0x0 0x1ff4a800 0x0 0x0800>;
   interrupt-parent = <&eiointc>;
   interrupts = <19>;
   status = "disabled";
  };

  mmc0: mmc@1ff64000 {
   compatible = "loongson,ls2k0500-mmc";
   reg = <0 0x1ff64000 0 0x2000>,
         <0 0x1fe10100 0 0x4>;
   interrupt-parent = <&eiointc>;
   interrupts = <57>;
   dmas = <&apbdma3 0>;
   dma-names = "rx-tx";
   clocks = <&clk LOONGSON2_APB_CLK>;
   status = "disabled";
  };

  mmc@1ff66000 {
   compatible = "loongson,ls2k0500-mmc";
   reg = <0 0x1ff66000 0 0x2000>,
         <0 0x1fe10100 0 0x4>;
   interrupt-parent = <&eiointc>;
   interrupts = <58>;
   dmas = <&apbdma2 0>;
   dma-names = "rx-tx";
   clocks = <&clk LOONGSON2_APB_CLK>;
   status = "disabled";
  };

  pmc: power-management@1ff6c000 {
   compatible = "loongson,ls2k0500-pmc", "syscon";
   reg = <0x0 0x1ff6c000 0x0 0x58>;
   interrupt-parent = <&eiointc>;
   interrupts = <56>;
   loongson,suspend-address = <0x0 0x1c000500>;

   syscon-reboot {
    compatible = "syscon-reboot";
    offset = <0x30>;
    mask = <0x1>;
   };

   syscon-poweroff {
    compatible = "syscon-poweroff";
    regmap = <&pmc>;
    offset = <0x14>;
    mask = <0x3c00>;
    value = <0x3c00>;
   };
  };

  rtc0: rtc@1ff6c100 {
   compatible = "loongson,ls2k0500-rtc", "loongson,ls7a-rtc";
   reg = <0x0 0x1ff6c100 0x0 0x100>;
   interrupt-parent = <&eiointc>;
   interrupts = <35>;
   status = "disabled";
  };

  pcie@1a000000 {
   compatible = "loongson,ls2k-pci";
   reg = <0x0 0x1a000000 0x0 0x02000000>,
         <0xfe 0x0 0x0 0x20000000>;
   #address-cells = <3>;
   #size-cells = <2>;
   device_type = "pci";
   bus-range = <0x0 0x5>;
   ranges = <0x01000000 0x0 0x00004000 0x0 0x16404000 0x0 0x00004000>,
     <0x02000000 0x0 0x40000000 0x0 0x40000000 0x0 0x40000000>;

   pcie@0,0 {
    reg = <0x0000 0x0 0x0 0x0 0x0>;
    #address-cells = <3>;
    #size-cells = <2>;
    device_type = "pci";
    interrupt-parent = <&eiointc>;
    #interrupt-cells = <1>;
    interrupt-map-mask = <0x0 0x0 0x0 0x0>;
    interrupt-map = <0x0 0x0 0x0 0x0 &eiointc 81>;
    ranges;
   };

   pcie@1,0 {
    reg = <0x0800 0x0 0x0 0x0 0x0>;
    #address-cells = <3>;
    #size-cells = <2>;
    device_type = "pci";
    interrupt-parent = <&eiointc>;
    #interrupt-cells = <1>;
    interrupt-map-mask = <0x0 0x0 0x0 0x0>;
    interrupt-map = <0x0 0x0 0x0 0x0 &eiointc 82>;
    ranges;
   };
  };
 };
};

[ Dauer der Verarbeitung: 0.6 Sekunden  (vorverarbeitet)  ]