Загрузчик для SPI NOR Flash одноплатного ПК OrangePi Zero2


  Intro     SPL     Shell     Env     FDT     USB     Net     SPI  

Дерево устройств FDT
=> fdt print
/
    {
    interrupt-parent = <0x00000001>;
    #address-cells = <0x00000002>;
    #size-cells = <0x00000002>;
    model = "OrangePi Zero2";
    compatible = "xunlong,orangepi-zero2", "allwinner,sun50i-h616";
    cpus
      {
      #address-cells = <0x00000001>;
      #size-cells = <0x00000000>;
      cpu@0
        {
        compatible = "arm,cortex-a53";
        device_type = "cpu";
        reg = <0x00000000>;
        enable-method = "psci";
        clocks = <0x00000002 0x00000015>;
        phandle = <0x00000003>;
        };

      cpu@1
        {
        compatible = "arm,cortex-a53";
        device_type = "cpu";
        reg = <0x00000001>;
        enable-method = "psci";
        clocks = <0x00000002 0x00000015>;
        phandle = <0x00000004>;
        };

      cpu@2
        {
        compatible = "arm,cortex-a53";
        device_type = "cpu";
        reg = <0x00000002>;
        enable-method = "psci";
        clocks = <0x00000002 0x00000015>;
        phandle = <0x00000005>;
        };

      cpu@3
        {
        compatible = "arm,cortex-a53";
        device_type = "cpu";
        reg = <0x00000003>;
        enable-method = "psci";
        clocks = <0x00000002 0x00000015>;
        phandle = <0x00000006>;
        };

      };

    osc24M_clk
      {
      #clock-cells = <0x00000000>;
      compatible = "fixed-clock";
      clock-frequency = <0x016e3600>;
      clock-output-names = "osc24M";
      phandle = <0x00000007>;
      };

    pmu
      {
      compatible = "arm,cortex-a53-pmu";
      interrupts = <0x00000000 0x0000008c 0x00000004 0x00000000 0x0000008d 0x00000004 0x00000000 0x0000008e 0x00000004 0x00000000 0x0000008f 0x00000004>;
      interrupt-affinity = <0x00000003 0x00000004 0x00000005 0x00000006>;
      };

    psci
      {
      compatible = "arm,psci-0.2";
      method = "smc";
      };

    timer
      {
      compatible = "arm,armv8-timer";
      arm,no-tick-in-suspend;
      interrupts = <0x00000001 0x0000000d 0x00000f04 0x00000001 0x0000000e 0x00000f04 0x00000001 0x0000000b 0x00000f04 0x00000001 0x0000000a 0x00000f04>;
      };

    soc
      {
      compatible = "simple-bus";
      #address-cells = <0x00000001>;
      #size-cells = <0x00000001>;
      ranges = <0x00000000 0x00000000 0x00000000 0x40000000>;
      syscon@3000000
        {
        compatible = "allwinner,sun50i-h616-system-control";
        reg = <0x03000000 0x00001000>;
        #address-cells = <0x00000001>;
        #size-cells = <0x00000001>;
        ranges;
        phandle = <0x00000012>;
        sram@28000
          {
          compatible = "mmio-sram";
          reg = <0x00028000 0x00030000>;
          #address-cells = <0x00000001>;
          #size-cells = <0x00000001>;
          ranges = <0x00000000 0x00028000 0x00030000>;
          phandle = <0x0000001b>;
          };

        };

      clock@3001000
        {
        compatible = "allwinner,sun50i-h616-ccu";
        reg = <0x03001000 0x00001000>;
        clocks = <0x00000007 0x00000008 0x00000000 0x00000008 0x00000002>;
        clock-names = "hosc", "losc", "iosc";
        #clock-cells = <0x00000001>;
        #reset-cells = <0x00000001>;
        phandle = <0x00000002>;
        };

      watchdog@30090a0
        {
        compatible = "allwinner,sun50i-h616-wdt", "allwinner,sun6i-a31-wdt";
        reg = <0x030090a0 0x00000020>;
        interrupts = <0x00000000 0x00000032 0x00000004>;
        clocks = <0x00000007>;
        phandle = <0x0000001c>;
        };

      pinctrl@300b000
        {
        compatible = "allwinner,sun50i-h616-pinctrl";
        reg = <0x0300b000 0x00000400>;
        interrupts = <0x00000000 0x00000033 0x00000004 0x00000000 0x00000034 0x00000004 0x00000000 0x00000035 0x00000004 0x00000000 0x0000002b 0x00000004 0x00000000 0x00000036 0x00000004 0x00000000 0x00000037 0x00000004 0x00000000 0x00000038 0x00000004 0x00000000 0x00000039 0x00000004>;
        clocks = <0x00000002 0x0000001a 0x00000007 0x00000008 0x00000000>;
        clock-names = "apb", "hosc", "losc";
        gpio-controller;
        #gpio-cells = <0x00000003>;
        interrupt-controller;
        #interrupt-cells = <0x00000003>;
        phandle = <0x0000000b>;
        rgmii-pins
          {
          pins = "PI0", "PI1", "PI2", "PI3", "PI4", "PI5", "PI7", "PI8", "PI9", "PI10", "PI11", "PI12", "PI13", "PI14", "PI15", "PI16";
          function = "emac0";
          drive-strength = <0x00000028>;
          phandle = <0x00000013>;
          };

        i2c0-pins
          {
          pins = "PI6", "PI7";
          function = "i2c0";
          phandle = <0x0000000f>;
          };

        i2c3-ph-pins
          {
          pins = "PH4", "PH5";
          function = "i2c3";
          phandle = <0x0000001d>;
          };

        ir_rx_pin
          {
          pins = "PH10";
          function = "ir_rx";
          phandle = <0x00000018>;
          };

        mmc0-pins
          {
          pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
          function = "mmc0";
          drive-strength = <0x0000001e>;
          bias-pull-up;
          phandle = <0x00000009>;
          };

        mmc1-pins
          {
          pins = "PG0", "PG1", "PG2", "PG3", "PG4", "PG5";
          function = "mmc1";
          drive-strength = <0x0000001e>;
          bias-pull-up;
          phandle = <0x0000000c>;
          };

        mmc2-pins
          {
          pins = "PC0", "PC1", "PC5", "PC6", "PC8", "PC9", "PC10", "PC11", "PC13", "PC14", "PC15", "PC16";
          function = "mmc2";
          drive-strength = <0x0000001e>;
          bias-pull-up;
          phandle = <0x0000000d>;
          };

        spi0-pins
          {
          pins = "PC0", "PC2", "PC3", "PC4";
          function = "spi0";
          phandle = <0x00000010>;
          };

        spi1-pins
          {
          pins = "PH6", "PH7", "PH8";
          function = "spi1";
          phandle = <0x00000011>;
          };

        spi1-cs-pin
          {
          pins = "PH5";
          function = "spi1";
          phandle = <0x0000001e>;
          };

        uart0-ph-pins
          {
          pins = "PH0", "PH1";
          function = "uart0";
          phandle = <0x0000000e>;
          };

        uart1-pins
          {
          pins = "PG6", "PG7";
          function = "uart1";
          phandle = <0x0000001f>;
          };

        uart1-rts-cts-pins
          {
          pins = "PG8", "PG9";
          function = "uart1";
          phandle = <0x00000020>;
          };

        };

      interrupt-controller@3021000
        {
        compatible = "arm,gic-400";
        reg = <0x03021000 0x00001000 0x03022000 0x00002000 0x03024000 0x00002000 0x03026000 0x00002000>;
        interrupts = <0x00000001 0x00000009 0x00000f04>;
        interrupt-controller;
        #interrupt-cells = <0x00000003>;
        phandle = <0x00000001>;
        };

      mmc@4020000
        {
        compatible = "allwinner,sun50i-h616-mmc", "allwinner,sun50i-a100-mmc";
        reg = <0x04020000 0x00001000>;
        clocks = <0x00000002 0x0000003f 0x00000002 0x0000003c>;
        clock-names = "ahb", "mmc";
        resets = <0x00000002 0x0000000e>;
        reset-names = "ahb";
        interrupts = <0x00000000 0x00000023 0x00000004>;
        pinctrl-names = "default";
        pinctrl-0 = <0x00000009>;
        status = "okay";
        cap-sd-highspeed;
        cap-mmc-highspeed;
        mmc-ddr-3_3v;
        mmc-ddr-1_8v;
        cap-sdio-irq;
        #address-cells = <0x00000001>;
        #size-cells = <0x00000000>;
        vmmc-supply = <0x0000000a>;
        cd-gpios = <0x0000000b 0x00000005 0x00000006 0x00000001>;
        bus-width = <0x00000004>;
        phandle = <0x00000021>;
        };

      mmc@4021000
        {
        compatible = "allwinner,sun50i-h616-mmc", "allwinner,sun50i-a100-mmc";
        reg = <0x04021000 0x00001000>;
        clocks = <0x00000002 0x00000040 0x00000002 0x0000003d>;
        clock-names = "ahb", "mmc";
        resets = <0x00000002 0x0000000f>;
        reset-names = "ahb";
        interrupts = <0x00000000 0x00000024 0x00000004>;
        pinctrl-names = "default";
        pinctrl-0 = <0x0000000c>;
        status = "disabled";
        cap-sd-highspeed;
        cap-mmc-highspeed;
        mmc-ddr-3_3v;
        mmc-ddr-1_8v;
        cap-sdio-irq;
        #address-cells = <0x00000001>;
        #size-cells = <0x00000000>;
        phandle = <0x00000022>;
        };

      mmc@4022000
        {
        compatible = "allwinner,sun50i-h616-emmc", "allwinner,sun50i-a100-emmc";
        reg = <0x04022000 0x00001000>;
        clocks = <0x00000002 0x00000041 0x00000002 0x0000003e>;
        clock-names = "ahb", "mmc";
        resets = <0x00000002 0x00000010>;
        reset-names = "ahb";
        interrupts = <0x00000000 0x00000025 0x00000004>;
        pinctrl-names = "default";
        pinctrl-0 = <0x0000000d>;
        status = "disabled";
        cap-sd-highspeed;
        cap-mmc-highspeed;
        mmc-ddr-3_3v;
        mmc-ddr-1_8v;
        cap-sdio-irq;
        #address-cells = <0x00000001>;
        #size-cells = <0x00000000>;
        phandle = <0x00000023>;
        };

      serial@5000000
        {
        compatible = "snps,dw-apb-uart";
        reg = <0x05000000 0x00000400>;
        interrupts = <0x00000000 0x00000000 0x00000004>;
        reg-shift = <0x00000002>;
        reg-io-width = <0x00000004>;
        clocks = <0x00000002 0x00000042>;
        resets = <0x00000002 0x00000011>;
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <0x0000000e>;
        phandle = <0x00000024>;
        };

      serial@5000400
        {
        compatible = "snps,dw-apb-uart";
        reg = <0x05000400 0x00000400>;
        interrupts = <0x00000000 0x00000001 0x00000004>;
        reg-shift = <0x00000002>;
        reg-io-width = <0x00000004>;
        clocks = <0x00000002 0x00000043>;
        resets = <0x00000002 0x00000012>;
        status = "disabled";
        phandle = <0x00000025>;
        };

      serial@5000800
        {
        compatible = "snps,dw-apb-uart";
        reg = <0x05000800 0x00000400>;
        interrupts = <0x00000000 0x00000002 0x00000004>;
        reg-shift = <0x00000002>;
        reg-io-width = <0x00000004>;
        clocks = <0x00000002 0x00000044>;
        resets = <0x00000002 0x00000013>;
        status = "disabled";
        phandle = <0x00000026>;
        };

      serial@5000c00
        {
        compatible = "snps,dw-apb-uart";
        reg = <0x05000c00 0x00000400>;
        interrupts = <0x00000000 0x00000003 0x00000004>;
        reg-shift = <0x00000002>;
        reg-io-width = <0x00000004>;
        clocks = <0x00000002 0x00000045>;
        resets = <0x00000002 0x00000014>;
        status = "disabled";
        phandle = <0x00000027>;
        };

      serial@5001000
        {
        compatible = "snps,dw-apb-uart";
        reg = <0x05001000 0x00000400>;
        interrupts = <0x00000000 0x00000004 0x00000004>;
        reg-shift = <0x00000002>;
        reg-io-width = <0x00000004>;
        clocks = <0x00000002 0x00000046>;
        resets = <0x00000002 0x00000015>;
        status = "disabled";
        phandle = <0x00000028>;
        };

      serial@5001400
        {
        compatible = "snps,dw-apb-uart";
        reg = <0x05001400 0x00000400>;
        interrupts = <0x00000000 0x00000005 0x00000004>;
        reg-shift = <0x00000002>;
        reg-io-width = <0x00000004>;
        clocks = <0x00000002 0x00000047>;
        resets = <0x00000002 0x00000016>;
        status = "disabled";
        phandle = <0x00000029>;
        };

      i2c@5002000
        {
        compatible = "allwinner,sun50i-h616-i2c", "allwinner,sun6i-a31-i2c";
        reg = <0x05002000 0x00000400>;
        interrupts = <0x00000000 0x00000006 0x00000004>;
        clocks = <0x00000002 0x00000048>;
        resets = <0x00000002 0x00000017>;
        pinctrl-names = "default";
        pinctrl-0 = <0x0000000f>;
        status = "disabled";
        #address-cells = <0x00000001>;
        #size-cells = <0x00000000>;
        phandle = <0x0000002a>;
        };

      i2c@5002400
        {
        compatible = "allwinner,sun50i-h616-i2c", "allwinner,sun6i-a31-i2c";
        reg = <0x05002400 0x00000400>;
        interrupts = <0x00000000 0x00000007 0x00000004>;
        clocks = <0x00000002 0x00000049>;
        resets = <0x00000002 0x00000018>;
        status = "disabled";
        #address-cells = <0x00000001>;
        #size-cells = <0x00000000>;
        phandle = <0x0000002b>;
        };

      i2c@5002800
        {
        compatible = "allwinner,sun50i-h616-i2c", "allwinner,sun6i-a31-i2c";
        reg = <0x05002800 0x00000400>;
        interrupts = <0x00000000 0x00000008 0x00000004>;
        clocks = <0x00000002 0x0000004a>;
        resets = <0x00000002 0x00000019>;
        status = "disabled";
        #address-cells = <0x00000001>;
        #size-cells = <0x00000000>;
        phandle = <0x0000002c>;
        };

      i2c@5002c00
        {
        compatible = "allwinner,sun50i-h616-i2c", "allwinner,sun6i-a31-i2c";
        reg = <0x05002c00 0x00000400>;
        interrupts = <0x00000000 0x00000009 0x00000004>;
        clocks = <0x00000002 0x0000004b>;
        resets = <0x00000002 0x0000001a>;
        status = "disabled";
        #address-cells = <0x00000001>;
        #size-cells = <0x00000000>;
        phandle = <0x0000002d>;
        };

      i2c@5003000
        {
        compatible = "allwinner,sun50i-h616-i2c", "allwinner,sun6i-a31-i2c";
        reg = <0x05003000 0x00000400>;
        interrupts = <0x00000000 0x0000000a 0x00000004>;
        clocks = <0x00000002 0x0000004c>;
        resets = <0x00000002 0x0000001b>;
        status = "disabled";
        #address-cells = <0x00000001>;
        #size-cells = <0x00000000>;
        phandle = <0x0000002e>;
        };

      spi@5010000
        {
        compatible = "allwinner,sun50i-h616-spi", "allwinner,sun8i-h3-spi";
        reg = <0x05010000 0x00001000>;
        interrupts = <0x00000000 0x0000000c 0x00000004>;
        clocks = <0x00000002 0x0000004f 0x00000002 0x0000004d>;
        clock-names = "ahb", "mod";
        resets = <0x00000002 0x0000001c>;
        pinctrl-names = "default";
        pinctrl-0 = <0x00000010>;
        status = "okay";
        #address-cells = <0x00000001>;
        #size-cells = <0x00000000>;
        phandle = <0x0000002f>;
        flash@0
          {
          #address-cells = <0x00000001>;
          #size-cells = <0x00000001>;
          compatible = "jedec,spi-nor";
          reg = <0x00000000>;
          spi-max-frequency = <0x02625a00>;
          };

        };

      spi@5011000
        {
        compatible = "allwinner,sun50i-h616-spi", "allwinner,sun8i-h3-spi";
        reg = <0x05011000 0x00001000>;
        interrupts = <0x00000000 0x0000000d 0x00000004>;
        clocks = <0x00000002 0x00000050 0x00000002 0x0000004e>;
        clock-names = "ahb", "mod";
        resets = <0x00000002 0x0000001d>;
        pinctrl-names = "default";
        pinctrl-0 = <0x00000011>;
        status = "disabled";
        #address-cells = <0x00000001>;
        #size-cells = <0x00000000>;
        phandle = <0x00000030>;
        };

      ethernet@5020000
        {
        compatible = "allwinner,sun50i-h616-emac", "allwinner,sun50i-a64-emac";
        syscon = <0x00000012>;
        reg = <0x05020000 0x00010000>;
        interrupts = <0x00000000 0x0000000e 0x00000004>;
        interrupt-names = "macirq";
        resets = <0x00000002 0x0000001e>;
        reset-names = "stmmaceth";
        clocks = <0x00000002 0x00000052>;
        clock-names = "stmmaceth";
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <0x00000013>;
        phy-mode = "rgmii";
        phy-handle = <0x00000014>;
        phy-supply = <0x0000000a>;
        allwinner,rx-delay-ps = <0x00000c1c>;
        allwinner,tx-delay-ps = <0x000002bc>;
        phandle = <0x00000031>;
        mdio
          {
          compatible = "snps,dwmac-mdio";
          #address-cells = <0x00000001>;
          #size-cells = <0x00000000>;
          phandle = <0x00000032>;
          ethernet-phy@1
            {
            compatible = "ethernet-phy-ieee802.3-c22";
            reg = <0x00000001>;
            phandle = <0x00000014>;
            };

          };

        };

      ethernet@5030000
        {
        compatible = "allwinner,sun50i-h616-emac";
        syscon = <0x00000012 0x00000001>;
        reg = <0x05030000 0x00010000>;
        interrupts = <0x00000000 0x0000000f 0x00000004>;
        interrupt-names = "macirq";
        resets = <0x00000002 0x0000001f>;
        reset-names = "stmmaceth";
        clocks = <0x00000002 0x00000053>;
        clock-names = "stmmaceth";
        status = "disabled";
        phandle = <0x00000033>;
        mdio
          {
          compatible = "snps,dwmac-mdio";
          #address-cells = <0x00000001>;
          #size-cells = <0x00000000>;
          phandle = <0x00000034>;
          };

        };

      usb@5100000
        {
        compatible = "allwinner,sun50i-h616-musb", "allwinner,sun8i-h3-musb";
        reg = <0x05100000 0x00000400>;
        clocks = <0x00000002 0x00000070>;
        resets = <0x00000002 0x00000032>;
        interrupts = <0x00000000 0x00000019 0x00000004>;
        interrupt-names = "mc";
        phys = <0x00000015 0x00000000>;
        phy-names = "usb";
        extcon = <0x00000015 0x00000000>;
        status = "okay";
        dr_mode = "peripheral";
        phandle = <0x00000035>;
        };

      phy@5100400
        {
        compatible = "allwinner,sun50i-h616-usb-phy";
        reg = <0x05100400 0x00000024 0x05101800 0x00000014 0x05200800 0x00000014 0x05310800 0x00000014 0x05311800 0x00000014>;
        reg-names = "phy_ctrl", "pmu0", "pmu1", "pmu2", "pmu3";
        clocks = <0x00000002 0x00000061 0x00000002 0x00000063 0x00000002 0x00000065 0x00000002 0x00000067>;
        clock-names = "usb0_phy", "usb1_phy", "usb2_phy", "usb3_phy";
        resets = <0x00000002 0x00000026 0x00000002 0x00000027 0x00000002 0x00000028 0x00000002 0x00000029>;
        reset-names = "usb0_reset", "usb1_reset", "usb2_reset", "usb3_reset";
        status = "okay";
        #phy-cells = <0x00000001>;
        usb1_vbus-supply = <0x00000016>;
        phandle = <0x00000015>;
        };

      usb@5101000
        {
        compatible = "allwinner,sun50i-h616-ehci", "generic-ehci";
        reg = <0x05101000 0x00000100>;
        interrupts = <0x00000000 0x0000001a 0x00000004>;
        clocks = <0x00000002 0x00000068 0x00000002 0x0000006c 0x00000002 0x00000060>;
        resets = <0x00000002 0x0000002a 0x00000002 0x0000002e>;
        phys = <0x00000015 0x00000000>;
        phy-names = "usb";
        status = "okay";
        phandle = <0x00000036>;
        };

      usb@5101400
        {
        compatible = "allwinner,sun50i-h616-ohci", "generic-ohci";
        reg = <0x05101400 0x00000100>;
        interrupts = <0x00000000 0x0000001b 0x00000004>;
        clocks = <0x00000002 0x00000068 0x00000002 0x00000060>;
        resets = <0x00000002 0x0000002a>;
        phys = <0x00000015 0x00000000>;
        phy-names = "usb";
        status = "okay";
        phandle = <0x00000037>;
        };

      usb@5200000
        {
        compatible = "allwinner,sun50i-h616-ehci", "generic-ehci";
        reg = <0x05200000 0x00000100>;
        interrupts = <0x00000000 0x0000001c 0x00000004>;
        clocks = <0x00000002 0x00000069 0x00000002 0x0000006d 0x00000002 0x00000062>;
        resets = <0x00000002 0x0000002b 0x00000002 0x0000002f>;
        phys = <0x00000015 0x00000001>;
        phy-names = "usb";
        status = "okay";
        phandle = <0x00000038>;
        };

      usb@5200400
        {
        compatible = "allwinner,sun50i-h616-ohci", "generic-ohci";
        reg = <0x05200400 0x00000100>;
        interrupts = <0x00000000 0x0000001d 0x00000004>;
        clocks = <0x00000002 0x00000069 0x00000002 0x00000062>;
        resets = <0x00000002 0x0000002b>;
        phys = <0x00000015 0x00000001>;
        phy-names = "usb";
        status = "okay";
        phandle = <0x00000039>;
        };

      usb@5310000
        {
        compatible = "allwinner,sun50i-h616-ehci", "generic-ehci";
        reg = <0x05310000 0x00000100>;
        interrupts = <0x00000000 0x0000001e 0x00000004>;
        clocks = <0x00000002 0x0000006a 0x00000002 0x0000006e 0x00000002 0x00000064>;
        resets = <0x00000002 0x0000002c 0x00000002 0x00000030>;
        phys = <0x00000015 0x00000002>;
        phy-names = "usb";
        status = "disabled";
        phandle = <0x0000003a>;
        };

      usb@5310400
        {
        compatible = "allwinner,sun50i-h616-ohci", "generic-ohci";
        reg = <0x05310400 0x00000100>;
        interrupts = <0x00000000 0x0000001f 0x00000004>;
        clocks = <0x00000002 0x0000006a 0x00000002 0x00000064>;
        resets = <0x00000002 0x0000002c>;
        phys = <0x00000015 0x00000002>;
        phy-names = "usb";
        status = "disabled";
        phandle = <0x0000003b>;
        };

      usb@5311000
        {
        compatible = "allwinner,sun50i-h616-ehci", "generic-ehci";
        reg = <0x05311000 0x00000100>;
        interrupts = <0x00000000 0x00000020 0x00000004>;
        clocks = <0x00000002 0x0000006b 0x00000002 0x0000006f 0x00000002 0x00000066>;
        resets = <0x00000002 0x0000002d 0x00000002 0x00000031>;
        phys = <0x00000015 0x00000003>;
        phy-names = "usb";
        status = "disabled";
        phandle = <0x0000003c>;
        };

      usb@5311400
        {
        compatible = "allwinner,sun50i-h616-ohci", "generic-ohci";
        reg = <0x05311400 0x00000100>;
        interrupts = <0x00000000 0x00000021 0x00000004>;
        clocks = <0x00000002 0x0000006b 0x00000002 0x00000066>;
        resets = <0x00000002 0x0000002d>;
        phys = <0x00000015 0x00000003>;
        phy-names = "usb";
        status = "disabled";
        phandle = <0x0000003d>;
        };

      rtc@7000000
        {
        compatible = "allwinner,sun50i-h616-rtc", "allwinner,sun50i-h6-rtc";
        reg = <0x07000000 0x00000400>;
        interrupts = <0x00000000 0x00000065 0x00000004 0x00000000 0x00000066 0x00000004>;
        clock-output-names = "osc32k", "osc32k-out", "iosc";
        #clock-cells = <0x00000001>;
        phandle = <0x00000008>;
        };

      clock@7010000
        {
        compatible = "allwinner,sun50i-h616-r-ccu";
        reg = <0x07010000 0x00000400>;
        clocks = <0x00000007 0x00000008 0x00000000 0x00000008 0x00000002 0x00000002 0x00000004>;
        clock-names = "hosc", "losc", "iosc", "pll-periph";
        #clock-cells = <0x00000001>;
        #reset-cells = <0x00000001>;
        phandle = <0x00000017>;
        };

      pinctrl@7022000
        {
        compatible = "allwinner,sun50i-h616-r-pinctrl";
        reg = <0x07022000 0x00000400>;
        interrupts = <0x00000000 0x0000002b 0x00000004>;
        clocks = <0x00000017 0x00000002 0x00000007 0x00000008 0x00000000>;
        clock-names = "apb", "hosc", "losc";
        gpio-controller;
        #gpio-cells = <0x00000003>;
        interrupt-controller;
        #interrupt-cells = <0x00000003>;
        phandle = <0x0000003e>;
        r-i2c-pins
          {
          pins = "PL0", "PL1";
          function = "s_i2c";
          phandle = <0x0000003f>;
          };

        r-rsb-pins
          {
          pins = "PL0", "PL1";
          function = "s_rsb";
          phandle = <0x00000019>;
          };

        };

      ir@7040000
        {
        compatible = "allwinner,sun50i-h616-ir", "allwinner,sun6i-a31-ir";
        reg = <0x07040000 0x00000400>;
        interrupts = <0x00000000 0x0000006a 0x00000004>;
        clocks = <0x00000017 0x00000009 0x00000017 0x0000000b>;
        clock-names = "apb", "ir";
        resets = <0x00000017 0x00000005>;
        pinctrl-names = "default";
        pinctrl-0 = <0x00000018>;
        status = "disabled";
        phandle = <0x00000040>;
        };

      i2c@7081400
        {
        compatible = "allwinner,sun50i-h616-i2c", "allwinner,sun6i-a31-i2c";
        reg = <0x07081400 0x00000400>;
        interrupts = <0x00000000 0x00000069 0x00000004>;
        clocks = <0x00000017 0x00000008>;
        resets = <0x00000017 0x00000004>;
        status = "disabled";
        #address-cells = <0x00000001>;
        #size-cells = <0x00000000>;
        phandle = <0x00000041>;
        };

      rsb@7083000
        {
        compatible = "allwinner,sun50i-h616-rsb", "allwinner,sun8i-a23-rsb";
        reg = <0x07083000 0x00000400>;
        interrupts = <0x00000000 0x0000006d 0x00000004>;
        clocks = <0x00000017 0x0000000d>;
        clock-frequency = <0x002dc6c0>;
        resets = <0x00000017 0x00000007>;
        pinctrl-names = "default";
        pinctrl-0 = <0x00000019>;
        status = "okay";
        #address-cells = <0x00000001>;
        #size-cells = <0x00000000>;
        phandle = <0x00000042>;
        pmic@745
          {
          compatible = "x-powers,axp305", "x-powers,axp805", "x-powers,axp806";
          interrupt-controller;
          #interrupt-cells = <0x00000001>;
          reg = <0x00000745>;
          x-powers,self-working-mode;
          vina-supply = <0x0000001a>;
          vinb-supply = <0x0000001a>;
          vinc-supply = <0x0000001a>;
          vind-supply = <0x0000001a>;
          vine-supply = <0x0000001a>;
          aldoin-supply = <0x0000001a>;
          bldoin-supply = <0x0000001a>;
          cldoin-supply = <0x0000001a>;
          phandle = <0x00000043>;
          regulators
            {
            aldo1
              {
              regulator-always-on;
              regulator-min-microvolt = <0x00325aa0>;
              regulator-max-microvolt = <0x00325aa0>;
              regulator-name = "vcc-sys";
              phandle = <0x00000044>;
              };

            aldo2
              {
              regulator-always-on;
              regulator-min-microvolt = <0x00325aa0>;
              regulator-max-microvolt = <0x00325aa0>;
              regulator-name = "vcc3v3-ext";
              phandle = <0x00000045>;
              };

            aldo3
              {
              regulator-always-on;
              regulator-min-microvolt = <0x00325aa0>;
              regulator-max-microvolt = <0x00325aa0>;
              regulator-name = "vcc3v3-ext2";
              phandle = <0x00000046>;
              };

            bldo1
              {
              regulator-always-on;
              regulator-min-microvolt = <0x001b7740>;
              regulator-max-microvolt = <0x001b7740>;
              regulator-name = "vcc1v8";
              phandle = <0x00000047>;
              };

            bldo2
              {
              };

            bldo3
              {
              };

            bldo4
              {
              };

            cldo1
              {
              };

            cldo2
              {
              };

            cldo3
              {
              };

            dcdca
              {
              regulator-always-on;
              regulator-min-microvolt = <0x000c5c10>;
              regulator-max-microvolt = <0x00107ac0>;
              regulator-name = "vdd-cpu";
              phandle = <0x00000048>;
              };

            dcdcc
              {
              regulator-always-on;
              regulator-min-microvolt = <0x000c5c10>;
              regulator-max-microvolt = <0x00107ac0>;
              regulator-name = "vdd-gpu-sys";
              phandle = <0x00000049>;
              };

            dcdcd
              {
              regulator-always-on;
              regulator-min-microvolt = <0x0016e360>;
              regulator-max-microvolt = <0x0016e360>;
              regulator-name = "vdd-dram";
              phandle = <0x0000004a>;
              };

            dcdce
              {
              regulator-boot-on;
              regulator-min-microvolt = <0x00325aa0>;
              regulator-max-microvolt = <0x00325aa0>;
              regulator-name = "vcc-eth-mmc";
              phandle = <0x0000000a>;
              };

            sw
              {
              };

            };

          };

        };

      };

    aliases
      {
      ethernet0 = "/soc/ethernet@5020000";
      serial0 = "/soc/serial@5000000";
      mmc0 = "/soc/mmc@4020000";
      };

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

    leds
      {
      compatible = "gpio-leds";
      led-0
        {
        function = "power";
        color = <0x00000001>;
        gpios = <0x0000000b 0x00000002 0x0000000c 0x00000000>;
        default-state = "on";
        };

      led-1
        {
        function = "status";
        color = <0x00000002>;
        gpios = <0x0000000b 0x00000002 0x0000000d 0x00000000>;
        };

      };

    vcc5v
      {
      compatible = "regulator-fixed";
      regulator-name = "vcc-5v";
      regulator-min-microvolt = <0x004c4b40>;
      regulator-max-microvolt = <0x004c4b40>;
      regulator-always-on;
      status = "okay";
      phandle = <0x0000001a>;
      };

    usb1-vbus
      {
      compatible = "regulator-fixed";
      regulator-name = "usb1-vbus";
      regulator-min-microvolt = <0x004c4b40>;
      regulator-max-microvolt = <0x004c4b40>;
      vin-supply = <0x0000001a>;
      enable-active-high;
      gpio = <0x0000000b 0x00000002 0x00000010 0x00000000>;
      regulator-always-on;
      status = "okay";
      phandle = <0x00000016>;
      };

    binman
      {
      multiple-images;
      phandle = <0x0000004b>;
      u-boot-sunxi-with-spl
        {
        filename = "u-boot-sunxi-with-spl.bin";
        pad-byte = <0x000000ff>;
        blob
          {
          filename = "spl/sunxi-spl.bin";
          };

        fit
          {
          description = "Configuration to load ATF before U-Boot";
          #address-cells = <0x00000001>;
          fit,fdt-list = "of-list";
          images
            {
            uboot
              {
              description = "U-Boot (64-bit)";
              type = "standalone";
              os = "u-boot";
              arch = "arm64";
              compression = "none";
              load = <0x4a000000>;
              u-boot-nodtb
                {
                };

              };

            atf
              {
              description = "ARM Trusted Firmware";
              type = "firmware";
              os = "arm-trusted-firmware";
              arch = "arm64";
              compression = "none";
              load = <0x40000000>;
              entry = <0x40000000>;
              atf-bl31
                {
                filename = "bl31.bin";
                missing-msg = "atf-bl31-sunxi";
                };

              };

            @fdt-SEQ
              {
              description = "NAME";
              type = "flat_dt";
              compression = "none";
              };

            };

          configurations
            {
            default = "@config-DEFAULT-SEQ";
            @config-SEQ
              {
              description = "NAME";
              firmware = "atf";
              loadables = "uboot";
              fdt = "fdt-SEQ";
              };

            };

          };

        };

      };

    __symbols__
      {
      cpu0 = "/cpus/cpu@0";
      cpu1 = "/cpus/cpu@1";
      cpu2 = "/cpus/cpu@2";
      cpu3 = "/cpus/cpu@3";
      osc24M = "/osc24M_clk";
      syscon = "/soc/syscon@3000000";
      sram_c = "/soc/syscon@3000000/sram@28000";
      ccu = "/soc/clock@3001000";
      watchdog = "/soc/watchdog@30090a0";
      pio = "/soc/pinctrl@300b000";
      ext_rgmii_pins = "/soc/pinctrl@300b000/rgmii-pins";
      i2c0_pins = "/soc/pinctrl@300b000/i2c0-pins";
      i2c3_ph_pins = "/soc/pinctrl@300b000/i2c3-ph-pins";
      ir_rx_pin = "/soc/pinctrl@300b000/ir_rx_pin";
      mmc0_pins = "/soc/pinctrl@300b000/mmc0-pins";
      mmc1_pins = "/soc/pinctrl@300b000/mmc1-pins";
      mmc2_pins = "/soc/pinctrl@300b000/mmc2-pins";
      spi0_pins = "/soc/pinctrl@300b000/spi0-pins";
      spi1_pins = "/soc/pinctrl@300b000/spi1-pins";
      spi1_cs_pin = "/soc/pinctrl@300b000/spi1-cs-pin";
      uart0_ph_pins = "/soc/pinctrl@300b000/uart0-ph-pins";
      uart1_pins = "/soc/pinctrl@300b000/uart1-pins";
      uart1_rts_cts_pins = "/soc/pinctrl@300b000/uart1-rts-cts-pins";
      gic = "/soc/interrupt-controller@3021000";
      mmc0 = "/soc/mmc@4020000";
      mmc1 = "/soc/mmc@4021000";
      mmc2 = "/soc/mmc@4022000";
      uart0 = "/soc/serial@5000000";
      uart1 = "/soc/serial@5000400";
      uart2 = "/soc/serial@5000800";
      uart3 = "/soc/serial@5000c00";
      uart4 = "/soc/serial@5001000";
      uart5 = "/soc/serial@5001400";
      i2c0 = "/soc/i2c@5002000";
      i2c1 = "/soc/i2c@5002400";
      i2c2 = "/soc/i2c@5002800";
      i2c3 = "/soc/i2c@5002c00";
      i2c4 = "/soc/i2c@5003000";
      spi0 = "/soc/spi@5010000";
      spi1 = "/soc/spi@5011000";
      emac0 = "/soc/ethernet@5020000";
      mdio0 = "/soc/ethernet@5020000/mdio";
      ext_rgmii_phy = "/soc/ethernet@5020000/mdio/ethernet-phy@1";
      emac1 = "/soc/ethernet@5030000";
      mdio1 = "/soc/ethernet@5030000/mdio";
      usbotg = "/soc/usb@5100000";
      usbphy = "/soc/phy@5100400";
      ehci0 = "/soc/usb@5101000";
      ohci0 = "/soc/usb@5101400";
      ehci1 = "/soc/usb@5200000";
      ohci1 = "/soc/usb@5200400";
      ehci2 = "/soc/usb@5310000";
      ohci2 = "/soc/usb@5310400";
      ehci3 = "/soc/usb@5311000";
      ohci3 = "/soc/usb@5311400";
      rtc = "/soc/rtc@7000000";
      r_ccu = "/soc/clock@7010000";
      r_pio = "/soc/pinctrl@7022000";
      r_i2c_pins = "/soc/pinctrl@7022000/r-i2c-pins";
      r_rsb_pins = "/soc/pinctrl@7022000/r-rsb-pins";
      ir = "/soc/ir@7040000";
      r_i2c = "/soc/i2c@7081400";
      r_rsb = "/soc/rsb@7083000";
      axp305 = "/soc/rsb@7083000/pmic@745";
      reg_aldo1 = "/soc/rsb@7083000/pmic@745/regulators/aldo1";
      reg_aldo2 = "/soc/rsb@7083000/pmic@745/regulators/aldo2";
      reg_aldo3 = "/soc/rsb@7083000/pmic@745/regulators/aldo3";
      reg_bldo1 = "/soc/rsb@7083000/pmic@745/regulators/bldo1";
      reg_dcdca = "/soc/rsb@7083000/pmic@745/regulators/dcdca";
      reg_dcdcc = "/soc/rsb@7083000/pmic@745/regulators/dcdcc";
      reg_dcdcd = "/soc/rsb@7083000/pmic@745/regulators/dcdcd";
      reg_dcdce = "/soc/rsb@7083000/pmic@745/regulators/dcdce";
      reg_vcc5v = "/vcc5v";
      reg_usb1_vbus = "/usb1-vbus";
      binman = "/binman";
      };

    };

=>

Файл с текстом дампа дерева устройств: Текстовый файл дерева устройств



  Intro     SPL     Shell     Env     FDT     USB     Net     SPI