.. | .. |
---|
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>; |
---|