Skip to content

Commit d6f83c1

Browse files
committed
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>
1 parent b1accd1 commit d6f83c1

File tree

1 file changed

+341
-0
lines changed

1 file changed

+341
-0
lines changed

Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt

Lines changed: 341 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ Required properties:
3535
- compatible: Must be:
3636
- Tegra124: "nvidia,tegra124-xusb-padctl"
3737
- Tegra132: "nvidia,tegra132-xusb-padctl", "nvidia,tegra124-xusb-padctl"
38+
- Tegra210: "nvidia,tegra210-xusb-padctl"
3839
- reg: Physical base address and length of the controller's registers.
3940
- resets: Must contain an entry for each entry in reset-names.
4041
- 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".
5556
For Tegra124 and Tegra132, the following pads exist: usb2, ulpi, hsic, pcie
5657
and sata. No extra resources are required for operation of these pads.
5758

59+
For Tegra210, the following pads exist: usb2, hsic, pcie and sata. Below is
60+
a description of the properties of each pad.
61+
62+
UTMI pad:
63+
---------
64+
65+
Required 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+
70+
HSIC pad:
71+
---------
72+
73+
Required 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+
78+
PCIe pad:
79+
---------
80+
81+
Required 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+
89+
SATA pad:
90+
---------
91+
92+
Required 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+
5897

5998
PHY nodes:
6099
==========
@@ -84,6 +123,16 @@ For Tegra124 and Tegra132, the list of valid PHY nodes is given below:
84123
- sata: sata-0
85124
- functions: "usb3-ss", "sata"
86125

126+
For 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+
87136

88137
Port nodes:
89138
===========
@@ -144,6 +193,7 @@ Required properties:
144193
to map this super-speed USB port to. The range of valid port numbers varies
145194
with the SoC generation:
146195
- 0-2: for Tegra124 and Tegra132
196+
- 0-3: for Tegra210
147197

148198
Optional properties:
149199
- nvidia,internal: A boolean property whose presence determines that a port
@@ -157,6 +207,11 @@ ports:
157207
- 2x HSIC: hsic-0, hsic-1
158208
- 2x super-speed USB: usb3-0, usb3-1
159209

210+
For 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+
160215

161216
Examples:
162217
=========
@@ -390,3 +445,289 @@ Board file:
390445
};
391446
};
392447
};
448+
449+
Tegra210:
450+
---------
451+
452+
SoC 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+
613+
Board 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+
};

0 commit comments

Comments
 (0)