X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=arch%2Farm64%2Fboot%2Fdts%2Frockchip%2Frk3368.dtsi;h=28f3300cfed7a0369e9893a86c9e87bc251e1519;hb=f357521de132e9d3290cd084edface86a50ae90e;hp=12af2f36fe39089defc802c90bbdaec8efa4f240;hpb=31e823d95d0981c8c21a245bfafd9e8dea71d9e8;p=firefly-linux-kernel-4.4.55.git diff --git a/arch/arm64/boot/dts/rockchip/rk3368.dtsi b/arch/arm64/boot/dts/rockchip/rk3368.dtsi index 12af2f36fe39..28f3300cfed7 100644 --- a/arch/arm64/boot/dts/rockchip/rk3368.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3368.dtsi @@ -132,6 +132,7 @@ enable-method = "psci"; clocks = <&cru ARMCLKL>; operating-points-v2 = <&cluster0_opp>; + sched-energy-costs = <&RK3368_CPU_COST_0 &RK3368_CLUSTER_COST_0>; #cooling-cells = <2>; /* min followed by max */ dynamic-power-coefficient = <149>; }; @@ -144,6 +145,7 @@ enable-method = "psci"; clocks = <&cru ARMCLKL>; operating-points-v2 = <&cluster0_opp>; + sched-energy-costs = <&RK3368_CPU_COST_0 &RK3368_CLUSTER_COST_0>; }; cpu_l2: cpu@2 { @@ -154,6 +156,7 @@ enable-method = "psci"; clocks = <&cru ARMCLKL>; operating-points-v2 = <&cluster0_opp>; + sched-energy-costs = <&RK3368_CPU_COST_0 &RK3368_CLUSTER_COST_0>; }; cpu_l3: cpu@3 { @@ -164,6 +167,7 @@ enable-method = "psci"; clocks = <&cru ARMCLKL>; operating-points-v2 = <&cluster0_opp>; + sched-energy-costs = <&RK3368_CPU_COST_0 &RK3368_CLUSTER_COST_0>; }; cpu_b0: cpu@100 { @@ -174,6 +178,7 @@ enable-method = "psci"; clocks = <&cru ARMCLKB>; operating-points-v2 = <&cluster1_opp>; + sched-energy-costs = <&RK3368_CPU_COST_1 &RK3368_CLUSTER_COST_1>; #cooling-cells = <2>; /* min followed by max */ dynamic-power-coefficient = <160>; }; @@ -186,6 +191,7 @@ enable-method = "psci"; clocks = <&cru ARMCLKB>; operating-points-v2 = <&cluster1_opp>; + sched-energy-costs = <&RK3368_CPU_COST_1 &RK3368_CLUSTER_COST_1>; }; cpu_b2: cpu@102 { @@ -196,6 +202,7 @@ enable-method = "psci"; clocks = <&cru ARMCLKB>; operating-points-v2 = <&cluster1_opp>; + sched-energy-costs = <&RK3368_CPU_COST_1 &RK3368_CLUSTER_COST_1>; }; cpu_b3: cpu@103 { @@ -206,6 +213,7 @@ enable-method = "psci"; clocks = <&cru ARMCLKB>; operating-points-v2 = <&cluster1_opp>; + sched-energy-costs = <&RK3368_CPU_COST_1 &RK3368_CLUSTER_COST_1>; }; }; @@ -298,6 +306,78 @@ }; }; + energy-costs { + RK3368_CPU_COST_0: rk3368-core-cost0 { + busy-cost-data = < + 146 44 /* 216M */ + 276 72 /* 408M */ + 406 99 /* 600M */ + 552 147 /* 816M */ + 682 200 /* 1008M */ + 812 255 /* 1200M */ + >; + idle-cost-data = < + 6 + 6 + 0 + >; + }; + + RK3368_CPU_COST_1: rk3368-core-cost1 { + busy-cost-data = < + 146 53 /* 216M */ + 276 86 /* 408M */ + 406 118 /* 600M */ + 552 166 /* 816M */ + 682 226 /* 1008M */ + 812 309 /* 1200M */ + 878 371 /* 1200M */ + 959 446 /* 1416M */ + 1024 513 /* 1512M */ + >; + idle-cost-data = < + 6 + 6 + 0 + >; + }; + + RK3368_CLUSTER_COST_0: rk3368-cluster-cost0 { + busy-cost-data = < + 146 9 /* 216M */ + 276 14 /* 408M */ + 406 20 /* 600M */ + 552 29 /* 816M */ + 682 40 /* 1008M */ + 812 51 /* 1200M */ + >; + idle-cost-data = < + 56 + 56 + 56 + >; + }; + + RK3368_CLUSTER_COST_1: rk3368-cluster-cost1 { + busy-cost-data = < + 146 11 /* 216M */ + 276 17 /* 408M */ + 406 24 /* 600M */ + 552 33 /* 816M */ + 682 45 /* 1008M */ + 812 62 /* 1200M */ + 878 74 /* 1200M */ + 959 89 /* 1416M */ + 1024 103 /* 1512M */ + >; + idle-cost-data = < + 56 + 56 + 56 + >; + }; + }; + cpu_avs: cpu-avs { cluster0-avs { cluster-id = <0>; @@ -600,26 +680,26 @@ status = "disabled"; }; - thermal-zones { - cpu { - polling-delay-passive = <300>; /* milliseconds */ - polling-delay = <300>; /* milliseconds */ + thermal_zones: thermal-zones { + soc_thermal: soc-thermal { + polling-delay-passive = <200>; /* milliseconds */ + polling-delay = <200>; /* milliseconds */ sustainable-power = <600>; /* milliwatts */ thermal-sensors = <&tsadc 0>; trips { - cpu_alert0: cpu_alert0 { + threshold: trip-point@0 { temperature = <70000>; /* millicelsius */ hysteresis = <2000>; /* millicelsius */ type = "passive"; }; - cpu_alert1: cpu_alert1 { + target: trip-point@1 { temperature = <80000>; /* millicelsius */ hysteresis = <2000>; /* millicelsius */ type = "passive"; }; - cpu_crit: cpu_crit { - temperature = <90000>; /* millicelsius */ + soc_crit: soc-crit { + temperature = <95000>; /* millicelsius */ hysteresis = <2000>; /* millicelsius */ type = "critical"; }; @@ -627,23 +707,29 @@ cooling-maps { map0 { - trip = <&cpu_alert1>; + trip = <&target>; cooling-device = <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; contribution = <1024>; }; map1 { - trip = <&cpu_alert1>; + trip = <&target>; cooling-device = <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; contribution = <1024>; }; + map2 { + trip = <&target>; + cooling-device = + <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; + contribution = <1024>; + }; }; }; gpu_thermal: gpu-thermal { - polling-delay-passive = <300>; /* milliseconds */ - polling-delay = <300>; /* milliseconds */ + polling-delay-passive = <200>; /* milliseconds */ + polling-delay = <200>; /* milliseconds */ thermal-sensors = <&tsadc 1>; }; }; @@ -661,6 +747,7 @@ nvmem-cell-names = "temp_adjust"; #thermal-sensor-cells = <1>; hw-shut-temp = <95000>; + latency-bound = <50000>; status = "disabled"; }; @@ -1033,12 +1120,14 @@ <&cru PLL_GPLL>, <&cru PLL_CPLL>, <&cru ACLK_BUS>, <&cru ACLK_PERI>, <&cru HCLK_BUS>, <&cru HCLK_PERI>, - <&cru PCLK_BUS>, <&cru PCLK_PERI>; + <&cru PCLK_BUS>, <&cru PCLK_PERI>, + <&cru ACLK_CCI_PRE>; assigned-clock-rates = <576000000>, <400000000>, <300000000>, <300000000>, <150000000>, <150000000>, - <75000000>, <75000000>; + <75000000>, <75000000>, + <576000000>; }; grf: syscon@ff770000 { @@ -1047,6 +1136,16 @@ #address-cells = <1>; #size-cells = <1>; + edp_phy: edp-phy { + compatible = "rockchip,rk3368-dp-phy"; + clocks = <&cru SCLK_EDP_24M>; + clock-names = "24m"; + resets = <&cru SRST_EDP_24M>; + reset-names = "edp_24m"; + #phy-cells = <0>; + status = "disabled"; + }; + io_domains: io-domains { compatible = "rockchip,rk3368-io-voltage-domain"; status = "disabled"; @@ -1110,6 +1209,30 @@ status = "disabled"; }; + iep: iep@ff900000 { + compatible = "rockchip,iep"; + iommu_enabled = <1>; + iommus = <&iep_mmu>; + reg = <0x0 0xff900000 0x0 0x800>; + interrupts = ; + clocks = <&cru ACLK_IEP>, <&cru HCLK_IEP>; + clock-names = "aclk_iep", "hclk_iep"; + power-domains = <&power RK3368_PD_VIO>; + allocator = <1>; + version = <2>; + status = "disabled"; + }; + + iep_mmu: iommu@ff900800 { + compatible = "rockchip,iommu"; + reg = <0x0 0xff900800 0x0 0x100>; + interrupts = ; + interrupt-names = "iep_mmu"; + power-domains = <&power RK3368_PD_VIO>; + #iommu-cells = <0>; + status = "disabled"; + }; + isp: isp@ff910000 { compatible = "rockchip,rk3368-isp", "rockchip,isp"; reg = <0x0 0xff910000 0x0 0x4000>; @@ -1189,6 +1312,11 @@ reg = <0>; remote-endpoint = <&mipi_in_vop>; }; + + vop_out_edp: endpoint@1 { + reg = <1>; + remote-endpoint = <&edp_in_vop>; + }; }; }; @@ -1216,6 +1344,8 @@ interrupts = ; clocks = <&cru PCLK_MIPI_DSI0>; clock-names = "pclk"; + resets = <&cru SRST_MIPIDSI0>; + reset-names = "apb"; phys = <&mipi_dphy>; phy-names = "mipi_dphy"; rockchip,grf = <&grf>; @@ -1224,17 +1354,9 @@ #size-cells = <0>; status = "disabled"; - ports@1 { - #address-cells = <1>; - #size-cells = <0>; - reg = <1>; - - mipi_in: port { - #address-cells = <1>; - #size-cells = <0>; - - mipi_in_vop: endpoint@0 { - reg = <0>; + ports { + port { + mipi_in_vop: endpoint { remote-endpoint = <&vop_out_mipi>; }; }; @@ -1247,7 +1369,39 @@ #phy-cells = <0>; clocks = <&cru SCLK_MIPIDSI_24M>, <&cru PCLK_DPHYTX0>; clock-names = "ref", "pclk"; + resets = <&cru SRST_MIPIDPHYTX>; + reset-names = "apb"; + status = "disabled"; + }; + + edp: edp@ff970000 { + compatible = "rockchip,rk3368-edp"; + reg = <0x0 0xff970000 0x0 0x8000>; + interrupts = ; + clocks = <&cru SCLK_EDP>, <&cru PCLK_EDP_CTRL>; + clock-names = "dp", "pclk"; + resets = <&cru SRST_EDP>; + reset-names = "dp"; + power-domains = <&power RK3368_PD_VIO>; + rockchip,grf = <&grf>; + phys = <&edp_phy>; + phy-names = "dp"; + pinctrl-names = "default"; + pinctrl-0 = <&edp_hpd>; status = "disabled"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + edp_in: port@0 { + reg = <0>; + + edp_in_vop: endpoint { + remote-endpoint = <&vop_out_edp>; + }; + }; + }; }; hevc_mmu: iommu@ff9a0440 { @@ -1348,6 +1502,16 @@ interrupt-names = "rogue-g6110-irq"; power-domains = <&power RK3368_PD_GPU_1>; operating-points-v2 = <&gpu_opp_table>; + #cooling-cells = <2>; /* min followed by max */ + gpu_power_model: power_model { + compatible = "arm,mali-simple-power-model"; + voltage = <900>; + frequency = <500>; + static-power = <300>; + dynamic-power = <396>; + ts = <32000 4700 (-80) 2>; + thermal-zone = "gpu-thermal"; + }; }; gpu_opp_table: gpu_opp_table { @@ -1466,6 +1630,12 @@ drive-strength = <12>; }; + edp { + edp_hpd: edp-hpd { + rockchip,pins = <2 23 RK_FUNC_2 &pcfg_pull_none>; + }; + }; + emmc { emmc_clk: emmc-clk { rockchip,pins = <2 4 RK_FUNC_2 &pcfg_pull_none>;