Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+341
+341
Documentation/devicetree/bindings/phy/nvidia,tegra124-xusb-padctl.txt
··· 35 35 - compatible: Must be: 36 36 - Tegra124: "nvidia,tegra124-xusb-padctl" 37 37 - Tegra132: "nvidia,tegra132-xusb-padctl", "nvidia,tegra124-xusb-padctl" 38 + - Tegra210: "nvidia,tegra210-xusb-padctl" 38 39 - reg: Physical base address and length of the controller's registers. 39 40 - resets: Must contain an entry for each entry in reset-names. 40 41 - reset-names: Must include the following entries: ··· 55 54 56 55 For Tegra124 and Tegra132, the following pads exist: usb2, ulpi, hsic, pcie 57 56 and sata. No extra resources are required for operation of these pads. 57 + 58 + For Tegra210, the following pads exist: usb2, hsic, pcie and sata. Below is 59 + a description of the properties of each pad. 60 + 61 + UTMI pad: 62 + --------- 63 + 64 + Required properties: 65 + - clocks: Must contain an entry for each entry in clock-names. 66 + - clock-names: Must contain the following entries: 67 + - "trk": phandle and specifier referring to the USB2 tracking clock 68 + 69 + HSIC pad: 70 + --------- 71 + 72 + Required properties: 73 + - clocks: Must contain an entry for each entry in clock-names. 74 + - clock-names: Must contain the following entries: 75 + - "trk": phandle and specifier referring to the HSIC tracking clock 76 + 77 + PCIe pad: 78 + --------- 79 + 80 + Required properties: 81 + - clocks: Must contain an entry for each entry in clock-names. 82 + - clock-names: Must contain the following entries: 83 + - "pll": phandle and specifier referring to the PLLE 84 + - resets: Must contain an entry for each entry in reset-names. 85 + - reset-names: Must contain the following entries: 86 + - "phy": reset for the PCIe UPHY block 87 + 88 + SATA pad: 89 + --------- 90 + 91 + Required properties: 92 + - resets: Must contain an entry for each entry in reset-names. 93 + - reset-names: Must contain the following entries: 94 + - "phy": reset for the SATA UPHY block 58 95 59 96 60 97 PHY nodes: ··· 120 81 - functions: "snps", "xusb" 121 82 - pcie: pcie-0, pcie-1, pcie-2, pcie-3, pcie-4 122 83 - functions: "pcie", "usb3-ss" 84 + - sata: sata-0 85 + - functions: "usb3-ss", "sata" 86 + 87 + For Tegra210, the list of valid PHY nodes is given below: 88 + - utmi: utmi-0, utmi-1, utmi-2, utmi-3 89 + - functions: "snps", "xusb", "uart" 90 + - hsic: hsic-0, hsic-1 91 + - functions: "snps", "xusb" 92 + - pcie: pcie-0, pcie-1, pcie-2, pcie-3, pcie-4, pcie-5, pcie-6 93 + - functions: "pcie-x1", "usb3-ss", "pcie-x4" 123 94 - sata: sata-0 124 95 - functions: "usb3-ss", "sata" 125 96 ··· 193 144 to map this super-speed USB port to. The range of valid port numbers varies 194 145 with the SoC generation: 195 146 - 0-2: for Tegra124 and Tegra132 147 + - 0-3: for Tegra210 196 148 197 149 Optional properties: 198 150 - nvidia,internal: A boolean property whose presence determines that a port ··· 206 156 - 1x ULPI: ulpi-0 207 157 - 2x HSIC: hsic-0, hsic-1 208 158 - 2x super-speed USB: usb3-0, usb3-1 159 + 160 + For Tegra210, the XUSB pad controller exposes the following ports: 161 + - 4x USB2: usb2-0, usb2-1, usb2-2, usb2-3 162 + - 2x HSIC: hsic-0, hsic-1 163 + - 4x super-speed USB: usb3-0, usb3-1, usb3-2, usb3-3 209 164 210 165 211 166 Examples: ··· 442 387 usb3-0 { 443 388 nvidia,port = <2>; 444 389 status = "okay"; 390 + }; 391 + }; 392 + }; 393 + 394 + Tegra210: 395 + --------- 396 + 397 + SoC include: 398 + 399 + padctl@7009f000 { 400 + compatible = "nvidia,tegra210-xusb-padctl"; 401 + reg = <0x0 0x7009f000 0x0 0x1000>; 402 + resets = <&tegra_car 142>; 403 + reset-names = "padctl"; 404 + 405 + status = "disabled"; 406 + 407 + pads { 408 + usb2 { 409 + clocks = <&tegra_car TEGRA210_CLK_USB2_TRK>; 410 + clock-names = "trk"; 411 + status = "disabled"; 412 + 413 + lanes { 414 + usb2-0 { 415 + status = "disabled"; 416 + #phy-cells = <0>; 417 + }; 418 + 419 + usb2-1 { 420 + status = "disabled"; 421 + #phy-cells = <0>; 422 + }; 423 + 424 + usb2-2 { 425 + status = "disabled"; 426 + #phy-cells = <0>; 427 + }; 428 + 429 + usb2-3 { 430 + status = "disabled"; 431 + #phy-cells = <0>; 432 + }; 433 + }; 434 + }; 435 + 436 + hsic { 437 + clocks = <&tegra_car TEGRA210_CLK_HSIC_TRK>; 438 + clock-names = "trk"; 439 + status = "disabled"; 440 + 441 + lanes { 442 + hsic-0 { 443 + status = "disabled"; 444 + #phy-cells = <0>; 445 + }; 446 + 447 + hsic-1 { 448 + status = "disabled"; 449 + #phy-cells = <0>; 450 + }; 451 + }; 452 + }; 453 + 454 + pcie { 455 + clocks = <&tegra_car TEGRA210_CLK_PLL_E>; 456 + clock-names = "pll"; 457 + resets = <&tegra_car 205>; 458 + reset-names = "phy"; 459 + status = "disabled"; 460 + 461 + lanes { 462 + pcie-0 { 463 + status = "disabled"; 464 + #phy-cells = <0>; 465 + }; 466 + 467 + pcie-1 { 468 + status = "disabled"; 469 + #phy-cells = <0>; 470 + }; 471 + 472 + pcie-2 { 473 + status = "disabled"; 474 + #phy-cells = <0>; 475 + }; 476 + 477 + pcie-3 { 478 + status = "disabled"; 479 + #phy-cells = <0>; 480 + }; 481 + 482 + pcie-4 { 483 + status = "disabled"; 484 + #phy-cells = <0>; 485 + }; 486 + 487 + pcie-5 { 488 + status = "disabled"; 489 + #phy-cells = <0>; 490 + }; 491 + 492 + pcie-6 { 493 + status = "disabled"; 494 + #phy-cells = <0>; 495 + }; 496 + }; 497 + }; 498 + 499 + sata { 500 + clocks = <&tegra_car TEGRA210_CLK_PLL_E>; 501 + clock-names = "pll"; 502 + resets = <&tegra_car 204>; 503 + reset-names = "phy"; 504 + status = "disabled"; 505 + 506 + lanes { 507 + sata-0 { 508 + status = "disabled"; 509 + #phy-cells = <0>; 510 + }; 511 + }; 512 + }; 513 + }; 514 + 515 + ports { 516 + usb2-0 { 517 + status = "disabled"; 518 + }; 519 + 520 + usb2-1 { 521 + status = "disabled"; 522 + }; 523 + 524 + usb2-2 { 525 + status = "disabled"; 526 + }; 527 + 528 + usb2-3 { 529 + status = "disabled"; 530 + }; 531 + 532 + hsic-0 { 533 + status = "disabled"; 534 + }; 535 + 536 + hsic-1 { 537 + status = "disabled"; 538 + }; 539 + 540 + usb3-0 { 541 + status = "disabled"; 542 + }; 543 + 544 + usb3-1 { 545 + status = "disabled"; 546 + }; 547 + 548 + usb3-2 { 549 + status = "disabled"; 550 + }; 551 + 552 + usb3-3 { 553 + status = "disabled"; 554 + }; 555 + }; 556 + }; 557 + 558 + Board file: 559 + 560 + padctl@7009f000 { 561 + status = "okay"; 562 + 563 + pads { 564 + usb2 { 565 + status = "okay"; 566 + 567 + lanes { 568 + usb2-0 { 569 + nvidia,function = "xusb"; 570 + status = "okay"; 571 + }; 572 + 573 + usb2-1 { 574 + nvidia,function = "xusb"; 575 + status = "okay"; 576 + }; 577 + 578 + usb2-2 { 579 + nvidia,function = "xusb"; 580 + status = "okay"; 581 + }; 582 + 583 + usb2-3 { 584 + nvidia,function = "xusb"; 585 + status = "okay"; 586 + }; 587 + }; 588 + }; 589 + 590 + pcie { 591 + status = "okay"; 592 + 593 + lanes { 594 + pcie-0 { 595 + nvidia,function = "pcie-x1"; 596 + status = "okay"; 597 + }; 598 + 599 + pcie-1 { 600 + nvidia,function = "pcie-x4"; 601 + status = "okay"; 602 + }; 603 + 604 + pcie-2 { 605 + nvidia,function = "pcie-x4"; 606 + status = "okay"; 607 + }; 608 + 609 + pcie-3 { 610 + nvidia,function = "pcie-x4"; 611 + status = "okay"; 612 + }; 613 + 614 + pcie-4 { 615 + nvidia,function = "pcie-x4"; 616 + status = "okay"; 617 + }; 618 + 619 + pcie-5 { 620 + nvidia,function = "usb3-ss"; 621 + status = "okay"; 622 + }; 623 + 624 + pcie-6 { 625 + nvidia,function = "usb3-ss"; 626 + status = "okay"; 627 + }; 628 + }; 629 + }; 630 + 631 + sata { 632 + status = "okay"; 633 + 634 + lanes { 635 + sata-0 { 636 + nvidia,function = "sata"; 637 + status = "okay"; 638 + }; 639 + }; 640 + }; 641 + }; 642 + 643 + ports { 644 + usb2-0 { 645 + status = "okay"; 646 + mode = "otg"; 647 + }; 648 + 649 + usb2-1 { 650 + status = "okay"; 651 + vbus-supply = <&vdd_5v0_rtl>; 652 + mode = "host"; 653 + }; 654 + 655 + usb2-2 { 656 + status = "okay"; 657 + vbus-supply = <&vdd_usb_vbus>; 658 + mode = "host"; 659 + }; 660 + 661 + usb2-3 { 662 + status = "okay"; 663 + mode = "host"; 664 + }; 665 + 666 + usb3-0 { 667 + status = "okay"; 668 + nvidia,lanes = "pcie-6"; 669 + nvidia,port = <1>; 670 + }; 671 + 672 + usb3-1 { 673 + status = "okay"; 674 + nvidia,lanes = "pcie-5"; 675 + nvidia,port = <2>; 445 676 }; 446 677 }; 447 678 };