aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Reding <treding@nvidia.com>2015-11-04 11:35:01 -0500
committerThierry Reding <treding@nvidia.com>2016-04-29 10:44:47 -0400
commitd6f83c1b1dcac39729f48fe1c2d426b9c135df41 (patch)
tree0c8a62f0a8439fa396449f565d0ceedc46d76585
parentb1accd107b7a5db06d2c5a303cb5d419f788392d (diff)
dt-bindings: phy: tegra-xusb-padctl: Add Tegra210 support
Extend the binding to cover the set of feature found in Tegra210. Acked-by: Rob Herring <robh@kernel.org> Acked-by: Stephen Warren <swarren@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
-rw-r--r--Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt341
1 files changed, 341 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt b/Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt
index 6a5bb4311cfe..0bf1ae243552 100644
--- a/Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt
+++ b/Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt
@@ -35,6 +35,7 @@ Required properties:
35- compatible: Must be: 35- compatible: Must be:
36 - Tegra124: "nvidia,tegra124-xusb-padctl" 36 - Tegra124: "nvidia,tegra124-xusb-padctl"
37 - Tegra132: "nvidia,tegra132-xusb-padctl", "nvidia,tegra124-xusb-padctl" 37 - Tegra132: "nvidia,tegra132-xusb-padctl", "nvidia,tegra124-xusb-padctl"
38 - Tegra210: "nvidia,tegra210-xusb-padctl"
38- reg: Physical base address and length of the controller's registers. 39- reg: Physical base address and length of the controller's registers.
39- resets: Must contain an entry for each entry in reset-names. 40- resets: Must contain an entry for each entry in reset-names.
40- reset-names: Must include the following entries: 41- reset-names: Must include the following entries:
@@ -55,6 +56,44 @@ the pad and any of its lanes, this property must be set to "okay".
55For Tegra124 and Tegra132, the following pads exist: usb2, ulpi, hsic, pcie 56For Tegra124 and Tegra132, the following pads exist: usb2, ulpi, hsic, pcie
56and sata. No extra resources are required for operation of these pads. 57and sata. No extra resources are required for operation of these pads.
57 58
59For Tegra210, the following pads exist: usb2, hsic, pcie and sata. Below is
60a description of the properties of each pad.
61
62UTMI pad:
63---------
64
65Required properties:
66- clocks: Must contain an entry for each entry in clock-names.
67- clock-names: Must contain the following entries:
68 - "trk": phandle and specifier referring to the USB2 tracking clock
69
70HSIC pad:
71---------
72
73Required properties:
74- clocks: Must contain an entry for each entry in clock-names.
75- clock-names: Must contain the following entries:
76 - "trk": phandle and specifier referring to the HSIC tracking clock
77
78PCIe pad:
79---------
80
81Required properties:
82- clocks: Must contain an entry for each entry in clock-names.
83- clock-names: Must contain the following entries:
84 - "pll": phandle and specifier referring to the PLLE
85- resets: Must contain an entry for each entry in reset-names.
86- reset-names: Must contain the following entries:
87 - "phy": reset for the PCIe UPHY block
88
89SATA pad:
90---------
91
92Required properties:
93- resets: Must contain an entry for each entry in reset-names.
94- reset-names: Must contain the following entries:
95 - "phy": reset for the SATA UPHY block
96
58 97
59PHY nodes: 98PHY nodes:
60========== 99==========
@@ -84,6 +123,16 @@ For Tegra124 and Tegra132, the list of valid PHY nodes is given below:
84- sata: sata-0 123- sata: sata-0
85 - functions: "usb3-ss", "sata" 124 - functions: "usb3-ss", "sata"
86 125
126For Tegra210, the list of valid PHY nodes is given below:
127- utmi: utmi-0, utmi-1, utmi-2, utmi-3
128 - functions: "snps", "xusb", "uart"
129- hsic: hsic-0, hsic-1
130 - functions: "snps", "xusb"
131- pcie: pcie-0, pcie-1, pcie-2, pcie-3, pcie-4, pcie-5, pcie-6
132 - functions: "pcie-x1", "usb3-ss", "pcie-x4"
133- sata: sata-0
134 - functions: "usb3-ss", "sata"
135
87 136
88Port nodes: 137Port nodes:
89=========== 138===========
@@ -144,6 +193,7 @@ Required properties:
144 to map this super-speed USB port to. The range of valid port numbers varies 193 to map this super-speed USB port to. The range of valid port numbers varies
145 with the SoC generation: 194 with the SoC generation:
146 - 0-2: for Tegra124 and Tegra132 195 - 0-2: for Tegra124 and Tegra132
196 - 0-3: for Tegra210
147 197
148Optional properties: 198Optional properties:
149- nvidia,internal: A boolean property whose presence determines that a port 199- nvidia,internal: A boolean property whose presence determines that a port
@@ -157,6 +207,11 @@ ports:
157- 2x HSIC: hsic-0, hsic-1 207- 2x HSIC: hsic-0, hsic-1
158- 2x super-speed USB: usb3-0, usb3-1 208- 2x super-speed USB: usb3-0, usb3-1
159 209
210For Tegra210, the XUSB pad controller exposes the following ports:
211- 4x USB2: usb2-0, usb2-1, usb2-2, usb2-3
212- 2x HSIC: hsic-0, hsic-1
213- 4x super-speed USB: usb3-0, usb3-1, usb3-2, usb3-3
214
160 215
161Examples: 216Examples:
162========= 217=========
@@ -390,3 +445,289 @@ Board file:
390 }; 445 };
391 }; 446 };
392 }; 447 };
448
449Tegra210:
450---------
451
452SoC include:
453
454 padctl@7009f000 {
455 compatible = "nvidia,tegra210-xusb-padctl";
456 reg = <0x0 0x7009f000 0x0 0x1000>;
457 resets = <&tegra_car 142>;
458 reset-names = "padctl";
459
460 status = "disabled";
461
462 pads {
463 usb2 {
464 clocks = <&tegra_car TEGRA210_CLK_USB2_TRK>;
465 clock-names = "trk";
466 status = "disabled";
467
468 lanes {
469 usb2-0 {
470 status = "disabled";
471 #phy-cells = <0>;
472 };
473
474 usb2-1 {
475 status = "disabled";
476 #phy-cells = <0>;
477 };
478
479 usb2-2 {
480 status = "disabled";
481 #phy-cells = <0>;
482 };
483
484 usb2-3 {
485 status = "disabled";
486 #phy-cells = <0>;
487 };
488 };
489 };
490
491 hsic {
492 clocks = <&tegra_car TEGRA210_CLK_HSIC_TRK>;
493 clock-names = "trk";
494 status = "disabled";
495
496 lanes {
497 hsic-0 {
498 status = "disabled";
499 #phy-cells = <0>;
500 };
501
502 hsic-1 {
503 status = "disabled";
504 #phy-cells = <0>;
505 };
506 };
507 };
508
509 pcie {
510 clocks = <&tegra_car TEGRA210_CLK_PLL_E>;
511 clock-names = "pll";
512 resets = <&tegra_car 205>;
513 reset-names = "phy";
514 status = "disabled";
515
516 lanes {
517 pcie-0 {
518 status = "disabled";
519 #phy-cells = <0>;
520 };
521
522 pcie-1 {
523 status = "disabled";
524 #phy-cells = <0>;
525 };
526
527 pcie-2 {
528 status = "disabled";
529 #phy-cells = <0>;
530 };
531
532 pcie-3 {
533 status = "disabled";
534 #phy-cells = <0>;
535 };
536
537 pcie-4 {
538 status = "disabled";
539 #phy-cells = <0>;
540 };
541
542 pcie-5 {
543 status = "disabled";
544 #phy-cells = <0>;
545 };
546
547 pcie-6 {
548 status = "disabled";
549 #phy-cells = <0>;
550 };
551 };
552 };
553
554 sata {
555 clocks = <&tegra_car TEGRA210_CLK_PLL_E>;
556 clock-names = "pll";
557 resets = <&tegra_car 204>;
558 reset-names = "phy";
559 status = "disabled";
560
561 lanes {
562 sata-0 {
563 status = "disabled";
564 #phy-cells = <0>;
565 };
566 };
567 };
568 };
569
570 ports {
571 usb2-0 {
572 status = "disabled";
573 };
574
575 usb2-1 {
576 status = "disabled";
577 };
578
579 usb2-2 {
580 status = "disabled";
581 };
582
583 usb2-3 {
584 status = "disabled";
585 };
586
587 hsic-0 {
588 status = "disabled";
589 };
590
591 hsic-1 {
592 status = "disabled";
593 };
594
595 usb3-0 {
596 status = "disabled";
597 };
598
599 usb3-1 {
600 status = "disabled";
601 };
602
603 usb3-2 {
604 status = "disabled";
605 };
606
607 usb3-3 {
608 status = "disabled";
609 };
610 };
611 };
612
613Board file:
614
615 padctl@7009f000 {
616 status = "okay";
617
618 pads {
619 usb2 {
620 status = "okay";
621
622 lanes {
623 usb2-0 {
624 nvidia,function = "xusb";
625 status = "okay";
626 };
627
628 usb2-1 {
629 nvidia,function = "xusb";
630 status = "okay";
631 };
632
633 usb2-2 {
634 nvidia,function = "xusb";
635 status = "okay";
636 };
637
638 usb2-3 {
639 nvidia,function = "xusb";
640 status = "okay";
641 };
642 };
643 };
644
645 pcie {
646 status = "okay";
647
648 lanes {
649 pcie-0 {
650 nvidia,function = "pcie-x1";
651 status = "okay";
652 };
653
654 pcie-1 {
655 nvidia,function = "pcie-x4";
656 status = "okay";
657 };
658
659 pcie-2 {
660 nvidia,function = "pcie-x4";
661 status = "okay";
662 };
663
664 pcie-3 {
665 nvidia,function = "pcie-x4";
666 status = "okay";
667 };
668
669 pcie-4 {
670 nvidia,function = "pcie-x4";
671 status = "okay";
672 };
673
674 pcie-5 {
675 nvidia,function = "usb3-ss";
676 status = "okay";
677 };
678
679 pcie-6 {
680 nvidia,function = "usb3-ss";
681 status = "okay";
682 };
683 };
684 };
685
686 sata {
687 status = "okay";
688
689 lanes {
690 sata-0 {
691 nvidia,function = "sata";
692 status = "okay";
693 };
694 };
695 };
696 };
697
698 ports {
699 usb2-0 {
700 status = "okay";
701 mode = "otg";
702 };
703
704 usb2-1 {
705 status = "okay";
706 vbus-supply = <&vdd_5v0_rtl>;
707 mode = "host";
708 };
709
710 usb2-2 {
711 status = "okay";
712 vbus-supply = <&vdd_usb_vbus>;
713 mode = "host";
714 };
715
716 usb2-3 {
717 status = "okay";
718 mode = "host";
719 };
720
721 usb3-0 {
722 status = "okay";
723 nvidia,lanes = "pcie-6";
724 nvidia,port = <1>;
725 };
726
727 usb3-1 {
728 status = "okay";
729 nvidia,lanes = "pcie-5";
730 nvidia,port = <2>;
731 };
732 };
733 };