ARM: dts: tegra20: Add Memory Client resets for GR2D and GR3D
[linux] / arch / arm / boot / dts / tegra20.dtsi
index dcad6d6..51ffb5d 100644 (file)
@@ -50,6 +50,8 @@
                        clocks = <&tegra_car TEGRA20_CLK_MPE>;
                        resets = <&tegra_car 60>;
                        reset-names = "mpe";
+
+                       iommus = <&mc>;
                };
 
                vi@54080000 {
@@ -59,6 +61,8 @@
                        clocks = <&tegra_car TEGRA20_CLK_VI>;
                        resets = <&tegra_car 20>;
                        reset-names = "vi";
+
+                       iommus = <&mc>;
                };
 
                epp@540c0000 {
@@ -68,6 +72,8 @@
                        clocks = <&tegra_car TEGRA20_CLK_EPP>;
                        resets = <&tegra_car 19>;
                        reset-names = "epp";
+
+                       iommus = <&mc>;
                };
 
                isp@54100000 {
@@ -77,6 +83,8 @@
                        clocks = <&tegra_car TEGRA20_CLK_ISP>;
                        resets = <&tegra_car 23>;
                        reset-names = "isp";
+
+                       iommus = <&mc>;
                };
 
                gr2d@54140000 {
                        reg = <0x54140000 0x00040000>;
                        interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
                        clocks = <&tegra_car TEGRA20_CLK_GR2D>;
-                       resets = <&tegra_car 21>;
-                       reset-names = "2d";
+                       resets = <&tegra_car 21>, <&mc TEGRA20_MC_RESET_2D>;
+                       reset-names = "2d", "mc";
+
+                       iommus = <&mc>;
                };
 
                gr3d@54180000 {
                        compatible = "nvidia,tegra20-gr3d";
                        reg = <0x54180000 0x00040000>;
                        clocks = <&tegra_car TEGRA20_CLK_GR3D>;
-                       resets = <&tegra_car 24>;
-                       reset-names = "3d";
+                       resets = <&tegra_car 24>, <&mc TEGRA20_MC_RESET_3D>;
+                       reset-names = "3d", "mc";
+
+                       iommus = <&mc>;
                };
 
                dc@54200000 {
 
                        nvidia,head = <0>;
 
+                       iommus = <&mc>;
+
                        rgb {
                                status = "disabled";
                        };
 
                        nvidia,head = <1>;
 
+                       iommus = <&mc>;
+
                        rgb {
                                status = "disabled";
                        };
        };
 
        mc: memory-controller@7000f000 {
-               compatible = "nvidia,tegra20-mc";
-               reg = <0x7000f000 0x024
-                      0x7000f03c 0x3c4>;
+               compatible = "nvidia,tegra20-mc-gart";
+               reg = <0x7000f000 0x400         /* controller registers */
+                      0x58000000 0x02000000>;  /* GART aperture */
+               clocks = <&tegra_car TEGRA20_CLK_MC>;
+               clock-names = "mc";
                interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
                #reset-cells = <1>;
-       };
-
-       iommu@7000f024 {
-               compatible = "nvidia,tegra20-gart";
-               reg = <0x7000f024 0x00000018    /* controller registers */
-                      0x58000000 0x02000000>;  /* GART aperture */
+               #iommu-cells = <0>;
        };
 
        memory-controller@7000f400 {
                status = "disabled";
        };
 
+       cpu0_opp_table: opp_table0 {
+               compatible = "operating-points-v2";
+               opp-shared;
+
+               opp@216000000_750 {
+                       clock-latency-ns = <2000>;
+                       opp-microvolt = <750000 750000 1125000>;
+                       opp-supported-hw = <0xFF 0xFFFF>;
+                       opp-hz = /bits/ 64 <216000000>;
+                       opp-suspend;
+               };
+
+               opp@314000000_750 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <750000 750000 1125000>;
+                       opp-supported-hw = <0x03 0x0001>;
+                       opp-hz = /bits/ 64 <314000000>;
+               };
+
+               opp@380000000_750 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <750000 750000 1125000>;
+                       opp-supported-hw = <0x01 0x0002>;
+                       opp-hz = /bits/ 64 <380000000>;
+               };
+
+               opp@389000000_750 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <750000 750000 1125000>;
+                       opp-supported-hw = <0x02 0x0002>;
+                       opp-hz = /bits/ 64 <389000000>;
+               };
+
+               opp@456000000_825 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <825000 825000 1125000>;
+                       opp-supported-hw = <0x03 0x0001>;
+                       opp-hz = /bits/ 64 <456000000>;
+               };
+
+               opp@494000000_750 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <750000 750000 1125000>;
+                       opp-supported-hw = <0x04 0x0001>;
+                       opp-hz = /bits/ 64 <494000000>;
+               };
+
+               opp@503000000_800 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <800000 800000 1125000>;
+                       opp-supported-hw = <0x03 0x0002>;
+                       opp-hz = /bits/ 64 <503000000>;
+               };
+
+               opp@598000000_750 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <750000 750000 1125000>;
+                       opp-supported-hw = <0x04 0x0002>;
+                       opp-hz = /bits/ 64 <598000000>;
+               };
+
+               opp@608000000_900 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <900000 900000 1125000>;
+                       opp-supported-hw = <0x01 0x0001>;
+                       opp-hz = /bits/ 64 <608000000>;
+               };
+
+               opp@618000000_900 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <900000 900000 1125000>;
+                       opp-supported-hw = <0x02 0x0001>;
+                       opp-hz = /bits/ 64 <618000000>;
+               };
+
+               opp@655000000_850 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <850000 850000 1125000>;
+                       opp-supported-hw = <0x03 0x0002>;
+                       opp-hz = /bits/ 64 <655000000>;
+               };
+
+               opp@675000000_825 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <825000 825000 1125000>;
+                       opp-supported-hw = <0x04 0x0001>;
+                       opp-hz = /bits/ 64 <675000000>;
+               };
+
+               opp@730000000_750 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <750000 750000 1125000>;
+                       opp-supported-hw = <0x08 0x0003>;
+                       opp-hz = /bits/ 64 <730000000>;
+               };
+
+               opp@750000000_800 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <800000 800000 1125000>;
+                       opp-supported-hw = <0x04 0x0002>;
+                       opp-hz = /bits/ 64 <750000000>;
+               };
+
+               opp@760000000_775 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <775000 775000 1125000>;
+                       opp-supported-hw = <0x08 0x0003>;
+                       opp-hz = /bits/ 64 <760000000>;
+               };
+
+               opp@760000000_875 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <875000 875000 1125000>;
+                       opp-supported-hw = <0x02 0x0002>;
+                       opp-hz = /bits/ 64 <760000000>;
+               };
+
+               opp@760000000_975 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <975000 975000 1125000>;
+                       opp-supported-hw = <0x01 0x0001>;
+                       opp-hz = /bits/ 64 <760000000>;
+               };
+
+               opp@770000000_975 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <975000 975000 1125000>;
+                       opp-supported-hw = <0x02 0x0001>;
+                       opp-hz = /bits/ 64 <770000000>;
+               };
+
+               opp@798000000_900 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <900000 900000 1125000>;
+                       opp-supported-hw = <0x03 0x0002>;
+                       opp-hz = /bits/ 64 <798000000>;
+               };
+
+               opp@817000000_875 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <875000 875000 1125000>;
+                       opp-supported-hw = <0x04 0x0001>;
+                       opp-hz = /bits/ 64 <817000000>;
+               };
+
+               opp@817000000_1000 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <1000000 1000000 1125000>;
+                       opp-supported-hw = <0x01 0x0001>;
+                       opp-hz = /bits/ 64 <817000000>;
+               };
+
+               opp@827000000_1000 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <1000000 1000000 1125000>;
+                       opp-supported-hw = <0x02 0x0001>;
+                       opp-hz = /bits/ 64 <827000000>;
+               };
+
+               opp@845000000_800 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <800000 800000 1125000>;
+                       opp-supported-hw = <0x08 0x0003>;
+                       opp-hz = /bits/ 64 <845000000>;
+               };
+
+               opp@893000000_850 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <850000 850000 1125000>;
+                       opp-supported-hw = <0x04 0x0002>;
+                       opp-hz = /bits/ 64 <893000000>;
+               };
+
+               opp@902000000_950 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <950000 950000 1125000>;
+                       opp-supported-hw = <0x01 0x0002>;
+                       opp-hz = /bits/ 64 <902000000>;
+               };
+
+               opp@912000000_1050 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <1050000 1050000 1125000>;
+                       opp-supported-hw = <0x01 0x0001>;
+                       opp-hz = /bits/ 64 <912000000>;
+               };
+
+               opp@922000000_925 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <925000 925000 1125000>;
+                       opp-supported-hw = <0x04 0x0001>;
+                       opp-hz = /bits/ 64 <922000000>;
+               };
+
+               opp@922000000_1050 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <1050000 1050000 1125000>;
+                       opp-supported-hw = <0x02 0x0001>;
+                       opp-hz = /bits/ 64 <922000000>;
+               };
+
+               opp@940000000_850 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <850000 850000 1125000>;
+                       opp-supported-hw = <0x08 0x0003>;
+                       opp-hz = /bits/ 64 <940000000>;
+               };
+
+               opp@950000000_950 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <950000 950000 1125000>;
+                       opp-supported-hw = <0x02 0x0002>;
+                       opp-hz = /bits/ 64 <950000000>;
+               };
+
+               opp@960000000_1000 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <1000000 1000000 1125000>;
+                       opp-supported-hw = <0x01 0x0002>;
+                       opp-hz = /bits/ 64 <960000000>;
+               };
+
+               opp@1000000000_875 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <875000 875000 1125000>;
+                       opp-supported-hw = <0x08 0x0003>;
+                       opp-hz = /bits/ 64 <1000000000>;
+               };
+
+               opp@1000000000_900 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <900000 900000 1125000>;
+                       opp-supported-hw = <0x04 0x0002>;
+                       opp-hz = /bits/ 64 <1000000000>;
+               };
+
+               opp@1000000000_975 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <975000 975000 1125000>;
+                       opp-supported-hw = <0x04 0x0001>;
+                       opp-hz = /bits/ 64 <1000000000>;
+               };
+
+               opp@1000000000_1000 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <1000000 1000000 1125000>;
+                       opp-supported-hw = <0x02 0x0002>;
+                       opp-hz = /bits/ 64 <1000000000>;
+               };
+
+               opp@1000000000_1025 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <1025000 1025000 1125000>;
+                       opp-supported-hw = <0x01 0x0002>;
+                       opp-hz = /bits/ 64 <1000000000>;
+               };
+
+               opp@1000000000_1100 {
+                       clock-latency-ns = <125000>;
+                       opp-microvolt = <1100000 1100000 1125000>;
+                       opp-supported-hw = <0x03 0x0001>;
+                       opp-hz = /bits/ 64 <1000000000>;
+               };
+       };
+
        cpus {
                #address-cells = <1>;
                #size-cells = <0>;
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <0>;
+                       clocks = <&tegra_car TEGRA20_CLK_PLL_X>,
+                                <&tegra_car TEGRA20_CLK_PLL_P>,
+                                <&tegra_car TEGRA20_CLK_CCLK>;
+                       clock-names = "pll_x", "intermediate", "cclk";
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       #cooling-cells = <2>;
                };
 
                cpu@1 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
                        reg = <1>;
+                       clocks = <&tegra_car TEGRA20_CLK_PLL_X>,
+                                <&tegra_car TEGRA20_CLK_PLL_P>,
+                                <&tegra_car TEGRA20_CLK_CCLK>;
+                       clock-names = "pll_x", "intermediate", "cclk";
+                       operating-points-v2 = <&cpu0_opp_table>;
+                       #cooling-cells = <2>;
                };
        };