soc: rockchip: rename rockchip_boot-mode.h to rockchip,boot-mode.h
[firefly-linux-kernel-4.4.55.git] / arch / arm / boot / dts / rk3288.dtsi
index 0a1059f709855a874dcdd6b966fd92b441c3450b..09c67c9f5d5e73ebc43a3623c45334fdf37e5be2 100644 (file)
@@ -45,7 +45,7 @@
 #include <dt-bindings/clock/rk3288-cru.h>
 #include <dt-bindings/thermal/thermal.h>
 #include <dt-bindings/power/rk3288-power.h>
-#include <dt-bindings/soc/rockchip_boot-mode.h>
+#include <dt-bindings/soc/rockchip,boot-mode.h>
 #include "skeleton.dtsi"
 
 / {
@@ -54,6 +54,7 @@
        interrupt-parent = <&gic>;
 
        aliases {
+               ethernet0 = &gmac;
                i2c0 = &i2c0;
                i2c1 = &i2c1;
                i2c2 = &i2c2;
                #clock-cells = <0>;
        };
 
-       edp_phy: edp-phy {
-               compatible = "rockchip,rk3288-dp-phy";
-               clocks = <&cru SCLK_EDP_24M>;
-               clock-names = "24m";
-               rockchip,grf = <&grf>;
-               #phy-cells = <0>;
-               status = "disabled";
-       };
-
        timer {
                compatible = "arm,armv7-timer";
                arm,cpu-registers-not-fw-configured;
                #io-channel-cells = <1>;
                clocks = <&cru SCLK_SARADC>, <&cru PCLK_SARADC>;
                clock-names = "saradc", "apb_pclk";
+               resets = <&cru SRST_SARADC>;
+               reset-names = "saradc-apb";
                status = "disabled";
        };
 
        };
 
        thermal-zones {
-               #include "rk3288-thermal.dtsi"
+               reserve_thermal: reserve_thermal {
+                       polling-delay-passive = <1000>; /* milliseconds */
+                       polling-delay = <5000>; /* milliseconds */
+
+                       thermal-sensors = <&tsadc 0>;
+               };
+
+               cpu_thermal: cpu_thermal {
+                       polling-delay-passive = <100>; /* milliseconds */
+                       polling-delay = <5000>; /* milliseconds */
+
+                       thermal-sensors = <&tsadc 1>;
+
+                       trips {
+                               cpu_alert0: cpu_alert0 {
+                                       temperature = <70000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "passive";
+                               };
+                               cpu_alert1: cpu_alert1 {
+                                       temperature = <75000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "passive";
+                               };
+                               cpu_crit: cpu_crit {
+                                       temperature = <90000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&cpu_alert0>;
+                                       cooling-device =
+                                               <&cpu0 THERMAL_NO_LIMIT 6>;
+                               };
+                               map1 {
+                                       trip = <&cpu_alert1>;
+                                       cooling-device =
+                                               <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
+
+               gpu_thermal: gpu_thermal {
+                       polling-delay-passive = <100>; /* milliseconds */
+                       polling-delay = <5000>; /* milliseconds */
+
+                       thermal-sensors = <&tsadc 2>;
+
+                       trips {
+                               gpu_alert0: gpu_alert0 {
+                                       temperature = <70000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "passive";
+                               };
+                               gpu_crit: gpu_crit {
+                                       temperature = <90000>; /* millicelsius */
+                                       hysteresis = <2000>; /* millicelsius */
+                                       type = "critical";
+                               };
+                       };
+
+                       cooling-maps {
+                               map0 {
+                                       trip = <&gpu_alert0>;
+                                       cooling-device =
+                                               <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                               };
+                       };
+               };
        };
 
        tsadc: tsadc@ff280000 {
        gmac: ethernet@ff290000 {
                compatible = "rockchip,rk3288-gmac";
                reg = <0xff290000 0x10000>;
-               interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
-               interrupt-names = "macirq";
+               interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
+                               <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "macirq", "eth_wake_irq";
                rockchip,grf = <&grf>;
                clocks = <&cru SCLK_MAC>,
                        <&cru SCLK_MAC_RX>, <&cru SCLK_MAC_TX>,
                         *      *_HDMI          HDMI
                         *      *_MIPI_*        MIPI
                         */
-                       pd_vio {
+                       pd_vio@RK3288_PD_VIO {
                                reg = <RK3288_PD_VIO>;
                                clocks = <&cru ACLK_IEP>,
                                         <&cru ACLK_ISP>,
                         * Note: The following 3 are HEVC(H.265) clocks,
                         * and on the ACLK_HEVC_NIU (NOC).
                         */
-                       pd_hevc {
+                       pd_hevc@RK3288_PD_HEVC {
                                reg = <RK3288_PD_HEVC>;
                                clocks = <&cru ACLK_HEVC>,
                                         <&cru SCLK_HEVC_CABAC>,
                         * (video endecoder & decoder) clocks that on the
                         * ACLK_VCODEC_NIU and HCLK_VCODEC_NIU (NOC).
                         */
-                       pd_video {
+                       pd_video@RK3288_PD_VIDEO {
                                reg = <RK3288_PD_VIDEO>;
                                clocks = <&cru ACLK_VCODEC>,
                                         <&cru HCLK_VCODEC>;
                         * Note: ACLK_GPU is the GPU clock,
                         * and on the ACLK_GPU_NIU (NOC).
                         */
-                       pd_gpu {
+                       pd_gpu@RK3288_PD_GPU {
                                reg = <RK3288_PD_GPU>;
                                clocks = <&cru ACLK_GPU>;
                                pm_qos = <&qos_gpu_r>,
        };
 
        grf: syscon@ff770000 {
-               compatible = "rockchip,rk3288-grf", "syscon";
+               compatible = "rockchip,rk3288-grf", "syscon", "simple-mfd";
                reg = <0xff770000 0x1000>;
+
+               edp_phy: edp-phy {
+                       compatible = "rockchip,rk3288-dp-phy";
+                       clocks = <&cru SCLK_EDP_24M>;
+                       clock-names = "24m";
+                       #phy-cells = <0>;
+                       status = "disabled";
+               };
+
+               io_domains: io-domains {
+                       compatible = "rockchip,rk3288-io-voltage-domain";
+                       status = "disabled";
+               };
+
+               usbphy: usbphy {
+                       compatible = "rockchip,rk3288-usb-phy";
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       status = "disabled";
+
+                       usbphy0: usb-phy@320 {
+                               #phy-cells = <0>;
+                               reg = <0x320>;
+                               clocks = <&cru SCLK_OTGPHY0>;
+                               clock-names = "phyclk";
+                               #clock-cells = <0>;
+                               resets = <&cru SRST_USBOTG_PHY>;
+                               reset-names = "phy-reset";
+                       };
+
+                       usbphy1: usb-phy@334 {
+                               #phy-cells = <0>;
+                               reg = <0x334>;
+                               clocks = <&cru SCLK_OTGPHY1>;
+                               clock-names = "phyclk";
+                               #clock-cells = <0>;
+                       };
+
+                       usbphy2: usb-phy@348 {
+                               #phy-cells = <0>;
+                               reg = <0x348>;
+                               clocks = <&cru SCLK_OTGPHY2>;
+                               clock-names = "phyclk";
+                               #clock-cells = <0>;
+                               resets = <&cru SRST_USBHOST1_PHY>;
+                               reset-names = "phy-reset";
+                       };
+               };
        };
 
        wdt: watchdog@ff800000 {
                clocks = <&cru HCLK_I2S0>, <&cru SCLK_I2S0>;
                pinctrl-names = "default";
                pinctrl-0 = <&i2s0_bus>;
+               rockchip,playback-channels = <8>;
+               rockchip,capture-channels = <2>;
+               status = "disabled";
+       };
+
+       rga: rga@ff920000 {
+               compatible = "rockchip,rk3288-rga";
+               reg = <0xff920000 0x180>;
+               interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
+               interrupt-names = "rga";
+               clocks = <&cru ACLK_RGA>, <&cru HCLK_RGA>, <&cru SCLK_RGA>;
+               clock-names = "aclk", "hclk", "sclk";
+
+               resets = <&cru SRST_RGA_CORE>, <&cru SRST_RGA_AXI>, <&cru SRST_RGA_AHB>;
+
+               reset-names = "core", "axi", "ahb";
                status = "disabled";
        };
 
                interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
                clocks = <&cru SCLK_MIPIDSI_24M>, <&cru PCLK_MIPI_DSI0>;
                clock-names = "ref", "pclk";
+               power-domains = <&power RK3288_PD_VIO>;
                rockchip,grf = <&grf>;
                #address-cells = <1>;
                #size-cells = <0>;
                status = "disabled";
 
                ports {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       reg = <1>;
-
                        mipi_in: port {
                                #address-cells = <1>;
                                #size-cells = <0>;
                iommu_enabled = <1>;
                dev_mode = <0>;
                status = "disabled";
+               /* 0 means ion, 1 means drm */
+               allocator = <1>;
        };
 
        vpu_mmu: iommu@ff9a0800 {
                iommus = <&hevc_mmu>;
                iommu_enabled = <1>;
                status = "disabled";
+               /* 0 means ion, 1 means drm */
+               allocator = <1>;
        };
 
        hevc_mmu: iommu@ff9c0440 {
                };
        };
 
-       usbphy: phy {
-               compatible = "rockchip,rk3288-usb-phy";
-               rockchip,grf = <&grf>;
-               #address-cells = <1>;
-               #size-cells = <0>;
-               status = "disabled";
-
-               usbphy0: usb-phy0 {
-                       #phy-cells = <0>;
-                       reg = <0x320>;
-                       clocks = <&cru SCLK_OTGPHY0>;
-                       clock-names = "phyclk";
-                       resets = <&cru SRST_USBOTG_PHY>;
-                       reset-names = "phy-reset";
-               };
-
-               usbphy1: usb-phy1 {
-                       #phy-cells = <0>;
-                       reg = <0x334>;
-                       clocks = <&cru SCLK_OTGPHY1>;
-                       clock-names = "phyclk";
-               };
-
-               usbphy2: usb-phy2 {
-                       #phy-cells = <0>;
-                       reg = <0x348>;
-                       clocks = <&cru SCLK_OTGPHY2>;
-                       clock-names = "phyclk";
-                       resets = <&cru SRST_USBHOST1_PHY>;
-                       reset-names = "phy-reset";
-               };
-       };
-
        cif_isp0: cif_isp@ff910000 {
                compatible = "rockchip,rk3288-cif-isp";
                rockchip,grf = <&grf>;