aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKunihiko Hayashi <hayashi.kunihiko@socionext.com>2018-10-02 07:12:01 -0400
committerMasahiro Yamada <yamada.masahiro@socionext.com>2018-10-03 20:41:06 -0400
commitd7b9beb830d7c94a7c75bdda46d1308328b0a66d (patch)
tree1ac549fe4a91c10a3f369ed68ebeb51088739db5
parent8bb2f53203a3925799cd4b557069be662413ac0b (diff)
arm64: dts: uniphier: Add USB3 controller nodes
Add USB3 controller nodes including usb-core, resets, regulator, ss-phy and hs-phy. This supports for LD20, PXs3 and the boards. This includes additional efuse nodes for obtaining PHY trimming values. Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts4
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts4
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi194
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts8
-rw-r--r--arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi240
5 files changed, 450 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts b/arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts
index 1a5e7c24b901..d7ae28afef7d 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts
+++ b/arch/arm64/boot/dts/socionext/uniphier-ld20-global.dts
@@ -148,3 +148,7 @@
148&nand { 148&nand {
149 status = "okay"; 149 status = "okay";
150}; 150};
151
152&usb {
153 status = "okay";
154};
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts b/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts
index 440c2e6a638b..406244a5c8e8 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts
+++ b/arch/arm64/boot/dts/socionext/uniphier-ld20-ref.dts
@@ -75,3 +75,7 @@
75 drive-strength = <9>; 75 drive-strength = <9>;
76 }; 76 };
77}; 77};
78
79&usb {
80 status = "okay";
81};
diff --git a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
index b2e54d59bd85..d7e2d8969601 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
+++ b/arch/arm64/boot/dts/socionext/uniphier-ld20.dtsi
@@ -611,6 +611,50 @@
611 efuse@200 { 611 efuse@200 {
612 compatible = "socionext,uniphier-efuse"; 612 compatible = "socionext,uniphier-efuse";
613 reg = <0x200 0x68>; 613 reg = <0x200 0x68>;
614 #address-cells = <1>;
615 #size-cells = <1>;
616
617 /* USB cells */
618 usb_rterm0: trim@54,4 {
619 reg = <0x54 1>;
620 bits = <4 2>;
621 };
622 usb_rterm1: trim@55,4 {
623 reg = <0x55 1>;
624 bits = <4 2>;
625 };
626 usb_rterm2: trim@58,4 {
627 reg = <0x58 1>;
628 bits = <4 2>;
629 };
630 usb_rterm3: trim@59,4 {
631 reg = <0x59 1>;
632 bits = <4 2>;
633 };
634 usb_sel_t0: trim@54,0 {
635 reg = <0x54 1>;
636 bits = <0 4>;
637 };
638 usb_sel_t1: trim@55,0 {
639 reg = <0x55 1>;
640 bits = <0 4>;
641 };
642 usb_sel_t2: trim@58,0 {
643 reg = <0x58 1>;
644 bits = <0 4>;
645 };
646 usb_sel_t3: trim@59,0 {
647 reg = <0x59 1>;
648 bits = <0 4>;
649 };
650 usb_hs_i0: trim@56,0 {
651 reg = <0x56 1>;
652 bits = <0 4>;
653 };
654 usb_hs_i2: trim@5a,0 {
655 reg = <0x5a 1>;
656 bits = <0 4>;
657 };
614 }; 658 };
615 }; 659 };
616 660
@@ -678,6 +722,156 @@
678 }; 722 };
679 }; 723 };
680 724
725 usb: usb@65a00000 {
726 compatible = "socionext,uniphier-dwc3", "snps,dwc3";
727 status = "disabled";
728 reg = <0x65a00000 0xcd00>;
729 interrupt-names = "host";
730 interrupts = <0 134 4>;
731 pinctrl-names = "default";
732 pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb1>,
733 <&pinctrl_usb2>, <&pinctrl_usb3>;
734 clock-names = "ref", "bus_early", "suspend";
735 clocks = <&sys_clk 14>, <&sys_clk 14>, <&sys_clk 14>;
736 resets = <&usb_rst 15>;
737 phys = <&usb_hsphy0>, <&usb_hsphy1>,
738 <&usb_hsphy2>, <&usb_hsphy3>,
739 <&usb_ssphy0>, <&usb_ssphy1>;
740 dr_mode = "host";
741 };
742
743 usb-glue@65b00000 {
744 compatible = "socionext,uniphier-ld20-dwc3-glue",
745 "simple-mfd";
746 #address-cells = <1>;
747 #size-cells = <1>;
748 ranges = <0 0x65b00000 0x400>;
749
750 usb_rst: reset@0 {
751 compatible = "socionext,uniphier-ld20-usb3-reset";
752 reg = <0x0 0x4>;
753 #reset-cells = <1>;
754 clock-names = "link";
755 clocks = <&sys_clk 14>;
756 reset-names = "link";
757 resets = <&sys_rst 14>;
758 };
759
760 usb_vbus0: regulator@100 {
761 compatible = "socionext,uniphier-ld20-usb3-regulator";
762 reg = <0x100 0x10>;
763 clock-names = "link";
764 clocks = <&sys_clk 14>;
765 reset-names = "link";
766 resets = <&sys_rst 14>;
767 };
768
769 usb_vbus1: regulator@110 {
770 compatible = "socionext,uniphier-ld20-usb3-regulator";
771 reg = <0x110 0x10>;
772 clock-names = "link";
773 clocks = <&sys_clk 14>;
774 reset-names = "link";
775 resets = <&sys_rst 14>;
776 };
777
778 usb_vbus2: regulator@120 {
779 compatible = "socionext,uniphier-ld20-usb3-regulator";
780 reg = <0x120 0x10>;
781 clock-names = "link";
782 clocks = <&sys_clk 14>;
783 reset-names = "link";
784 resets = <&sys_rst 14>;
785 };
786
787 usb_vbus3: regulator@130 {
788 compatible = "socionext,uniphier-ld20-usb3-regulator";
789 reg = <0x130 0x10>;
790 clock-names = "link";
791 clocks = <&sys_clk 14>;
792 reset-names = "link";
793 resets = <&sys_rst 14>;
794 };
795
796 usb_hsphy0: hs-phy@200 {
797 compatible = "socionext,uniphier-ld20-usb3-hsphy";
798 reg = <0x200 0x10>;
799 #phy-cells = <0>;
800 clock-names = "link", "phy";
801 clocks = <&sys_clk 14>, <&sys_clk 16>;
802 reset-names = "link", "phy";
803 resets = <&sys_rst 14>, <&sys_rst 16>;
804 vbus-supply = <&usb_vbus0>;
805 nvmem-cell-names = "rterm", "sel_t", "hs_i";
806 nvmem-cells = <&usb_rterm0>, <&usb_sel_t0>,
807 <&usb_hs_i0>;
808 };
809
810 usb_hsphy1: hs-phy@210 {
811 compatible = "socionext,uniphier-ld20-usb3-hsphy";
812 reg = <0x210 0x10>;
813 #phy-cells = <0>;
814 clock-names = "link", "phy";
815 clocks = <&sys_clk 14>, <&sys_clk 16>;
816 reset-names = "link", "phy";
817 resets = <&sys_rst 14>, <&sys_rst 16>;
818 vbus-supply = <&usb_vbus1>;
819 nvmem-cell-names = "rterm", "sel_t", "hs_i";
820 nvmem-cells = <&usb_rterm1>, <&usb_sel_t1>,
821 <&usb_hs_i0>;
822 };
823
824 usb_hsphy2: hs-phy@220 {
825 compatible = "socionext,uniphier-ld20-usb3-hsphy";
826 reg = <0x220 0x10>;
827 #phy-cells = <0>;
828 clock-names = "link", "phy";
829 clocks = <&sys_clk 14>, <&sys_clk 17>;
830 reset-names = "link", "phy";
831 resets = <&sys_rst 14>, <&sys_rst 17>;
832 vbus-supply = <&usb_vbus2>;
833 nvmem-cell-names = "rterm", "sel_t", "hs_i";
834 nvmem-cells = <&usb_rterm2>, <&usb_sel_t2>,
835 <&usb_hs_i2>;
836 };
837
838 usb_hsphy3: hs-phy@230 {
839 compatible = "socionext,uniphier-ld20-usb3-hsphy";
840 reg = <0x230 0x10>;
841 #phy-cells = <0>;
842 clock-names = "link", "phy";
843 clocks = <&sys_clk 14>, <&sys_clk 17>;
844 reset-names = "link", "phy";
845 resets = <&sys_rst 14>, <&sys_rst 17>;
846 vbus-supply = <&usb_vbus3>;
847 nvmem-cell-names = "rterm", "sel_t", "hs_i";
848 nvmem-cells = <&usb_rterm3>, <&usb_sel_t3>,
849 <&usb_hs_i2>;
850 };
851
852 usb_ssphy0: ss-phy@300 {
853 compatible = "socionext,uniphier-ld20-usb3-ssphy";
854 reg = <0x300 0x10>;
855 #phy-cells = <0>;
856 clock-names = "link", "phy";
857 clocks = <&sys_clk 14>, <&sys_clk 18>;
858 reset-names = "link", "phy";
859 resets = <&sys_rst 14>, <&sys_rst 18>;
860 vbus-supply = <&usb_vbus0>;
861 };
862
863 usb_ssphy1: ss-phy@310 {
864 compatible = "socionext,uniphier-ld20-usb3-ssphy";
865 reg = <0x310 0x10>;
866 #phy-cells = <0>;
867 clock-names = "link", "phy";
868 clocks = <&sys_clk 14>, <&sys_clk 19>;
869 reset-names = "link", "phy";
870 resets = <&sys_rst 14>, <&sys_rst 19>;
871 vbus-supply = <&usb_vbus1>;
872 };
873 };
874
681 nand: nand@68000000 { 875 nand: nand@68000000 {
682 compatible = "socionext,uniphier-denali-nand-v5b"; 876 compatible = "socionext,uniphier-denali-nand-v5b";
683 status = "disabled"; 877 status = "disabled";
diff --git a/arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts b/arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts
index 1ad149ca2d2a..a41f7cac952a 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts
+++ b/arch/arm64/boot/dts/socionext/uniphier-pxs3-ref.dts
@@ -104,3 +104,11 @@
104&nand { 104&nand {
105 status = "okay"; 105 status = "okay";
106}; 106};
107
108&usb0 {
109 status = "okay";
110};
111
112&usb1 {
113 status = "okay";
114};
diff --git a/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi b/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi
index 2fab8a4dc88f..4f57c9e9d7a8 100644
--- a/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi
+++ b/arch/arm64/boot/dts/socionext/uniphier-pxs3.dtsi
@@ -406,6 +406,50 @@
406 efuse@200 { 406 efuse@200 {
407 compatible = "socionext,uniphier-efuse"; 407 compatible = "socionext,uniphier-efuse";
408 reg = <0x200 0x68>; 408 reg = <0x200 0x68>;
409 #address-cells = <1>;
410 #size-cells = <1>;
411
412 /* USB cells */
413 usb_rterm0: trim@54,4 {
414 reg = <0x54 1>;
415 bits = <4 2>;
416 };
417 usb_rterm1: trim@55,4 {
418 reg = <0x55 1>;
419 bits = <4 2>;
420 };
421 usb_rterm2: trim@58,4 {
422 reg = <0x58 1>;
423 bits = <4 2>;
424 };
425 usb_rterm3: trim@59,4 {
426 reg = <0x59 1>;
427 bits = <4 2>;
428 };
429 usb_sel_t0: trim@54,0 {
430 reg = <0x54 1>;
431 bits = <0 4>;
432 };
433 usb_sel_t1: trim@55,0 {
434 reg = <0x55 1>;
435 bits = <0 4>;
436 };
437 usb_sel_t2: trim@58,0 {
438 reg = <0x58 1>;
439 bits = <0 4>;
440 };
441 usb_sel_t3: trim@59,0 {
442 reg = <0x59 1>;
443 bits = <0 4>;
444 };
445 usb_hs_i0: trim@56,0 {
446 reg = <0x56 1>;
447 bits = <0 4>;
448 };
449 usb_hs_i2: trim@5a,0 {
450 reg = <0x5a 1>;
451 bits = <0 4>;
452 };
409 }; 453 };
410 }; 454 };
411 455
@@ -487,6 +531,202 @@
487 }; 531 };
488 }; 532 };
489 533
534 usb0: usb@65a00000 {
535 compatible = "socionext,uniphier-dwc3", "snps,dwc3";
536 status = "disabled";
537 reg = <0x65a00000 0xcd00>;
538 interrupt-names = "host", "peripheral";
539 interrupts = <0 134 4>, <0 135 4>;
540 pinctrl-names = "default";
541 pinctrl-0 = <&pinctrl_usb0>, <&pinctrl_usb2>;
542 clock-names = "ref", "bus_early", "suspend";
543 clocks = <&sys_clk 12>, <&sys_clk 12>, <&sys_clk 12>;
544 resets = <&usb0_rst 15>;
545 phys = <&usb0_hsphy0>, <&usb0_hsphy1>,
546 <&usb0_ssphy0>, <&usb0_ssphy1>;
547 dr_mode = "host";
548 };
549
550 usb-glue@65b00000 {
551 compatible = "socionext,uniphier-pxs3-dwc3-glue",
552 "simple-mfd";
553 #address-cells = <1>;
554 #size-cells = <1>;
555 ranges = <0 0x65b00000 0x400>;
556
557 usb0_rst: reset@0 {
558 compatible = "socionext,uniphier-pxs3-usb3-reset";
559 reg = <0x0 0x4>;
560 #reset-cells = <1>;
561 clock-names = "link";
562 clocks = <&sys_clk 12>;
563 reset-names = "link";
564 resets = <&sys_rst 12>;
565 };
566
567 usb0_vbus0: regulator@100 {
568 compatible = "socionext,uniphier-pxs3-usb3-regulator";
569 reg = <0x100 0x10>;
570 clock-names = "link";
571 clocks = <&sys_clk 12>;
572 reset-names = "link";
573 resets = <&sys_rst 12>;
574 };
575
576 usb0_vbus1: regulator@110 {
577 compatible = "socionext,uniphier-pxs3-usb3-regulator";
578 reg = <0x110 0x10>;
579 clock-names = "link";
580 clocks = <&sys_clk 12>;
581 reset-names = "link";
582 resets = <&sys_rst 12>;
583 };
584
585 usb0_hsphy0: hs-phy@200 {
586 compatible = "socionext,uniphier-pxs3-usb3-hsphy";
587 reg = <0x200 0x10>;
588 #phy-cells = <0>;
589 clock-names = "link", "phy";
590 clocks = <&sys_clk 12>, <&sys_clk 16>;
591 reset-names = "link", "phy";
592 resets = <&sys_rst 12>, <&sys_rst 16>;
593 vbus-supply = <&usb0_vbus0>;
594 nvmem-cell-names = "rterm", "sel_t", "hs_i";
595 nvmem-cells = <&usb_rterm0>, <&usb_sel_t0>,
596 <&usb_hs_i0>;
597 };
598
599 usb0_hsphy1: hs-phy@210 {
600 compatible = "socionext,uniphier-pxs3-usb3-hsphy";
601 reg = <0x210 0x10>;
602 #phy-cells = <0>;
603 clock-names = "link", "phy";
604 clocks = <&sys_clk 12>, <&sys_clk 16>;
605 reset-names = "link", "phy";
606 resets = <&sys_rst 12>, <&sys_rst 16>;
607 vbus-supply = <&usb0_vbus1>;
608 nvmem-cell-names = "rterm", "sel_t", "hs_i";
609 nvmem-cells = <&usb_rterm1>, <&usb_sel_t1>,
610 <&usb_hs_i0>;
611 };
612
613 usb0_ssphy0: ss-phy@300 {
614 compatible = "socionext,uniphier-pxs3-usb3-ssphy";
615 reg = <0x300 0x10>;
616 #phy-cells = <0>;
617 clock-names = "link", "phy";
618 clocks = <&sys_clk 12>, <&sys_clk 17>;
619 reset-names = "link", "phy";
620 resets = <&sys_rst 12>, <&sys_rst 17>;
621 vbus-supply = <&usb0_vbus0>;
622 };
623
624 usb0_ssphy1: ss-phy@310 {
625 compatible = "socionext,uniphier-pxs3-usb3-ssphy";
626 reg = <0x310 0x10>;
627 #phy-cells = <0>;
628 clock-names = "link", "phy";
629 clocks = <&sys_clk 12>, <&sys_clk 18>;
630 reset-names = "link", "phy";
631 resets = <&sys_rst 12>, <&sys_rst 18>;
632 vbus-supply = <&usb0_vbus1>;
633 };
634 };
635
636 usb1: usb@65c00000 {
637 compatible = "socionext,uniphier-dwc3", "snps,dwc3";
638 status = "disabled";
639 reg = <0x65c00000 0xcd00>;
640 interrupt-names = "host", "peripheral";
641 interrupts = <0 137 4>, <0 138 4>;
642 pinctrl-names = "default";
643 pinctrl-0 = <&pinctrl_usb1>, <&pinctrl_usb3>;
644 clock-names = "ref", "bus_early", "suspend";
645 clocks = <&sys_clk 13>, <&sys_clk 13>, <&sys_clk 13>;
646 resets = <&usb1_rst 15>;
647 phys = <&usb1_hsphy0>, <&usb1_hsphy1>,
648 <&usb1_ssphy0>;
649 dr_mode = "host";
650 };
651
652 usb-glue@65d00000 {
653 compatible = "socionext,uniphier-pxs3-dwc3-glue",
654 "simple-mfd";
655 #address-cells = <1>;
656 #size-cells = <1>;
657 ranges = <0 0x65d00000 0x400>;
658
659 usb1_rst: reset@0 {
660 compatible = "socionext,uniphier-pxs3-usb3-reset";
661 reg = <0x0 0x4>;
662 #reset-cells = <1>;
663 clock-names = "link";
664 clocks = <&sys_clk 13>;
665 reset-names = "link";
666 resets = <&sys_rst 13>;
667 };
668
669 usb1_vbus0: regulator@100 {
670 compatible = "socionext,uniphier-pxs3-usb3-regulator";
671 reg = <0x100 0x10>;
672 clock-names = "link";
673 clocks = <&sys_clk 13>;
674 reset-names = "link";
675 resets = <&sys_rst 13>;
676 };
677
678 usb1_vbus1: regulator@110 {
679 compatible = "socionext,uniphier-pxs3-usb3-regulator";
680 reg = <0x110 0x10>;
681 clock-names = "link";
682 clocks = <&sys_clk 13>;
683 reset-names = "link";
684 resets = <&sys_rst 13>;
685 };
686
687 usb1_hsphy0: hs-phy@200 {
688 compatible = "socionext,uniphier-pxs3-usb3-hsphy";
689 reg = <0x200 0x10>;
690 #phy-cells = <0>;
691 clock-names = "link", "phy", "phy-ext";
692 clocks = <&sys_clk 13>, <&sys_clk 20>,
693 <&sys_clk 14>;
694 reset-names = "link", "phy";
695 resets = <&sys_rst 13>, <&sys_rst 20>;
696 vbus-supply = <&usb1_vbus0>;
697 nvmem-cell-names = "rterm", "sel_t", "hs_i";
698 nvmem-cells = <&usb_rterm2>, <&usb_sel_t2>,
699 <&usb_hs_i2>;
700 };
701
702 usb1_hsphy1: hs-phy@210 {
703 compatible = "socionext,uniphier-pxs3-usb3-hsphy";
704 reg = <0x210 0x10>;
705 #phy-cells = <0>;
706 clock-names = "link", "phy", "phy-ext";
707 clocks = <&sys_clk 13>, <&sys_clk 20>,
708 <&sys_clk 14>;
709 reset-names = "link", "phy";
710 resets = <&sys_rst 13>, <&sys_rst 20>;
711 vbus-supply = <&usb1_vbus1>;
712 nvmem-cell-names = "rterm", "sel_t", "hs_i";
713 nvmem-cells = <&usb_rterm3>, <&usb_sel_t3>,
714 <&usb_hs_i2>;
715 };
716
717 usb1_ssphy0: ss-phy@300 {
718 compatible = "socionext,uniphier-pxs3-usb3-ssphy";
719 reg = <0x300 0x10>;
720 #phy-cells = <0>;
721 clock-names = "link", "phy", "phy-ext";
722 clocks = <&sys_clk 13>, <&sys_clk 21>,
723 <&sys_clk 14>;
724 reset-names = "link", "phy";
725 resets = <&sys_rst 13>, <&sys_rst 21>;
726 vbus-supply = <&usb1_vbus0>;
727 };
728 };
729
490 nand: nand@68000000 { 730 nand: nand@68000000 {
491 compatible = "socionext,uniphier-denali-nand-v5b"; 731 compatible = "socionext,uniphier-denali-nand-v5b";
492 status = "disabled"; 732 status = "disabled";