| .. | .. |
|---|
| 56 | 56 | #size-cells = <2>; |
|---|
| 57 | 57 | interrupt-parent = <&gic>; |
|---|
| 58 | 58 | |
|---|
| 59 | + aliases { |
|---|
| 60 | + ethernet0 = &gmac; |
|---|
| 61 | + }; |
|---|
| 62 | + |
|---|
| 59 | 63 | cpus { |
|---|
| 60 | 64 | #address-cells = <1>; |
|---|
| 61 | 65 | #size-cells = <0>; |
|---|
| .. | .. |
|---|
| 183 | 187 | clock-output-names = "osc32k"; |
|---|
| 184 | 188 | }; |
|---|
| 185 | 189 | |
|---|
| 190 | + /* |
|---|
| 191 | + * The following two are dummy clocks, placeholders |
|---|
| 192 | + * used in the gmac_tx clock. The gmac driver will |
|---|
| 193 | + * choose one parent depending on the PHY interface |
|---|
| 194 | + * mode, using clk_set_rate auto-reparenting. |
|---|
| 195 | + * |
|---|
| 196 | + * The actual TX clock rate is not controlled by the |
|---|
| 197 | + * gmac_tx clock. |
|---|
| 198 | + */ |
|---|
| 199 | + mii_phy_tx_clk: mii_phy_tx_clk { |
|---|
| 200 | + #clock-cells = <0>; |
|---|
| 201 | + compatible = "fixed-clock"; |
|---|
| 202 | + clock-frequency = <25000000>; |
|---|
| 203 | + clock-output-names = "mii_phy_tx"; |
|---|
| 204 | + }; |
|---|
| 205 | + |
|---|
| 206 | + gmac_int_tx_clk: gmac_int_tx_clk { |
|---|
| 207 | + #clock-cells = <0>; |
|---|
| 208 | + compatible = "fixed-clock"; |
|---|
| 209 | + clock-frequency = <125000000>; |
|---|
| 210 | + clock-output-names = "gmac_int_tx"; |
|---|
| 211 | + }; |
|---|
| 212 | + |
|---|
| 213 | + gmac_tx_clk: clk@800030 { |
|---|
| 214 | + #clock-cells = <0>; |
|---|
| 215 | + compatible = "allwinner,sun7i-a20-gmac-clk"; |
|---|
| 216 | + reg = <0x00800030 0x4>; |
|---|
| 217 | + clocks = <&mii_phy_tx_clk>, <&gmac_int_tx_clk>; |
|---|
| 218 | + clock-output-names = "gmac_tx"; |
|---|
| 219 | + }; |
|---|
| 220 | + |
|---|
| 186 | 221 | cpus_clk: clk@8001410 { |
|---|
| 187 | 222 | compatible = "allwinner,sun9i-a80-cpus-clk"; |
|---|
| 188 | 223 | reg = <0x08001410 0x4>; |
|---|
| .. | .. |
|---|
| 254 | 289 | status = "disabled"; |
|---|
| 255 | 290 | }; |
|---|
| 256 | 291 | |
|---|
| 257 | | - soc { |
|---|
| 292 | + soc@20000 { |
|---|
| 258 | 293 | compatible = "simple-bus"; |
|---|
| 259 | 294 | #address-cells = <1>; |
|---|
| 260 | 295 | #size-cells = <1>; |
|---|
| .. | .. |
|---|
| 280 | 315 | */ |
|---|
| 281 | 316 | compatible = "allwinner,sun9i-a80-smp-sram"; |
|---|
| 282 | 317 | reg = <0x1000 0x8>; |
|---|
| 318 | + }; |
|---|
| 319 | + }; |
|---|
| 320 | + |
|---|
| 321 | + gmac: ethernet@830000 { |
|---|
| 322 | + compatible = "allwinner,sun7i-a20-gmac"; |
|---|
| 323 | + reg = <0x00830000 0x1054>; |
|---|
| 324 | + interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 325 | + interrupt-names = "macirq"; |
|---|
| 326 | + clocks = <&ccu CLK_BUS_GMAC>, <&gmac_tx_clk>; |
|---|
| 327 | + clock-names = "stmmaceth", "allwinner_gmac_tx"; |
|---|
| 328 | + resets = <&ccu RST_BUS_GMAC>; |
|---|
| 329 | + reset-names = "stmmaceth"; |
|---|
| 330 | + snps,pbl = <2>; |
|---|
| 331 | + snps,fixed-burst; |
|---|
| 332 | + snps,force_sf_dma_mode; |
|---|
| 333 | + status = "disabled"; |
|---|
| 334 | + |
|---|
| 335 | + mdio: mdio { |
|---|
| 336 | + compatible = "snps,dwmac-mdio"; |
|---|
| 337 | + #address-cells = <1>; |
|---|
| 338 | + #size-cells = <0>; |
|---|
| 283 | 339 | }; |
|---|
| 284 | 340 | }; |
|---|
| 285 | 341 | |
|---|
| .. | .. |
|---|
| 331 | 387 | usbphy2: phy@a01800 { |
|---|
| 332 | 388 | compatible = "allwinner,sun9i-a80-usb-phy"; |
|---|
| 333 | 389 | reg = <0x00a01800 0x4>; |
|---|
| 334 | | - clocks = <&usb_clocks CLK_USB1_HSIC>, |
|---|
| 390 | + clocks = <&usb_clocks CLK_USB1_PHY>, |
|---|
| 335 | 391 | <&usb_clocks CLK_USB_HSIC>, |
|---|
| 336 | | - <&usb_clocks CLK_USB1_PHY>; |
|---|
| 337 | | - clock-names = "hsic_480M", |
|---|
| 392 | + <&usb_clocks CLK_USB1_HSIC>; |
|---|
| 393 | + clock-names = "phy", |
|---|
| 338 | 394 | "hsic_12M", |
|---|
| 339 | | - "phy"; |
|---|
| 340 | | - resets = <&usb_clocks RST_USB1_HSIC>, |
|---|
| 341 | | - <&usb_clocks RST_USB1_PHY>; |
|---|
| 342 | | - reset-names = "hsic", |
|---|
| 343 | | - "phy"; |
|---|
| 395 | + "hsic_480M"; |
|---|
| 396 | + resets = <&usb_clocks RST_USB1_PHY>, |
|---|
| 397 | + <&usb_clocks RST_USB1_HSIC>; |
|---|
| 398 | + reset-names = "phy", |
|---|
| 399 | + "hsic"; |
|---|
| 344 | 400 | status = "disabled"; |
|---|
| 345 | 401 | #phy-cells = <0>; |
|---|
| 346 | 402 | /* usb1 is always used with HSIC */ |
|---|
| .. | .. |
|---|
| 373 | 429 | usbphy3: phy@a02800 { |
|---|
| 374 | 430 | compatible = "allwinner,sun9i-a80-usb-phy"; |
|---|
| 375 | 431 | reg = <0x00a02800 0x4>; |
|---|
| 376 | | - clocks = <&usb_clocks CLK_USB2_HSIC>, |
|---|
| 432 | + clocks = <&usb_clocks CLK_USB2_PHY>, |
|---|
| 377 | 433 | <&usb_clocks CLK_USB_HSIC>, |
|---|
| 378 | | - <&usb_clocks CLK_USB2_PHY>; |
|---|
| 379 | | - clock-names = "hsic_480M", |
|---|
| 434 | + <&usb_clocks CLK_USB2_HSIC>; |
|---|
| 435 | + clock-names = "phy", |
|---|
| 380 | 436 | "hsic_12M", |
|---|
| 381 | | - "phy"; |
|---|
| 382 | | - resets = <&usb_clocks RST_USB2_HSIC>, |
|---|
| 383 | | - <&usb_clocks RST_USB2_PHY>; |
|---|
| 384 | | - reset-names = "hsic", |
|---|
| 385 | | - "phy"; |
|---|
| 437 | + "hsic_480M"; |
|---|
| 438 | + resets = <&usb_clocks RST_USB2_PHY>, |
|---|
| 439 | + <&usb_clocks RST_USB2_HSIC>; |
|---|
| 440 | + reset-names = "phy", |
|---|
| 441 | + "hsic"; |
|---|
| 386 | 442 | status = "disabled"; |
|---|
| 387 | 443 | #phy-cells = <0>; |
|---|
| 388 | 444 | }; |
|---|
| .. | .. |
|---|
| 399 | 455 | cpucfg@1700000 { |
|---|
| 400 | 456 | compatible = "allwinner,sun9i-a80-cpucfg"; |
|---|
| 401 | 457 | reg = <0x01700000 0x100>; |
|---|
| 458 | + }; |
|---|
| 459 | + |
|---|
| 460 | + crypto: crypto@1c02000 { |
|---|
| 461 | + compatible = "allwinner,sun9i-a80-crypto"; |
|---|
| 462 | + reg = <0x01c02000 0x1000>; |
|---|
| 463 | + interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 464 | + resets = <&ccu RST_BUS_SS>; |
|---|
| 465 | + clocks = <&ccu CLK_BUS_SS>, <&ccu CLK_SS>; |
|---|
| 466 | + clock-names = "bus", "mod"; |
|---|
| 402 | 467 | }; |
|---|
| 403 | 468 | |
|---|
| 404 | 469 | mmc0: mmc@1c0f000 { |
|---|
| .. | .. |
|---|
| 465 | 530 | compatible = "allwinner,sun9i-a80-mmc-config-clk"; |
|---|
| 466 | 531 | reg = <0x01c13000 0x10>; |
|---|
| 467 | 532 | clocks = <&ccu CLK_BUS_MMC>; |
|---|
| 468 | | - clock-names = "ahb"; |
|---|
| 469 | 533 | resets = <&ccu RST_BUS_MMC>; |
|---|
| 470 | | - reset-names = "ahb"; |
|---|
| 471 | 534 | #clock-cells = <1>; |
|---|
| 472 | 535 | #reset-cells = <1>; |
|---|
| 473 | 536 | clock-output-names = "mmc0_config", "mmc1_config", |
|---|
| .. | .. |
|---|
| 475 | 538 | }; |
|---|
| 476 | 539 | |
|---|
| 477 | 540 | gic: interrupt-controller@1c41000 { |
|---|
| 478 | | - compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic"; |
|---|
| 541 | + compatible = "arm,gic-400"; |
|---|
| 479 | 542 | reg = <0x01c41000 0x1000>, |
|---|
| 480 | 543 | <0x01c42000 0x2000>, |
|---|
| 481 | 544 | <0x01c44000 0x2000>, |
|---|
| .. | .. |
|---|
| 544 | 607 | #size-cells = <0>; |
|---|
| 545 | 608 | |
|---|
| 546 | 609 | fe0_out: port@1 { |
|---|
| 547 | | - #address-cells = <1>; |
|---|
| 548 | | - #size-cells = <0>; |
|---|
| 549 | 610 | reg = <1>; |
|---|
| 550 | 611 | |
|---|
| 551 | | - fe0_out_deu0: endpoint@0 { |
|---|
| 552 | | - reg = <0>; |
|---|
| 612 | + fe0_out_deu0: endpoint { |
|---|
| 553 | 613 | remote-endpoint = <&deu0_in_fe0>; |
|---|
| 554 | 614 | }; |
|---|
| 555 | 615 | }; |
|---|
| .. | .. |
|---|
| 571 | 631 | #size-cells = <0>; |
|---|
| 572 | 632 | |
|---|
| 573 | 633 | fe1_out: port@1 { |
|---|
| 574 | | - #address-cells = <1>; |
|---|
| 575 | | - #size-cells = <0>; |
|---|
| 576 | 634 | reg = <1>; |
|---|
| 577 | 635 | |
|---|
| 578 | | - fe1_out_deu1: endpoint@0 { |
|---|
| 579 | | - reg = <0>; |
|---|
| 636 | + fe1_out_deu1: endpoint { |
|---|
| 580 | 637 | remote-endpoint = <&deu1_in_fe1>; |
|---|
| 581 | 638 | }; |
|---|
| 582 | 639 | }; |
|---|
| .. | .. |
|---|
| 614 | 671 | }; |
|---|
| 615 | 672 | |
|---|
| 616 | 673 | be0_out: port@1 { |
|---|
| 617 | | - #address-cells = <1>; |
|---|
| 618 | | - #size-cells = <0>; |
|---|
| 619 | 674 | reg = <1>; |
|---|
| 620 | 675 | |
|---|
| 621 | | - be0_out_drc0: endpoint@0 { |
|---|
| 622 | | - reg = <0>; |
|---|
| 676 | + be0_out_drc0: endpoint { |
|---|
| 623 | 677 | remote-endpoint = <&drc0_in_be0>; |
|---|
| 624 | 678 | }; |
|---|
| 625 | 679 | }; |
|---|
| .. | .. |
|---|
| 657 | 711 | }; |
|---|
| 658 | 712 | |
|---|
| 659 | 713 | be1_out: port@1 { |
|---|
| 660 | | - #address-cells = <1>; |
|---|
| 661 | | - #size-cells = <0>; |
|---|
| 662 | 714 | reg = <1>; |
|---|
| 663 | 715 | |
|---|
| 664 | | - be1_out_drc1: endpoint@0 { |
|---|
| 665 | | - reg = <0>; |
|---|
| 716 | + be1_out_drc1: endpoint { |
|---|
| 666 | 717 | remote-endpoint = <&drc1_in_be1>; |
|---|
| 667 | 718 | }; |
|---|
| 668 | 719 | }; |
|---|
| .. | .. |
|---|
| 686 | 737 | #size-cells = <0>; |
|---|
| 687 | 738 | |
|---|
| 688 | 739 | deu0_in: port@0 { |
|---|
| 689 | | - #address-cells = <1>; |
|---|
| 690 | | - #size-cells = <0>; |
|---|
| 691 | 740 | reg = <0>; |
|---|
| 692 | 741 | |
|---|
| 693 | | - deu0_in_fe0: endpoint@0 { |
|---|
| 694 | | - reg = <0>; |
|---|
| 742 | + deu0_in_fe0: endpoint { |
|---|
| 695 | 743 | remote-endpoint = <&fe0_out_deu0>; |
|---|
| 696 | 744 | }; |
|---|
| 697 | 745 | }; |
|---|
| .. | .. |
|---|
| 731 | 779 | #size-cells = <0>; |
|---|
| 732 | 780 | |
|---|
| 733 | 781 | deu1_in: port@0 { |
|---|
| 734 | | - #address-cells = <1>; |
|---|
| 735 | | - #size-cells = <0>; |
|---|
| 736 | 782 | reg = <0>; |
|---|
| 737 | 783 | |
|---|
| 738 | | - deu1_in_fe1: endpoint@0 { |
|---|
| 739 | | - reg = <0>; |
|---|
| 784 | + deu1_in_fe1: endpoint { |
|---|
| 740 | 785 | remote-endpoint = <&fe1_out_deu1>; |
|---|
| 741 | 786 | }; |
|---|
| 742 | 787 | }; |
|---|
| .. | .. |
|---|
| 776 | 821 | #size-cells = <0>; |
|---|
| 777 | 822 | |
|---|
| 778 | 823 | drc0_in: port@0 { |
|---|
| 779 | | - #address-cells = <1>; |
|---|
| 780 | | - #size-cells = <0>; |
|---|
| 781 | 824 | reg = <0>; |
|---|
| 782 | 825 | |
|---|
| 783 | | - drc0_in_be0: endpoint@0 { |
|---|
| 784 | | - reg = <0>; |
|---|
| 826 | + drc0_in_be0: endpoint { |
|---|
| 785 | 827 | remote-endpoint = <&be0_out_drc0>; |
|---|
| 786 | 828 | }; |
|---|
| 787 | 829 | }; |
|---|
| 788 | 830 | |
|---|
| 789 | 831 | drc0_out: port@1 { |
|---|
| 790 | | - #address-cells = <1>; |
|---|
| 791 | | - #size-cells = <0>; |
|---|
| 792 | 832 | reg = <1>; |
|---|
| 793 | 833 | |
|---|
| 794 | | - drc0_out_tcon0: endpoint@0 { |
|---|
| 795 | | - reg = <0>; |
|---|
| 834 | + drc0_out_tcon0: endpoint { |
|---|
| 796 | 835 | remote-endpoint = <&tcon0_in_drc0>; |
|---|
| 797 | 836 | }; |
|---|
| 798 | 837 | }; |
|---|
| .. | .. |
|---|
| 816 | 855 | #size-cells = <0>; |
|---|
| 817 | 856 | |
|---|
| 818 | 857 | drc1_in: port@0 { |
|---|
| 819 | | - #address-cells = <1>; |
|---|
| 820 | | - #size-cells = <0>; |
|---|
| 821 | 858 | reg = <0>; |
|---|
| 822 | 859 | |
|---|
| 823 | | - drc1_in_be1: endpoint@0 { |
|---|
| 824 | | - reg = <0>; |
|---|
| 860 | + drc1_in_be1: endpoint { |
|---|
| 825 | 861 | remote-endpoint = <&be1_out_drc1>; |
|---|
| 826 | 862 | }; |
|---|
| 827 | 863 | }; |
|---|
| 828 | 864 | |
|---|
| 829 | 865 | drc1_out: port@1 { |
|---|
| 830 | | - #address-cells = <1>; |
|---|
| 831 | | - #size-cells = <0>; |
|---|
| 832 | 866 | reg = <1>; |
|---|
| 833 | 867 | |
|---|
| 834 | | - drc1_out_tcon1: endpoint@0 { |
|---|
| 835 | | - reg = <0>; |
|---|
| 868 | + drc1_out_tcon1: endpoint { |
|---|
| 836 | 869 | remote-endpoint = <&tcon1_in_drc1>; |
|---|
| 837 | 870 | }; |
|---|
| 838 | 871 | }; |
|---|
| .. | .. |
|---|
| 845 | 878 | interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 846 | 879 | clocks = <&ccu CLK_BUS_LCD0>, <&ccu CLK_LCD0>; |
|---|
| 847 | 880 | clock-names = "ahb", "tcon-ch0"; |
|---|
| 848 | | - resets = <&ccu RST_BUS_LCD0>, <&ccu RST_BUS_EDP>; |
|---|
| 849 | | - reset-names = "lcd", "edp"; |
|---|
| 881 | + resets = <&ccu RST_BUS_LCD0>, |
|---|
| 882 | + <&ccu RST_BUS_EDP>, |
|---|
| 883 | + <&ccu RST_BUS_LVDS>; |
|---|
| 884 | + reset-names = "lcd", |
|---|
| 885 | + "edp", |
|---|
| 886 | + "lvds"; |
|---|
| 850 | 887 | clock-output-names = "tcon0-pixel-clock"; |
|---|
| 888 | + #clock-cells = <0>; |
|---|
| 851 | 889 | |
|---|
| 852 | 890 | ports { |
|---|
| 853 | 891 | #address-cells = <1>; |
|---|
| 854 | 892 | #size-cells = <0>; |
|---|
| 855 | 893 | |
|---|
| 856 | 894 | tcon0_in: port@0 { |
|---|
| 857 | | - #address-cells = <1>; |
|---|
| 858 | | - #size-cells = <0>; |
|---|
| 859 | 895 | reg = <0>; |
|---|
| 860 | 896 | |
|---|
| 861 | | - tcon0_in_drc0: endpoint@0 { |
|---|
| 862 | | - reg = <0>; |
|---|
| 897 | + tcon0_in_drc0: endpoint { |
|---|
| 863 | 898 | remote-endpoint = <&drc0_out_tcon0>; |
|---|
| 864 | 899 | }; |
|---|
| 865 | 900 | }; |
|---|
| 866 | 901 | |
|---|
| 867 | 902 | tcon0_out: port@1 { |
|---|
| 868 | | - #address-cells = <1>; |
|---|
| 869 | | - #size-cells = <0>; |
|---|
| 870 | 903 | reg = <1>; |
|---|
| 871 | 904 | }; |
|---|
| 872 | 905 | }; |
|---|
| .. | .. |
|---|
| 886 | 919 | #size-cells = <0>; |
|---|
| 887 | 920 | |
|---|
| 888 | 921 | tcon1_in: port@0 { |
|---|
| 889 | | - #address-cells = <1>; |
|---|
| 890 | | - #size-cells = <0>; |
|---|
| 891 | 922 | reg = <0>; |
|---|
| 892 | 923 | |
|---|
| 893 | | - tcon1_in_drc1: endpoint@0 { |
|---|
| 894 | | - reg = <0>; |
|---|
| 924 | + tcon1_in_drc1: endpoint { |
|---|
| 895 | 925 | remote-endpoint = <&drc1_out_tcon1>; |
|---|
| 896 | 926 | }; |
|---|
| 897 | 927 | }; |
|---|
| 898 | 928 | |
|---|
| 899 | 929 | tcon1_out: port@1 { |
|---|
| 900 | | - #address-cells = <1>; |
|---|
| 901 | | - #size-cells = <0>; |
|---|
| 902 | 930 | reg = <1>; |
|---|
| 903 | 931 | }; |
|---|
| 904 | 932 | }; |
|---|
| .. | .. |
|---|
| 930 | 958 | compatible = "allwinner,sun6i-a31-wdt"; |
|---|
| 931 | 959 | reg = <0x06000ca0 0x20>; |
|---|
| 932 | 960 | interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 961 | + clocks = <&osc24M>; |
|---|
| 933 | 962 | }; |
|---|
| 934 | 963 | |
|---|
| 935 | 964 | pio: pinctrl@6000800 { |
|---|
| .. | .. |
|---|
| 945 | 974 | gpio-controller; |
|---|
| 946 | 975 | interrupt-controller; |
|---|
| 947 | 976 | #interrupt-cells = <3>; |
|---|
| 948 | | - #size-cells = <0>; |
|---|
| 949 | 977 | #gpio-cells = <3>; |
|---|
| 978 | + |
|---|
| 979 | + gmac_rgmii_pins: gmac-rgmii-pins { |
|---|
| 980 | + pins = "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", |
|---|
| 981 | + "PA7", "PA8", "PA9", "PA10", "PA12", |
|---|
| 982 | + "PA13", "PA15", "PA16", "PA17"; |
|---|
| 983 | + function = "gmac"; |
|---|
| 984 | + /* |
|---|
| 985 | + * data lines in RGMII mode use DDR mode |
|---|
| 986 | + * and need a higher signal drive strength |
|---|
| 987 | + */ |
|---|
| 988 | + drive-strength = <40>; |
|---|
| 989 | + }; |
|---|
| 950 | 990 | |
|---|
| 951 | 991 | i2c3_pins: i2c3-pins { |
|---|
| 952 | 992 | pins = "PG10", "PG11"; |
|---|
| .. | .. |
|---|
| 1126 | 1166 | compatible = "allwinner,sun6i-a31-wdt"; |
|---|
| 1127 | 1167 | reg = <0x08001000 0x20>; |
|---|
| 1128 | 1168 | interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 1169 | + clocks = <&osc24M>; |
|---|
| 1129 | 1170 | }; |
|---|
| 1130 | 1171 | |
|---|
| 1131 | 1172 | prcm@8001400 { |
|---|
| .. | .. |
|---|
| 1148 | 1189 | }; |
|---|
| 1149 | 1190 | |
|---|
| 1150 | 1191 | r_ir: ir@8002000 { |
|---|
| 1151 | | - compatible = "allwinner,sun5i-a13-ir"; |
|---|
| 1192 | + compatible = "allwinner,sun6i-a31-ir"; |
|---|
| 1152 | 1193 | interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 1153 | 1194 | pinctrl-names = "default"; |
|---|
| 1154 | 1195 | pinctrl-0 = <&r_ir_pins>; |
|---|