| .. | .. |
|---|
| 4 | 4 | #include <dt-bindings/memory/tegra20-mc.h> |
|---|
| 5 | 5 | #include <dt-bindings/pinctrl/pinctrl-tegra.h> |
|---|
| 6 | 6 | #include <dt-bindings/interrupt-controller/arm-gic.h> |
|---|
| 7 | +#include <dt-bindings/soc/tegra-pmc.h> |
|---|
| 7 | 8 | |
|---|
| 8 | 9 | / { |
|---|
| 9 | 10 | compatible = "nvidia,tegra20"; |
|---|
| .. | .. |
|---|
| 16 | 17 | reg = <0 0>; |
|---|
| 17 | 18 | }; |
|---|
| 18 | 19 | |
|---|
| 19 | | - iram@40000000 { |
|---|
| 20 | + sram@40000000 { |
|---|
| 20 | 21 | compatible = "mmio-sram"; |
|---|
| 21 | 22 | reg = <0x40000000 0x40000>; |
|---|
| 22 | 23 | #address-cells = <1>; |
|---|
| 23 | 24 | #size-cells = <1>; |
|---|
| 24 | 25 | ranges = <0 0x40000000 0x40000>; |
|---|
| 25 | 26 | |
|---|
| 26 | | - vde_pool: vde@400 { |
|---|
| 27 | + vde_pool: sram@400 { |
|---|
| 27 | 28 | reg = <0x400 0x3fc00>; |
|---|
| 28 | 29 | pool; |
|---|
| 29 | 30 | }; |
|---|
| 30 | 31 | }; |
|---|
| 31 | 32 | |
|---|
| 32 | 33 | host1x@50000000 { |
|---|
| 33 | | - compatible = "nvidia,tegra20-host1x", "simple-bus"; |
|---|
| 34 | + compatible = "nvidia,tegra20-host1x"; |
|---|
| 34 | 35 | reg = <0x50000000 0x00024000>; |
|---|
| 35 | 36 | interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */ |
|---|
| 36 | 37 | <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* general */ |
|---|
| 38 | + interrupt-names = "syncpt", "host1x"; |
|---|
| 37 | 39 | clocks = <&tegra_car TEGRA20_CLK_HOST1X>; |
|---|
| 40 | + clock-names = "host1x"; |
|---|
| 38 | 41 | resets = <&tegra_car 28>; |
|---|
| 39 | 42 | reset-names = "host1x"; |
|---|
| 40 | 43 | |
|---|
| .. | .. |
|---|
| 153 | 156 | dsi@54300000 { |
|---|
| 154 | 157 | compatible = "nvidia,tegra20-dsi"; |
|---|
| 155 | 158 | reg = <0x54300000 0x00040000>; |
|---|
| 156 | | - clocks = <&tegra_car TEGRA20_CLK_DSI>; |
|---|
| 159 | + clocks = <&tegra_car TEGRA20_CLK_DSI>, |
|---|
| 160 | + <&tegra_car TEGRA20_CLK_PLL_D_OUT0>; |
|---|
| 161 | + clock-names = "dsi", "parent"; |
|---|
| 157 | 162 | resets = <&tegra_car 48>; |
|---|
| 158 | 163 | reset-names = "dsi"; |
|---|
| 159 | 164 | status = "disabled"; |
|---|
| .. | .. |
|---|
| 171 | 176 | |
|---|
| 172 | 177 | intc: interrupt-controller@50041000 { |
|---|
| 173 | 178 | compatible = "arm,cortex-a9-gic"; |
|---|
| 174 | | - reg = <0x50041000 0x1000 |
|---|
| 175 | | - 0x50040100 0x0100>; |
|---|
| 179 | + reg = <0x50041000 0x1000>, |
|---|
| 180 | + <0x50040100 0x0100>; |
|---|
| 176 | 181 | interrupt-controller; |
|---|
| 177 | 182 | #interrupt-cells = <3>; |
|---|
| 178 | 183 | interrupt-parent = <&intc>; |
|---|
| .. | .. |
|---|
| 271 | 276 | |
|---|
| 272 | 277 | vde@6001a000 { |
|---|
| 273 | 278 | compatible = "nvidia,tegra20-vde"; |
|---|
| 274 | | - reg = <0x6001a000 0x1000 /* Syntax Engine */ |
|---|
| 275 | | - 0x6001b000 0x1000 /* Video Bitstream Engine */ |
|---|
| 276 | | - 0x6001c000 0x100 /* Macroblock Engine */ |
|---|
| 277 | | - 0x6001c200 0x100 /* Post-processing Engine */ |
|---|
| 278 | | - 0x6001c400 0x100 /* Motion Compensation Engine */ |
|---|
| 279 | | - 0x6001c600 0x100 /* Transform Engine */ |
|---|
| 280 | | - 0x6001c800 0x100 /* Pixel prediction block */ |
|---|
| 281 | | - 0x6001ca00 0x100 /* Video DMA */ |
|---|
| 282 | | - 0x6001d800 0x300>; /* Video frame controls */ |
|---|
| 279 | + reg = <0x6001a000 0x1000>, /* Syntax Engine */ |
|---|
| 280 | + <0x6001b000 0x1000>, /* Video Bitstream Engine */ |
|---|
| 281 | + <0x6001c000 0x100>, /* Macroblock Engine */ |
|---|
| 282 | + <0x6001c200 0x100>, /* Post-processing Engine */ |
|---|
| 283 | + <0x6001c400 0x100>, /* Motion Compensation Engine */ |
|---|
| 284 | + <0x6001c600 0x100>, /* Transform Engine */ |
|---|
| 285 | + <0x6001c800 0x100>, /* Pixel prediction block */ |
|---|
| 286 | + <0x6001ca00 0x100>, /* Video DMA */ |
|---|
| 287 | + <0x6001d800 0x300>; /* Video frame controls */ |
|---|
| 283 | 288 | reg-names = "sxe", "bsev", "mbe", "ppe", "mce", |
|---|
| 284 | 289 | "tfe", "ppb", "vdma", "frameid"; |
|---|
| 285 | 290 | iram = <&vde_pool>; /* IRAM region */ |
|---|
| .. | .. |
|---|
| 294 | 299 | |
|---|
| 295 | 300 | apbmisc@70000800 { |
|---|
| 296 | 301 | compatible = "nvidia,tegra20-apbmisc"; |
|---|
| 297 | | - reg = <0x70000800 0x64 /* Chip revision */ |
|---|
| 298 | | - 0x70000008 0x04>; /* Strapping options */ |
|---|
| 302 | + reg = <0x70000800 0x64>, /* Chip revision */ |
|---|
| 303 | + <0x70000008 0x04>; /* Strapping options */ |
|---|
| 299 | 304 | }; |
|---|
| 300 | 305 | |
|---|
| 301 | 306 | pinmux: pinmux@70000014 { |
|---|
| 302 | 307 | compatible = "nvidia,tegra20-pinmux"; |
|---|
| 303 | | - reg = <0x70000014 0x10 /* Tri-state registers */ |
|---|
| 304 | | - 0x70000080 0x20 /* Mux registers */ |
|---|
| 305 | | - 0x700000a0 0x14 /* Pull-up/down registers */ |
|---|
| 306 | | - 0x70000868 0xa8>; /* Pad control registers */ |
|---|
| 308 | + reg = <0x70000014 0x10>, /* Tri-state registers */ |
|---|
| 309 | + <0x70000080 0x20>, /* Mux registers */ |
|---|
| 310 | + <0x700000a0 0x14>, /* Pull-up/down registers */ |
|---|
| 311 | + <0x70000868 0xa8>; /* Pad control registers */ |
|---|
| 307 | 312 | }; |
|---|
| 308 | 313 | |
|---|
| 309 | 314 | das@70000c00 { |
|---|
| .. | .. |
|---|
| 608 | 613 | status = "disabled"; |
|---|
| 609 | 614 | }; |
|---|
| 610 | 615 | |
|---|
| 611 | | - pmc@7000e400 { |
|---|
| 616 | + tegra_pmc: pmc@7000e400 { |
|---|
| 612 | 617 | compatible = "nvidia,tegra20-pmc"; |
|---|
| 613 | 618 | reg = <0x7000e400 0x400>; |
|---|
| 614 | 619 | clocks = <&tegra_car TEGRA20_CLK_PCLK>, <&clk32k_in>; |
|---|
| 615 | 620 | clock-names = "pclk", "clk32k_in"; |
|---|
| 621 | + #clock-cells = <1>; |
|---|
| 616 | 622 | }; |
|---|
| 617 | 623 | |
|---|
| 618 | 624 | mc: memory-controller@7000f000 { |
|---|
| 619 | | - compatible = "nvidia,tegra20-mc"; |
|---|
| 620 | | - reg = <0x7000f000 0x024 |
|---|
| 621 | | - 0x7000f03c 0x3c4>; |
|---|
| 625 | + compatible = "nvidia,tegra20-mc-gart"; |
|---|
| 626 | + reg = <0x7000f000 0x00000400>, /* controller registers */ |
|---|
| 627 | + <0x58000000 0x02000000>; /* GART aperture */ |
|---|
| 628 | + clocks = <&tegra_car TEGRA20_CLK_MC>; |
|---|
| 629 | + clock-names = "mc"; |
|---|
| 622 | 630 | interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 623 | 631 | #reset-cells = <1>; |
|---|
| 624 | | - }; |
|---|
| 625 | | - |
|---|
| 626 | | - iommu@7000f024 { |
|---|
| 627 | | - compatible = "nvidia,tegra20-gart"; |
|---|
| 628 | | - reg = <0x7000f024 0x00000018 /* controller registers */ |
|---|
| 629 | | - 0x58000000 0x02000000>; /* GART aperture */ |
|---|
| 632 | + #iommu-cells = <0>; |
|---|
| 630 | 633 | }; |
|---|
| 631 | 634 | |
|---|
| 632 | 635 | memory-controller@7000f400 { |
|---|
| 633 | 636 | compatible = "nvidia,tegra20-emc"; |
|---|
| 634 | 637 | reg = <0x7000f400 0x200>; |
|---|
| 638 | + interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 639 | + clocks = <&tegra_car TEGRA20_CLK_EMC>; |
|---|
| 635 | 640 | #address-cells = <1>; |
|---|
| 636 | 641 | #size-cells = <0>; |
|---|
| 637 | 642 | }; |
|---|
| .. | .. |
|---|
| 648 | 653 | pcie@80003000 { |
|---|
| 649 | 654 | compatible = "nvidia,tegra20-pcie"; |
|---|
| 650 | 655 | device_type = "pci"; |
|---|
| 651 | | - reg = <0x80003000 0x00000800 /* PADS registers */ |
|---|
| 652 | | - 0x80003800 0x00000200 /* AFI registers */ |
|---|
| 653 | | - 0x90000000 0x10000000>; /* configuration space */ |
|---|
| 656 | + reg = <0x80003000 0x00000800>, /* PADS registers */ |
|---|
| 657 | + <0x80003800 0x00000200>, /* AFI registers */ |
|---|
| 658 | + <0x90000000 0x10000000>; /* configuration space */ |
|---|
| 654 | 659 | reg-names = "pads", "afi", "cs"; |
|---|
| 655 | | - interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH /* controller interrupt */ |
|---|
| 656 | | - GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */ |
|---|
| 660 | + interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */ |
|---|
| 661 | + <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */ |
|---|
| 657 | 662 | interrupt-names = "intr", "msi"; |
|---|
| 658 | 663 | |
|---|
| 659 | 664 | #interrupt-cells = <1>; |
|---|
| .. | .. |
|---|
| 664 | 669 | #address-cells = <3>; |
|---|
| 665 | 670 | #size-cells = <2>; |
|---|
| 666 | 671 | |
|---|
| 667 | | - ranges = <0x82000000 0 0x80000000 0x80000000 0 0x00001000 /* port 0 registers */ |
|---|
| 668 | | - 0x82000000 0 0x80001000 0x80001000 0 0x00001000 /* port 1 registers */ |
|---|
| 669 | | - 0x81000000 0 0 0x82000000 0 0x00010000 /* downstream I/O */ |
|---|
| 670 | | - 0x82000000 0 0xa0000000 0xa0000000 0 0x08000000 /* non-prefetchable memory */ |
|---|
| 671 | | - 0xc2000000 0 0xa8000000 0xa8000000 0 0x18000000>; /* prefetchable memory */ |
|---|
| 672 | + ranges = <0x02000000 0 0x80000000 0x80000000 0 0x00001000>, /* port 0 registers */ |
|---|
| 673 | + <0x02000000 0 0x80001000 0x80001000 0 0x00001000>, /* port 1 registers */ |
|---|
| 674 | + <0x01000000 0 0 0x82000000 0 0x00010000>, /* downstream I/O */ |
|---|
| 675 | + <0x02000000 0 0xa0000000 0xa0000000 0 0x08000000>, /* non-prefetchable memory */ |
|---|
| 676 | + <0x42000000 0 0xa8000000 0xa8000000 0 0x18000000>; /* prefetchable memory */ |
|---|
| 672 | 677 | |
|---|
| 673 | 678 | clocks = <&tegra_car TEGRA20_CLK_PEX>, |
|---|
| 674 | 679 | <&tegra_car TEGRA20_CLK_AFI>, |
|---|
| .. | .. |
|---|
| 725 | 730 | |
|---|
| 726 | 731 | phy1: usb-phy@c5000000 { |
|---|
| 727 | 732 | compatible = "nvidia,tegra20-usb-phy"; |
|---|
| 728 | | - reg = <0xc5000000 0x4000 0xc5000000 0x4000>; |
|---|
| 733 | + reg = <0xc5000000 0x4000>, |
|---|
| 734 | + <0xc5000000 0x4000>; |
|---|
| 729 | 735 | phy_type = "utmi"; |
|---|
| 730 | 736 | clocks = <&tegra_car TEGRA20_CLK_USBD>, |
|---|
| 731 | 737 | <&tegra_car TEGRA20_CLK_PLL_U>, |
|---|
| .. | .. |
|---|
| 734 | 740 | clock-names = "reg", "pll_u", "timer", "utmi-pads"; |
|---|
| 735 | 741 | resets = <&tegra_car 22>, <&tegra_car 22>; |
|---|
| 736 | 742 | reset-names = "usb", "utmi-pads"; |
|---|
| 743 | + #phy-cells = <0>; |
|---|
| 737 | 744 | nvidia,has-legacy-mode; |
|---|
| 738 | 745 | nvidia,hssync-start-delay = <9>; |
|---|
| 739 | 746 | nvidia,idle-wait-delay = <17>; |
|---|
| .. | .. |
|---|
| 768 | 775 | clock-names = "reg", "pll_u", "ulpi-link"; |
|---|
| 769 | 776 | resets = <&tegra_car 58>, <&tegra_car 22>; |
|---|
| 770 | 777 | reset-names = "usb", "utmi-pads"; |
|---|
| 778 | + #phy-cells = <0>; |
|---|
| 771 | 779 | status = "disabled"; |
|---|
| 772 | 780 | }; |
|---|
| 773 | 781 | |
|---|
| .. | .. |
|---|
| 785 | 793 | |
|---|
| 786 | 794 | phy3: usb-phy@c5008000 { |
|---|
| 787 | 795 | compatible = "nvidia,tegra20-usb-phy"; |
|---|
| 788 | | - reg = <0xc5008000 0x4000 0xc5000000 0x4000>; |
|---|
| 796 | + reg = <0xc5008000 0x4000>, |
|---|
| 797 | + <0xc5000000 0x4000>; |
|---|
| 789 | 798 | phy_type = "utmi"; |
|---|
| 790 | 799 | clocks = <&tegra_car TEGRA20_CLK_USB3>, |
|---|
| 791 | 800 | <&tegra_car TEGRA20_CLK_PLL_U>, |
|---|
| .. | .. |
|---|
| 794 | 803 | clock-names = "reg", "pll_u", "timer", "utmi-pads"; |
|---|
| 795 | 804 | resets = <&tegra_car 59>, <&tegra_car 22>; |
|---|
| 796 | 805 | reset-names = "usb", "utmi-pads"; |
|---|
| 806 | + #phy-cells = <0>; |
|---|
| 797 | 807 | nvidia,hssync-start-delay = <9>; |
|---|
| 798 | 808 | nvidia,idle-wait-delay = <17>; |
|---|
| 799 | 809 | nvidia,elastic-limit = <16>; |
|---|
| .. | .. |
|---|
| 804 | 814 | status = "disabled"; |
|---|
| 805 | 815 | }; |
|---|
| 806 | 816 | |
|---|
| 807 | | - sdhci@c8000000 { |
|---|
| 817 | + mmc@c8000000 { |
|---|
| 808 | 818 | compatible = "nvidia,tegra20-sdhci"; |
|---|
| 809 | 819 | reg = <0xc8000000 0x200>; |
|---|
| 810 | 820 | interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 811 | 821 | clocks = <&tegra_car TEGRA20_CLK_SDMMC1>; |
|---|
| 822 | + clock-names = "sdhci"; |
|---|
| 812 | 823 | resets = <&tegra_car 14>; |
|---|
| 813 | 824 | reset-names = "sdhci"; |
|---|
| 814 | 825 | status = "disabled"; |
|---|
| 815 | 826 | }; |
|---|
| 816 | 827 | |
|---|
| 817 | | - sdhci@c8000200 { |
|---|
| 828 | + mmc@c8000200 { |
|---|
| 818 | 829 | compatible = "nvidia,tegra20-sdhci"; |
|---|
| 819 | 830 | reg = <0xc8000200 0x200>; |
|---|
| 820 | 831 | interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 821 | 832 | clocks = <&tegra_car TEGRA20_CLK_SDMMC2>; |
|---|
| 833 | + clock-names = "sdhci"; |
|---|
| 822 | 834 | resets = <&tegra_car 9>; |
|---|
| 823 | 835 | reset-names = "sdhci"; |
|---|
| 824 | 836 | status = "disabled"; |
|---|
| 825 | 837 | }; |
|---|
| 826 | 838 | |
|---|
| 827 | | - sdhci@c8000400 { |
|---|
| 839 | + mmc@c8000400 { |
|---|
| 828 | 840 | compatible = "nvidia,tegra20-sdhci"; |
|---|
| 829 | 841 | reg = <0xc8000400 0x200>; |
|---|
| 830 | 842 | interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 831 | 843 | clocks = <&tegra_car TEGRA20_CLK_SDMMC3>; |
|---|
| 844 | + clock-names = "sdhci"; |
|---|
| 832 | 845 | resets = <&tegra_car 69>; |
|---|
| 833 | 846 | reset-names = "sdhci"; |
|---|
| 834 | 847 | status = "disabled"; |
|---|
| 835 | 848 | }; |
|---|
| 836 | 849 | |
|---|
| 837 | | - sdhci@c8000600 { |
|---|
| 850 | + mmc@c8000600 { |
|---|
| 838 | 851 | compatible = "nvidia,tegra20-sdhci"; |
|---|
| 839 | 852 | reg = <0xc8000600 0x200>; |
|---|
| 840 | 853 | interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 841 | 854 | clocks = <&tegra_car TEGRA20_CLK_SDMMC4>; |
|---|
| 855 | + clock-names = "sdhci"; |
|---|
| 842 | 856 | resets = <&tegra_car 15>; |
|---|
| 843 | 857 | reset-names = "sdhci"; |
|---|
| 844 | 858 | status = "disabled"; |
|---|
| .. | .. |
|---|
| 852 | 866 | device_type = "cpu"; |
|---|
| 853 | 867 | compatible = "arm,cortex-a9"; |
|---|
| 854 | 868 | reg = <0>; |
|---|
| 869 | + clocks = <&tegra_car TEGRA20_CLK_CCLK>; |
|---|
| 855 | 870 | }; |
|---|
| 856 | 871 | |
|---|
| 857 | 872 | cpu@1 { |
|---|
| 858 | 873 | device_type = "cpu"; |
|---|
| 859 | 874 | compatible = "arm,cortex-a9"; |
|---|
| 860 | 875 | reg = <1>; |
|---|
| 876 | + clocks = <&tegra_car TEGRA20_CLK_CCLK>; |
|---|
| 861 | 877 | }; |
|---|
| 862 | 878 | }; |
|---|
| 863 | 879 | |
|---|
| .. | .. |
|---|
| 865 | 881 | compatible = "arm,cortex-a9-pmu"; |
|---|
| 866 | 882 | interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>, |
|---|
| 867 | 883 | <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; |
|---|
| 884 | + interrupt-affinity = <&{/cpus/cpu@0}>, |
|---|
| 885 | + <&{/cpus/cpu@1}>; |
|---|
| 868 | 886 | }; |
|---|
| 869 | 887 | }; |
|---|