Merge tag 'u-boot-imx-20200825' of https://gitlab.denx.de/u-boot/custodians/u-boot-imx
[platform/kernel/u-boot.git] / arch / arm / dts / uniphier-ld20.dtsi
index b993df8..5e7143e 100644 (file)
@@ -9,8 +9,6 @@
 #include <dt-bindings/gpio/uniphier-gpio.h>
 #include <dt-bindings/thermal/thermal.h>
 
-/memreserve/ 0x80000000 0x02000000;
-
 / {
        compatible = "socionext,uniphier-ld20";
        #address-cells = <2>;
@@ -43,7 +41,7 @@
 
                cpu0: cpu@0 {
                        device_type = "cpu";
-                       compatible = "arm,cortex-a72", "arm,armv8";
+                       compatible = "arm,cortex-a72";
                        reg = <0 0x000>;
                        clocks = <&sys_clk 32>;
                        enable-method = "psci";
 
                cpu1: cpu@1 {
                        device_type = "cpu";
-                       compatible = "arm,cortex-a72", "arm,armv8";
+                       compatible = "arm,cortex-a72";
                        reg = <0 0x001>;
                        clocks = <&sys_clk 32>;
                        enable-method = "psci";
                        operating-points-v2 = <&cluster0_opp>;
+                       #cooling-cells = <2>;
                };
 
                cpu2: cpu@100 {
                        device_type = "cpu";
-                       compatible = "arm,cortex-a53", "arm,armv8";
+                       compatible = "arm,cortex-a53";
                        reg = <0 0x100>;
                        clocks = <&sys_clk 33>;
                        enable-method = "psci";
 
                cpu3: cpu@101 {
                        device_type = "cpu";
-                       compatible = "arm,cortex-a53", "arm,armv8";
+                       compatible = "arm,cortex-a53";
                        reg = <0 0x101>;
                        clocks = <&sys_clk 33>;
                        enable-method = "psci";
                        operating-points-v2 = <&cluster1_opp>;
+                       #cooling-cells = <2>;
                };
        };
 
                        cooling-maps {
                                map0 {
                                        trip = <&cpu_alert>;
-                                       cooling-device = <&cpu0
-                                           THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
-                               };
-                               map1 {
-                                       trip = <&cpu_alert>;
-                                       cooling-device = <&cpu2
-                                           THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                                       cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
+                                                        <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
                                };
                        };
                };
        };
 
+       reserved-memory {
+               #address-cells = <2>;
+               #size-cells = <2>;
+               ranges;
+
+               secure-memory@81000000 {
+                       reg = <0x0 0x81000000 0x0 0x01000000>;
+                       no-map;
+               };
+       };
+
        soc@0 {
                compatible = "simple-bus";
                #address-cells = <1>;
                #size-cells = <1>;
                ranges = <0 0 0 0xffffffff>;
 
+               spi0: spi@54006000 {
+                       compatible = "socionext,uniphier-scssi";
+                       status = "disabled";
+                       reg = <0x54006000 0x100>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 39 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_spi0>;
+                       clocks = <&peri_clk 11>;
+                       resets = <&peri_rst 11>;
+               };
+
+               spi1: spi@54006100 {
+                       compatible = "socionext,uniphier-scssi";
+                       status = "disabled";
+                       reg = <0x54006100 0x100>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 216 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_spi1>;
+                       clocks = <&peri_clk 12>;
+                       resets = <&peri_rst 12>;
+               };
+
+               spi2: spi@54006200 {
+                       compatible = "socionext,uniphier-scssi";
+                       status = "disabled";
+                       reg = <0x54006200 0x100>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 229 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_spi2>;
+                       clocks = <&peri_clk 13>;
+                       resets = <&peri_rst 13>;
+               };
+
+               spi3: spi@54006300 {
+                       compatible = "socionext,uniphier-scssi";
+                       status = "disabled";
+                       reg = <0x54006300 0x100>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       interrupts = <0 230 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_spi3>;
+                       clocks = <&peri_clk 14>;
+                       resets = <&peri_rst 14>;
+               };
+
                serial0: serial@54006800 {
                        compatible = "socionext,uniphier-uart";
                        status = "disabled";
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_uart0>;
                        clocks = <&peri_clk 0>;
-                       clock-frequency = <58820000>;
                        resets = <&peri_rst 0>;
                };
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_uart1>;
                        clocks = <&peri_clk 1>;
-                       clock-frequency = <58820000>;
                        resets = <&peri_rst 1>;
                };
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_uart2>;
                        clocks = <&peri_clk 2>;
-                       clock-frequency = <58820000>;
                        resets = <&peri_rst 2>;
                };
 
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_uart3>;
                        clocks = <&peri_clk 3>;
-                       clock-frequency = <58820000>;
                        resets = <&peri_rst 3>;
                };
 
                        };
                };
 
-               emmc: sdhc@5a000000 {
+               emmc: mmc@5a000000 {
                        compatible = "socionext,uniphier-sd4hc", "cdns,sd4hc";
                        reg = <0x5a000000 0x400>;
                        interrupts = <0 78 4>;
                        pinctrl-names = "default";
-                       pinctrl-0 = <&pinctrl_emmc_1v8>;
+                       pinctrl-0 = <&pinctrl_emmc>;
                        clocks = <&sys_clk 4>;
                        resets = <&sys_rst 4>;
                        bus-width = <8>;
                        mmc-ddr-1_8v;
                        mmc-hs200-1_8v;
                        mmc-pwrseq = <&emmc_pwrseq>;
-                       cdns,phy-input-delay-legacy = <4>;
+                       cdns,phy-input-delay-legacy = <9>;
                        cdns,phy-input-delay-mmc-highspeed = <2>;
                        cdns,phy-input-delay-mmc-ddr = <3>;
                        cdns,phy-dll-delay-sdclk = <21>;
                        cdns,phy-dll-delay-sdclk-hsmmc = <21>;
                };
 
-               sd: sdhc@5a400000 {
-                       compatible = "socionext,uniphier-sdhc";
+               sd: mmc@5a400000 {
+                       compatible = "socionext,uniphier-sd-v3.1.1";
                        status = "disabled";
                        reg = <0x5a400000 0x800>;
                        interrupts = <0 76 4>;
                        efuse@200 {
                                compatible = "socionext,uniphier-efuse";
                                reg = <0x200 0x68>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+
+                               /* USB cells */
+                               usb_rterm0: trim@54,4 {
+                                       reg = <0x54 1>;
+                                       bits = <4 2>;
+                               };
+                               usb_rterm1: trim@55,4 {
+                                       reg = <0x55 1>;
+                                       bits = <4 2>;
+                               };
+                               usb_rterm2: trim@58,4 {
+                                       reg = <0x58 1>;
+                                       bits = <4 2>;
+                               };
+                               usb_rterm3: trim@59,4 {
+                                       reg = <0x59 1>;
+                                       bits = <4 2>;
+                               };
+                               usb_sel_t0: trim@54,0 {
+                                       reg = <0x54 1>;
+                                       bits = <0 4>;
+                               };
+                               usb_sel_t1: trim@55,0 {
+                                       reg = <0x55 1>;
+                                       bits = <0 4>;
+                               };
+                               usb_sel_t2: trim@58,0 {
+                                       reg = <0x58 1>;
+                                       bits = <0 4>;
+                               };
+                               usb_sel_t3: trim@59,0 {
+                                       reg = <0x59 1>;
+                                       bits = <0 4>;
+                               };
+                               usb_hs_i0: trim@56,0 {
+                                       reg = <0x56 1>;
+                                       bits = <0 4>;
+                               };
+                               usb_hs_i2: trim@5a,0 {
+                                       reg = <0x5a 1>;
+                                       bits = <0 4>;
+                               };
                        };
                };
 
-               aidet: aidet@5fc20000 {
+               xdmac: dma-controller@5fc10000 {
+                       compatible = "socionext,uniphier-xdmac";
+                       reg = <0x5fc10000 0x5300>;
+                       interrupts = <0 188 4>;
+                       dma-channels = <16>;
+                       #dma-cells = <2>;
+               };
+
+               aidet: interrupt-controller@5fc20000 {
                        compatible = "socionext,uniphier-ld20-aidet";
                        reg = <0x5fc20000 0x200>;
                        interrupt-controller;
                        interrupts = <0 66 4>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_ether_rgmii>;
+                       clock-names = "ether";
                        clocks = <&sys_clk 6>;
+                       reset-names = "ether";
                        resets = <&sys_rst 6>;
                        phy-mode = "rgmii";
                        local-mac-address = [00 00 00 00 00 00];
+                       socionext,syscon-phy-mode = <&soc_glue 0>;
 
                        mdio: mdio {
                                #address-cells = <1>;
                        };
                };
 
+               _usb: usb@65a00000 {
+                       compatible = "socionext,uniphier-dwc3", "snps,dwc3";
+                       status = "disabled";
+                       reg = <0x65a00000 0xcd00>;
+                       interrupt-names = "host";
+                       interrupts = <0 134 4>;
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb1>,
+                                   <&pinctrl_usb2>, <&pinctrl_usb3>;
+                       clock-names = "ref", "bus_early", "suspend";
+                       clocks = <&sys_clk 14>, <&sys_clk 14>, <&sys_clk 14>;
+                       resets = <&usb_rst 15>;
+                       phys = <&usb_hsphy0>, <&usb_hsphy1>,
+                              <&usb_hsphy2>, <&usb_hsphy3>,
+                              <&usb_ssphy0>, <&usb_ssphy1>;
+                       dr_mode = "host";
+               };
+
+               usb-glue@65b00000 {
+                       compatible = "socionext,uniphier-ld20-dwc3-glue",
+                                    "simple-mfd";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0 0x65b00000 0x400>;
+
+                       usb_rst: reset@0 {
+                               compatible = "socionext,uniphier-ld20-usb3-reset";
+                               reg = <0x0 0x4>;
+                               #reset-cells = <1>;
+                               clock-names = "link";
+                               clocks = <&sys_clk 14>;
+                               reset-names = "link";
+                               resets = <&sys_rst 14>;
+                       };
+
+                       usb_vbus0: regulator@100 {
+                               compatible = "socionext,uniphier-ld20-usb3-regulator";
+                               reg = <0x100 0x10>;
+                               clock-names = "link";
+                               clocks = <&sys_clk 14>;
+                               reset-names = "link";
+                               resets = <&sys_rst 14>;
+                       };
+
+                       usb_vbus1: regulator@110 {
+                               compatible = "socionext,uniphier-ld20-usb3-regulator";
+                               reg = <0x110 0x10>;
+                               clock-names = "link";
+                               clocks = <&sys_clk 14>;
+                               reset-names = "link";
+                               resets = <&sys_rst 14>;
+                       };
+
+                       usb_vbus2: regulator@120 {
+                               compatible = "socionext,uniphier-ld20-usb3-regulator";
+                               reg = <0x120 0x10>;
+                               clock-names = "link";
+                               clocks = <&sys_clk 14>;
+                               reset-names = "link";
+                               resets = <&sys_rst 14>;
+                       };
+
+                       usb_vbus3: regulator@130 {
+                               compatible = "socionext,uniphier-ld20-usb3-regulator";
+                               reg = <0x130 0x10>;
+                               clock-names = "link";
+                               clocks = <&sys_clk 14>;
+                               reset-names = "link";
+                               resets = <&sys_rst 14>;
+                       };
+
+                       usb_hsphy0: hs-phy@200 {
+                               compatible = "socionext,uniphier-ld20-usb3-hsphy";
+                               reg = <0x200 0x10>;
+                               #phy-cells = <0>;
+                               clock-names = "link", "phy";
+                               clocks = <&sys_clk 14>, <&sys_clk 16>;
+                               reset-names = "link", "phy";
+                               resets = <&sys_rst 14>, <&sys_rst 16>;
+                               vbus-supply = <&usb_vbus0>;
+                               nvmem-cell-names = "rterm", "sel_t", "hs_i";
+                               nvmem-cells = <&usb_rterm0>, <&usb_sel_t0>,
+                                             <&usb_hs_i0>;
+                       };
+
+                       usb_hsphy1: hs-phy@210 {
+                               compatible = "socionext,uniphier-ld20-usb3-hsphy";
+                               reg = <0x210 0x10>;
+                               #phy-cells = <0>;
+                               clock-names = "link", "phy";
+                               clocks = <&sys_clk 14>, <&sys_clk 16>;
+                               reset-names = "link", "phy";
+                               resets = <&sys_rst 14>, <&sys_rst 16>;
+                               vbus-supply = <&usb_vbus1>;
+                               nvmem-cell-names = "rterm", "sel_t", "hs_i";
+                               nvmem-cells = <&usb_rterm1>, <&usb_sel_t1>,
+                                             <&usb_hs_i0>;
+                       };
+
+                       usb_hsphy2: hs-phy@220 {
+                               compatible = "socionext,uniphier-ld20-usb3-hsphy";
+                               reg = <0x220 0x10>;
+                               #phy-cells = <0>;
+                               clock-names = "link", "phy";
+                               clocks = <&sys_clk 14>, <&sys_clk 17>;
+                               reset-names = "link", "phy";
+                               resets = <&sys_rst 14>, <&sys_rst 17>;
+                               vbus-supply = <&usb_vbus2>;
+                               nvmem-cell-names = "rterm", "sel_t", "hs_i";
+                               nvmem-cells = <&usb_rterm2>, <&usb_sel_t2>,
+                                             <&usb_hs_i2>;
+                       };
+
+                       usb_hsphy3: hs-phy@230 {
+                               compatible = "socionext,uniphier-ld20-usb3-hsphy";
+                               reg = <0x230 0x10>;
+                               #phy-cells = <0>;
+                               clock-names = "link", "phy";
+                               clocks = <&sys_clk 14>, <&sys_clk 17>;
+                               reset-names = "link", "phy";
+                               resets = <&sys_rst 14>, <&sys_rst 17>;
+                               vbus-supply = <&usb_vbus3>;
+                               nvmem-cell-names = "rterm", "sel_t", "hs_i";
+                               nvmem-cells = <&usb_rterm3>, <&usb_sel_t3>,
+                                             <&usb_hs_i2>;
+                       };
+
+                       usb_ssphy0: ss-phy@300 {
+                               compatible = "socionext,uniphier-ld20-usb3-ssphy";
+                               reg = <0x300 0x10>;
+                               #phy-cells = <0>;
+                               clock-names = "link", "phy";
+                               clocks = <&sys_clk 14>, <&sys_clk 18>;
+                               reset-names = "link", "phy";
+                               resets = <&sys_rst 14>, <&sys_rst 18>;
+                               vbus-supply = <&usb_vbus0>;
+                       };
+
+                       usb_ssphy1: ss-phy@310 {
+                               compatible = "socionext,uniphier-ld20-usb3-ssphy";
+                               reg = <0x310 0x10>;
+                               #phy-cells = <0>;
+                               clock-names = "link", "phy";
+                               clocks = <&sys_clk 14>, <&sys_clk 19>;
+                               reset-names = "link", "phy";
+                               resets = <&sys_rst 14>, <&sys_rst 19>;
+                               vbus-supply = <&usb_vbus1>;
+                       };
+               };
+
+               /* FIXME: U-Boot own node */
                usb: usb@65b00000 {
                        compatible = "socionext,uniphier-ld20-dwc3";
                        reg = <0x65b00000 0x1000>;
                        };
                };
 
-               nand: nand@68000000 {
+               pcie: pcie@66000000 {
+                       compatible = "socionext,uniphier-pcie", "snps,dw-pcie";
+                       status = "disabled";
+                       reg-names = "dbi", "link", "config";
+                       reg = <0x66000000 0x1000>, <0x66010000 0x10000>,
+                             <0x2fff0000 0x10000>;
+                       #address-cells = <3>;
+                       #size-cells = <2>;
+                       clocks = <&sys_clk 24>;
+                       resets = <&sys_rst 24>;
+                       num-lanes = <1>;
+                       num-viewport = <1>;
+                       bus-range = <0x0 0xff>;
+                       device_type = "pci";
+                       ranges =
+                       /* downstream I/O */
+                               <0x81000000 0 0x00000000 0x2ffe0000 0 0x00010000>,
+                       /* non-prefetchable memory */
+                               <0x82000000 0 0x20000000 0x20000000 0 0x0ffe0000>;
+                       #interrupt-cells = <1>;
+                       interrupt-names = "dma", "msi";
+                       interrupts = <0 224 4>, <0 225 4>;
+                       interrupt-map-mask = <0 0 0 7>;
+                       interrupt-map = <0 0 0 1 &pcie_intc 0>, /* INTA */
+                                       <0 0 0 2 &pcie_intc 1>, /* INTB */
+                                       <0 0 0 3 &pcie_intc 2>, /* INTC */
+                                       <0 0 0 4 &pcie_intc 3>; /* INTD */
+                       phy-names = "pcie-phy";
+                       phys = <&pcie_phy>;
+
+                       pcie_intc: legacy-interrupt-controller {
+                               interrupt-controller;
+                               #interrupt-cells = <1>;
+                               interrupt-parent = <&gic>;
+                               interrupts = <0 226 4>;
+                       };
+               };
+
+               pcie_phy: phy@66038000 {
+                       compatible = "socionext,uniphier-ld20-pcie-phy";
+                       reg = <0x66038000 0x4000>;
+                       #phy-cells = <0>;
+                       clock-names = "link";
+                       clocks = <&sys_clk 24>;
+                       reset-names = "link";
+                       resets = <&sys_rst 24>;
+                       socionext,syscon = <&soc_glue>;
+               };
+
+               nand: nand-controller@68000000 {
                        compatible = "socionext,uniphier-denali-nand-v5b";
                        status = "disabled";
                        reg-names = "nand_data", "denali_reg";
                        interrupts = <0 65 4>;
                        pinctrl-names = "default";
                        pinctrl-0 = <&pinctrl_nand>;
-                       clocks = <&sys_clk 2>;
-                       resets = <&sys_rst 2>;
+                       clock-names = "nand", "nand_x", "ecc";
+                       clocks = <&sys_clk 2>, <&sys_clk 3>, <&sys_clk 3>;
+                       reset-names = "nand", "reg";
+                       resets = <&sys_rst 2>, <&sys_rst 2>;
                };
        };
 };