diff --git a/patch/kernel/rockchip-default/101_dts_rk3288_update_1.8_GHz.patch b/patch/kernel/rockchip-default/101_dts_rk3288_update_1.8_GHz.patch
new file mode 100644
index 000000000..ba87ccf0b
--- /dev/null
+++ b/patch/kernel/rockchip-default/101_dts_rk3288_update_1.8_GHz.patch
@@ -0,0 +1,174 @@
+diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
+index 8ef0393..6f37782 100644
+--- a/arch/arm/boot/dts/rk3288.dtsi
++++ b/arch/arm/boot/dts/rk3288.dtsi
+@@ -97,6 +97,8 @@
+ 			operating-points-v2 = <&cpu0_opp_table>;
+ 			#cooling-cells = <2>; /* min followed by max */
+ 			clocks = <&cru ARMCLK>;
++			nvmem-cells = <&package_info>;
++			nvmem-cell-names = "package_info";
+ 		};
+ 		cpu1: cpu@501 {
+ 			device_type = "cpu";
+@@ -126,61 +128,87 @@
+ 		opp-shared;
+ 
+ 		opp@126000000 {
++			opp-supported-hw = <0x3>;
+ 			opp-hz = /bits/ 64 <126000000>;
+ 			opp-microvolt = <900000>;
+ 			clock-latency-ns = <40000>;
+ 		};
+ 		opp@216000000 {
++			opp-supported-hw = <0x3>;
+ 			opp-hz = /bits/ 64 <216000000>;
+ 			opp-microvolt = <900000>;
+ 			clock-latency-ns = <40000>;
+ 		};
+ 		opp@408000000 {
++			opp-supported-hw = <0x3>;
+ 			opp-hz = /bits/ 64 <408000000>;
+ 			opp-microvolt = <900000>;
+ 			clock-latency-ns = <40000>;
+ 		};
+ 		opp@600000000 {
++			opp-supported-hw = <0x3>;
+ 			opp-hz = /bits/ 64 <600000000>;
+ 			opp-microvolt = <900000>;
+ 			clock-latency-ns = <40000>;
+ 		};
+ 		opp@696000000 {
++			opp-supported-hw = <0x3>;
+ 			opp-hz = /bits/ 64 <696000000>;
+ 			opp-microvolt = <950000>;
+ 			clock-latency-ns = <40000>;
+ 		};
+ 		opp@816000000 {
++			opp-supported-hw = <0x3>;
+ 			opp-hz = /bits/ 64 <816000000>;
+ 			opp-microvolt = <1000000>;
+ 			clock-latency-ns = <40000>;
+ 			opp-suspend;
+ 		};
+ 		opp@1008000000 {
++			opp-supported-hw = <0x3>;
+ 			opp-hz = /bits/ 64 <1008000000>;
+ 			opp-microvolt = <1050000>;
+ 			clock-latency-ns = <40000>;
+ 		};
+-		opp@1200000000 {
++		opp@1200000000 {	
++			opp-supported-hw = <0x3>;
+ 			opp-hz = /bits/ 64 <1200000000>;
+ 			opp-microvolt = <1100000>;
+ 			clock-latency-ns = <40000>;
+ 		};
+ 		opp@1416000000 {
++			opp-supported-hw = <0x3>;
+ 			opp-hz = /bits/ 64 <1416000000>;
+ 			opp-microvolt = <1200000>;
+ 			clock-latency-ns = <40000>;
+ 		};
+ 		opp@1512000000 {
++			opp-supported-hw = <0x3>;
+ 			opp-hz = /bits/ 64 <1512000000>;
+ 			opp-microvolt = <1300000>;
+ 			clock-latency-ns = <40000>;
+ 		};
++
+ 		opp@1608000000 {
++			opp-supported-hw = <0x3>;
+ 			opp-hz = /bits/ 64 <1608000000>;
+ 			opp-microvolt = <1350000>;
+ 			clock-latency-ns = <40000>;
+ 		};
++
++		opp@1704000000 {
++			opp-supported-hw = <0x3>;
++			opp-hz = /bits/ 64 <1704000000>;
++			opp-microvolt = <1350000>;
++			clock-latency-ns = <40000>;
++		};
++
++		opp@1800000000 {
++			opp-supported-hw = <0x3>;
++			opp-hz = /bits/ 64 <1800000000>;
++			opp-microvolt = <1350000>;
++			clock-latency-ns = <40000>;
++		};
+ 	};
+ 
+ 	amba {
+@@ -1212,6 +1240,18 @@
+ 		#cooling-cells = <2>; /* min followed by max */
+ 		power-domains = <&power RK3288_PD_GPU>;
+ 		status = "disabled";
++		cpu-limit-freq = <1416000>;
++		gpu-limit-freq = <600000>;
++
++		gpu_power_model: power_model {
++			compatible = "arm,mali-simple-power-model";
++			voltage = <950>;
++			frequency = <500>;
++			static-power = <300>;
++			dynamic-power = <396>;
++			ts = <32000 4700 (-80) 2>;
++			thermal-zone = "gpu_thermal";
++		};
+ 	};
+ 
+ 	noc: syscon@ffac0000 {
+@@ -1328,6 +1368,11 @@
+ 		cpu_leakage: cpu_leakage@17 {
+ 			reg = <0x17 0x1>;
+ 		};
++
++		package_info: package-info {
++			reg = <0x05 0x1>;
++		};
++
+ 	};
+ 
+ 	usbphy: phy {
+diff --git a/arch/arm/boot/dts/rk3288-thermal.dtsi b/arch/arm/boot/dts/rk3288-thermal.dtsi
+index 8995909..58f8732 100644
+--- a/arch/arm/boot/dts/rk3288-thermal.dtsi
++++ b/arch/arm/boot/dts/rk3288-thermal.dtsi
+@@ -52,11 +52,11 @@ reserve_thermal: reserve_thermal {
+ };
+ 
+ cpu_thermal: cpu_thermal {
+-	polling-delay-passive = <1000>; /* milliseconds */
+-	polling-delay = <5000>; /* milliseconds */
+-
++	polling-delay-passive = <200>; /* milliseconds */
++	polling-delay = <1000>; /* milliseconds */
++	sustainable-power = <1200>;
+ 	thermal-sensors = <&tsadc 1>;
+-
++	
+ 	trips {
+ 		cpu_alert0: cpu_alert0 {
+ 			temperature = <70000>; /* millicelsius */
+@@ -102,7 +102,7 @@ gpu_thermal: gpu_thermal {
+ 		map0 {
+ 			trip = <&gpu_alert0>;
+ 			cooling-device =
+-				<&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
++				<&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ 		};
+ 	};
+ };
+diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
+index 6f37782..6a876ed 100644
+--- a/arch/arm/boot/dts/rk3288.dtsi
++++ b/arch/arm/boot/dts/rk3288.dtsi
+@@ -96,6 +96,7 @@
+ 			resets = <&cru SRST_CORE0>;
+ 			operating-points-v2 = <&cpu0_opp_table>;
+ 			#cooling-cells = <2>; /* min followed by max */
++
+ 			clocks = <&cru ARMCLK>;
+ 			nvmem-cells = <&package_info>;
+ 			nvmem-cell-names = "package_info";