mirror of
https://github.com/Fishwaldo/build.git
synced 2025-03-31 03:01:47 +00:00
rk3288.dtsi: adds opp point table for CPU, HEVC, VPU service, QOS, noc, cif, etc (current Rockchip-linux) rk3288-miniarm.dts: adds corect LEDs, fixes 4K output bug, enables HEVC, adds wireless-bluetooth and wireless-wlan definitions, etc (current Rockchip-linux) Compiles and boots tinkerboard, Miqi untested, however no errors compiling miqi dtb
724 lines
16 KiB
Diff
724 lines
16 KiB
Diff
diff --git a/arch/arm/boot/dts/rk3288-miniarm.dts b/arch/arm/boot/dts/rk3288-miniarm.dts
|
|
index e1177dd..8eb8070 100644
|
|
--- a/arch/arm/boot/dts/rk3288-miniarm.dts
|
|
+++ b/arch/arm/boot/dts/rk3288-miniarm.dts
|
|
@@ -39,16 +39,54 @@
|
|
*/
|
|
|
|
/dts-v1/;
|
|
+
|
|
+#include <dt-bindings/clock/rockchip,rk808.h>
|
|
#include "rk3288.dtsi"
|
|
+#include <dt-bindings/input/input.h>
|
|
|
|
/ {
|
|
compatible = "rockchip,rk3288-miniarm", "rockchip,rk3288";
|
|
|
|
+ ion {
|
|
+ compatible = "rockchip,ion";
|
|
+ #address-cells = <1>;
|
|
+ #size-cells = <0>;
|
|
+
|
|
+ cma-heap {
|
|
+ reg = <0x78000000 0x08000000>;
|
|
+ };
|
|
+
|
|
+ system-heap {
|
|
+ };
|
|
+ };
|
|
+
|
|
memory {
|
|
device_type = "memory";
|
|
reg = <0x0 0x80000000>;
|
|
};
|
|
|
|
+ wireless-bluetooth {
|
|
+ compatible = "bluetooth-platdata";
|
|
+ uart_rts_gpios = <&gpio4 19 GPIO_ACTIVE_LOW>;
|
|
+ pinctrl-names = "default","rts_gpio";
|
|
+ pinctrl-0 = <&uart0_rts>;
|
|
+ pinctrl-1 = <&uart0_gpios>;
|
|
+ BT,reset_gpio = <&gpio4 29 GPIO_ACTIVE_HIGH>;
|
|
+ BT,wake_gpio = <&gpio4 26 GPIO_ACTIVE_HIGH>;
|
|
+ BT,wake_host_irq = <&gpio4 31 GPIO_ACTIVE_HIGH>;
|
|
+ status = "okay";
|
|
+ };
|
|
+
|
|
+ wireless-wlan {
|
|
+ compatible = "wlan-platdata";
|
|
+ rockchip,grf = <&grf>;
|
|
+ wifi_chip_type = "8723bs";
|
|
+ sdio_vref = <1800>;
|
|
+ WIFI,host_wake_irq = <&gpio4 30 GPIO_ACTIVE_HIGH>;
|
|
+ status = "okay";
|
|
+ };
|
|
+
|
|
+
|
|
ext_gmac: external-gmac-clock {
|
|
compatible = "fixed-clock";
|
|
clock-frequency = <125000000>;
|
|
@@ -56,6 +94,29 @@
|
|
#clock-cells = <0>;
|
|
};
|
|
|
|
+ io_domains: io-domains {
|
|
+ compatible = "rockchip,rk3288-io-voltage-domain";
|
|
+ rockchip,grf = <&grf>;
|
|
+ wifi-supply = <&vcc_18>;
|
|
+ sdcard-supply = <&vccio_sd>;
|
|
+ };
|
|
+
|
|
+ sdio_pwrseq: sdio-pwrseq {
|
|
+ compatible = "mmc-pwrseq-simple";
|
|
+ clocks = <&rk808 RK808_CLKOUT1>;
|
|
+ clock-names = "ext_clock";
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&wifi_enable_h>;
|
|
+
|
|
+ /*
|
|
+ * On the module itself this is one of these (depending
|
|
+ * on the actual card populated):
|
|
+ * - SDIO_RESET_L_WL_REG_ON
|
|
+ * - PDN (power down when low)
|
|
+ */
|
|
+ reset-gpios = <&gpio4 28 GPIO_ACTIVE_LOW>;
|
|
+ };
|
|
+
|
|
gpio-keys {
|
|
compatible = "gpio-keys";
|
|
#address-cells = <1>;
|
|
@@ -84,8 +145,13 @@
|
|
};
|
|
|
|
act-led {
|
|
- gpios=<&gpio2 3 GPIO_ACTIVE_LOW>;
|
|
- linux,default-trigger="mmc0";
|
|
+ gpios = <&gpio1 0x18 GPIO_ACTIVE_LOW>;
|
|
+ linux,default-trigger = "mmc0";
|
|
+ };
|
|
+
|
|
+ heartbeat-led {
|
|
+ gpios = <&gpio1 0x19 GPIO_ACTIVE_LOW>;
|
|
+ linux,default-trigger = "heartbeat";
|
|
};
|
|
};
|
|
|
|
@@ -111,18 +177,12 @@
|
|
regulator-boot-on;
|
|
};
|
|
|
|
- io_domains: io-domains {
|
|
- compatible = "rockchip,rk3288-io-voltage-domain";
|
|
- rockchip,grf = <&grf>;
|
|
-
|
|
- sdcard-supply = <&vccio_sd>;
|
|
- };
|
|
-
|
|
/*
|
|
* NOTE: vcc_sd isn't hooked up on v1.0 boards where power comes from
|
|
* vcc_io directly. Those boards won't be able to power cycle SD cards
|
|
* but it shouldn't hurt to toggle this pin there anyway.
|
|
*/
|
|
+
|
|
vcc_sd: sdmmc-regulator {
|
|
compatible = "regulator-fixed";
|
|
gpio = <&gpio7 11 GPIO_ACTIVE_LOW>;
|
|
@@ -134,6 +194,13 @@
|
|
startup-delay-us = <100000>;
|
|
vin-supply = <&vcc_io>;
|
|
};
|
|
+
|
|
+ vdd_log: vdd_log {
|
|
+ compatible = "regulator-fixed";
|
|
+ regulator-min-microvolt = <1000000>;
|
|
+ regulator-max-microvolt = <1000000>;
|
|
+ regulator-name = "vdd_logic";
|
|
+ };
|
|
};
|
|
|
|
&cpu0 {
|
|
@@ -167,6 +234,12 @@
|
|
#sound-dai-cells = <0>;
|
|
ddc-i2c-bus = <&i2c5>;
|
|
status = "okay";
|
|
+ /* Don't use vopl for HDMI */
|
|
+ ports {
|
|
+ hdmi_in: port {
|
|
+ /delete-node/ endpoint@1;
|
|
+ };
|
|
+ };
|
|
};
|
|
|
|
&i2c0 {
|
|
@@ -180,6 +253,10 @@
|
|
interrupts = <4 IRQ_TYPE_LEVEL_LOW>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pmic_int &global_pwroff>;
|
|
+
|
|
+ dvs-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>,
|
|
+ <&gpio0 12 GPIO_ACTIVE_HIGH>;
|
|
+
|
|
rockchip,system-power-controller;
|
|
wakeup-source;
|
|
#clock-cells = <1>;
|
|
@@ -205,6 +282,7 @@
|
|
regulator-min-microvolt = <750000>;
|
|
regulator-max-microvolt = <1350000>;
|
|
regulator-name = "vdd_arm";
|
|
+ regulator-ramp-delay = <6000>;
|
|
regulator-state-mem {
|
|
regulator-off-in-suspend;
|
|
};
|
|
@@ -362,6 +440,12 @@
|
|
|
|
&i2c2 {
|
|
status = "okay";
|
|
+
|
|
+ eeprom:m24c08@50 {
|
|
+ compatible = "at,24c08";
|
|
+ reg = <0x50>;
|
|
+ };
|
|
+
|
|
};
|
|
|
|
&i2c5 {
|
|
@@ -373,6 +457,24 @@
|
|
status = "okay";
|
|
};
|
|
|
|
+&sdio0 {
|
|
+ status = "okay";
|
|
+ clock-frequency = <50000000>;
|
|
+ clock-freq-min-max = <200000 50000000>;
|
|
+ bus-width = <4>;
|
|
+ cap-sd-highspeed;
|
|
+ cap-sdio-irq;
|
|
+ disable-wp;
|
|
+ keep-power-in-suspend;
|
|
+ mmc-pwrseq = <&sdio_pwrseq>; /*Look here if issue */
|
|
+ non-removable;
|
|
+ num-slots = <1>;
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
|
|
+ sd-uhs-sdr104;
|
|
+ supports-sdio;
|
|
+};
|
|
+
|
|
&pwm0 {
|
|
status = "okay";
|
|
};
|
|
@@ -386,6 +488,10 @@
|
|
bus-width = <4>;
|
|
cap-mmc-highspeed;
|
|
cap-sd-highspeed;
|
|
+ sd-uhs-sdr12;
|
|
+ sd-uhs-sdr25;
|
|
+ sd-uhs-sdr50;
|
|
+ sd-uhs-sdr104;
|
|
card-detect-delay = <200>;
|
|
disable-wp; /* wp not hooked up */
|
|
num-slots = <1>;
|
|
@@ -404,6 +510,10 @@
|
|
};
|
|
|
|
&uart0 {
|
|
+ dmas = <&dmac_peri 1>, <&dmac_peri 2>;
|
|
+ dma-names = "tx", "rx";
|
|
+ pinctrl-names = "default";
|
|
+ pinctrl-0 = <&uart0_xfer>, <&uart0_cts>;
|
|
status = "okay";
|
|
};
|
|
|
|
@@ -428,6 +538,8 @@
|
|
};
|
|
|
|
&usb_host0_ehci {
|
|
+
|
|
+ no-relinquish-port;
|
|
status = "okay";
|
|
};
|
|
|
|
@@ -449,13 +561,22 @@
|
|
|
|
&vopl {
|
|
status = "okay";
|
|
+ /* Don't use vopl for hdmi */
|
|
+ vopl_out: port {
|
|
+ /delete-node/ endpoint@0;
|
|
+ };
|
|
};
|
|
|
|
&vopl_mmu {
|
|
status = "okay";
|
|
+
|
|
};
|
|
|
|
-&vpu {
|
|
+&hevc_service {
|
|
+ status = "okay";
|
|
+};
|
|
+
|
|
+&vpu_service {
|
|
status = "okay";
|
|
};
|
|
|
|
@@ -495,6 +616,20 @@
|
|
pmic_int: pmic-int {
|
|
rockchip,pins = <RK_GPIO0 4 RK_FUNC_GPIO &pcfg_pull_up>;
|
|
};
|
|
+ dvs_1: dvs-1 {
|
|
+ rockchip,pins = <RK_GPIO0 11 RK_FUNC_GPIO &pcfg_pull_down>;
|
|
+ };
|
|
+
|
|
+ dvs_2: dvs-2 {
|
|
+ rockchip,pins = <RK_GPIO0 12 RK_FUNC_GPIO &pcfg_pull_down>;
|
|
+ };
|
|
+
|
|
+ };
|
|
+
|
|
+ sdio-pwrseq {
|
|
+ wifi_enable_h: wifi-enable-h {
|
|
+ rockchip,pins = <4 28 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
+ };
|
|
};
|
|
|
|
sdmmc {
|
|
@@ -504,9 +639,9 @@
|
|
*/
|
|
sdmmc_bus4: sdmmc-bus4 {
|
|
rockchip,pins = <6 16 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
|
|
- <6 17 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
|
|
- <6 18 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
|
|
- <6 19 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
|
|
+ <6 17 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
|
|
+ <6 18 RK_FUNC_1 &pcfg_pull_up_drv_8ma>,
|
|
+ <6 19 RK_FUNC_1 &pcfg_pull_up_drv_8ma>;
|
|
};
|
|
|
|
sdmmc_clk: sdmmc-clk {
|
|
@@ -531,4 +666,46 @@
|
|
rockchip,pins = <7 8 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
};
|
|
};
|
|
+
|
|
+ wireless-bluetooth {
|
|
+ uart0_gpios: uart0-gpios {
|
|
+ rockchip,pins = <4 19 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ cam_pins {
|
|
+ cam0_default_pins:cam0_default_pins {
|
|
+ rockchip,pins = <0 17 RK_FUNC_GPIO &pcfg_pull_none>,/*sensor power pin: GPIO0_C1 */
|
|
+ <2 0 RK_FUNC_GPIO &pcfg_pull_none>,/*sensor power down pin: GPIO2_A0*/
|
|
+ <2 11 RK_FUNC_1 &pcfg_pull_none>;/*sensor mclk: cif_clkout*/
|
|
+ };
|
|
+
|
|
+ cam0_sleep_pins:cam0_sleep_pins {
|
|
+ rockchip,pins = <0 17 RK_FUNC_GPIO &pcfg_pull_none>,/*sensor power pin: GPIO0_C1 */
|
|
+ <2 0 RK_FUNC_GPIO &pcfg_pull_none>,/* cif power down pin */
|
|
+ <2 11 RK_FUNC_GPIO &pcfg_pull_none>;/* cif_clkout */
|
|
+ };
|
|
+ };
|
|
+};
|
|
+
|
|
+&dmc {
|
|
+ status = "okay";
|
|
+ logic-supply = <&vdd_log>;
|
|
+ rockchip,odt-disable-freq = <666000000>;
|
|
+ rockchip,dll-disable-freq = <333000000>;
|
|
+ rockchip,sr-enable-freq = <333000000>;
|
|
+ rockchip,auto-self-refresh-cnt = <0>;
|
|
+ rockchip,auto-power-down-cnt = <64>;
|
|
+ rockchip,ddr-speed-bin = <21>;
|
|
+ rockchip,trcd = <10>;
|
|
+ rockchip,trp = <10>;
|
|
+ rockchip,pd-enable-freq = <333000000>;
|
|
+ operating-points = <
|
|
+ /* KHz uV */
|
|
+ 200000 1000000
|
|
+ 333000 1000000
|
|
+ 533000 1000000
|
|
+ >;
|
|
+
|
|
+ #cooling-cells = <2>; /* min followed by max */
|
|
};
|
|
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
|
|
index f65e406..8ef0393 100644
|
|
--- a/arch/arm/boot/dts/rk3288.dtsi
|
|
+++ b/arch/arm/boot/dts/rk3288.dtsi
|
|
@@ -94,23 +94,8 @@
|
|
compatible = "arm,cortex-a12";
|
|
reg = <0x500>;
|
|
resets = <&cru SRST_CORE0>;
|
|
- operating-points = <
|
|
- /* KHz uV */
|
|
- 1608000 1350000
|
|
- 1512000 1300000
|
|
- 1416000 1200000
|
|
- 1200000 1100000
|
|
- 1008000 1050000
|
|
- 816000 1000000
|
|
- 696000 950000
|
|
- 600000 900000
|
|
- 408000 900000
|
|
- 312000 900000
|
|
- 216000 900000
|
|
- 126000 900000
|
|
- >;
|
|
+ operating-points-v2 = <&cpu0_opp_table>;
|
|
#cooling-cells = <2>; /* min followed by max */
|
|
- clock-latency = <40000>;
|
|
clocks = <&cru ARMCLK>;
|
|
};
|
|
cpu1: cpu@501 {
|
|
@@ -118,18 +103,83 @@
|
|
compatible = "arm,cortex-a12";
|
|
reg = <0x501>;
|
|
resets = <&cru SRST_CORE1>;
|
|
+ operating-points-v2 = <&cpu0_opp_table>;
|
|
};
|
|
cpu2: cpu@502 {
|
|
device_type = "cpu";
|
|
compatible = "arm,cortex-a12";
|
|
reg = <0x502>;
|
|
resets = <&cru SRST_CORE2>;
|
|
+ operating-points-v2 = <&cpu0_opp_table>;
|
|
};
|
|
cpu3: cpu@503 {
|
|
device_type = "cpu";
|
|
compatible = "arm,cortex-a12";
|
|
reg = <0x503>;
|
|
resets = <&cru SRST_CORE3>;
|
|
+ operating-points-v2 = <&cpu0_opp_table>;
|
|
+ };
|
|
+ };
|
|
+
|
|
+ cpu0_opp_table: opp_table0 {
|
|
+ compatible = "operating-points-v2";
|
|
+ opp-shared;
|
|
+
|
|
+ opp@126000000 {
|
|
+ opp-hz = /bits/ 64 <126000000>;
|
|
+ opp-microvolt = <900000>;
|
|
+ clock-latency-ns = <40000>;
|
|
+ };
|
|
+ opp@216000000 {
|
|
+ opp-hz = /bits/ 64 <216000000>;
|
|
+ opp-microvolt = <900000>;
|
|
+ clock-latency-ns = <40000>;
|
|
+ };
|
|
+ opp@408000000 {
|
|
+ opp-hz = /bits/ 64 <408000000>;
|
|
+ opp-microvolt = <900000>;
|
|
+ clock-latency-ns = <40000>;
|
|
+ };
|
|
+ opp@600000000 {
|
|
+ opp-hz = /bits/ 64 <600000000>;
|
|
+ opp-microvolt = <900000>;
|
|
+ clock-latency-ns = <40000>;
|
|
+ };
|
|
+ opp@696000000 {
|
|
+ opp-hz = /bits/ 64 <696000000>;
|
|
+ opp-microvolt = <950000>;
|
|
+ clock-latency-ns = <40000>;
|
|
+ };
|
|
+ opp@816000000 {
|
|
+ opp-hz = /bits/ 64 <816000000>;
|
|
+ opp-microvolt = <1000000>;
|
|
+ clock-latency-ns = <40000>;
|
|
+ opp-suspend;
|
|
+ };
|
|
+ opp@1008000000 {
|
|
+ opp-hz = /bits/ 64 <1008000000>;
|
|
+ opp-microvolt = <1050000>;
|
|
+ clock-latency-ns = <40000>;
|
|
+ };
|
|
+ opp@1200000000 {
|
|
+ opp-hz = /bits/ 64 <1200000000>;
|
|
+ opp-microvolt = <1100000>;
|
|
+ clock-latency-ns = <40000>;
|
|
+ };
|
|
+ opp@1416000000 {
|
|
+ opp-hz = /bits/ 64 <1416000000>;
|
|
+ opp-microvolt = <1200000>;
|
|
+ clock-latency-ns = <40000>;
|
|
+ };
|
|
+ opp@1512000000 {
|
|
+ opp-hz = /bits/ 64 <1512000000>;
|
|
+ opp-microvolt = <1300000>;
|
|
+ clock-latency-ns = <40000>;
|
|
+ };
|
|
+ opp@1608000000 {
|
|
+ opp-hz = /bits/ 64 <1608000000>;
|
|
+ opp-microvolt = <1350000>;
|
|
+ clock-latency-ns = <40000>;
|
|
};
|
|
};
|
|
|
|
@@ -549,6 +599,26 @@
|
|
status = "disabled";
|
|
};
|
|
|
|
+ dmc: dmc@ff610000 {
|
|
+ compatible = "rockchip,rk3288-dmc", "syscon";
|
|
+ rockchip,cru = <&cru>;
|
|
+ rockchip,grf = <&grf>;
|
|
+ rockchip,pmu = <&pmu>;
|
|
+ rockchip,sgrf = <&sgrf>;
|
|
+ rockchip,noc = <&noc>;
|
|
+ reg = <0xff610000 0x3fc
|
|
+ 0xff620000 0x294
|
|
+ 0xff630000 0x3fc
|
|
+ 0xff640000 0x294>;
|
|
+ rockchip,sram = <&ddr_sram>;
|
|
+ clocks = <&cru PCLK_DDRUPCTL0>, <&cru PCLK_PUBL0>,
|
|
+ <&cru PCLK_DDRUPCTL1>, <&cru PCLK_PUBL1>,
|
|
+ <&cru ARMCLK>;
|
|
+ clock-names = "pclk_ddrupctl0", "pclk_publ0",
|
|
+ "pclk_ddrupctl1", "pclk_publ1",
|
|
+ "arm_clk";
|
|
+ };
|
|
+
|
|
i2c0: i2c@ff650000 {
|
|
compatible = "rockchip,rk3288-i2c";
|
|
reg = <0xff650000 0x1000>;
|
|
@@ -629,6 +699,10 @@
|
|
compatible = "rockchip,rk3066-smp-sram";
|
|
reg = <0x00 0x10>;
|
|
};
|
|
+ ddr_sram: ddr-sram@1000 {
|
|
+ compatible = "rockchip,rk3288-ddr-sram";
|
|
+ reg = <0x1000 0x4000>;
|
|
+ };
|
|
};
|
|
|
|
sram@ff720000 {
|
|
@@ -636,6 +710,76 @@
|
|
reg = <0xff720000 0x1000>;
|
|
};
|
|
|
|
+ qos_gpu_r: qos@ffaa0000 {
|
|
+ compatible = "syscon";
|
|
+ reg = <0xffaa0000 0x20>;
|
|
+ };
|
|
+
|
|
+ qos_gpu_w: qos@ffaa0080 {
|
|
+ compatible = "syscon";
|
|
+ reg = <0xffaa0080 0x20>;
|
|
+ };
|
|
+
|
|
+ qos_vio1_vop: qos@ffad0000 {
|
|
+ compatible = "syscon";
|
|
+ reg = <0xffad0000 0x20>;
|
|
+ };
|
|
+
|
|
+ qos_vio1_isp_w0: qos@ffad0100 {
|
|
+ compatible = "syscon";
|
|
+ reg = <0xffad0100 0x20>;
|
|
+ };
|
|
+
|
|
+ qos_vio1_isp_w1: qos@ffad0180 {
|
|
+ compatible = "syscon";
|
|
+ reg = <0xffad0180 0x20>;
|
|
+ };
|
|
+
|
|
+ qos_vio0_vop: qos@ffad0400 {
|
|
+ compatible = "syscon";
|
|
+ reg = <0xffad0400 0x20>;
|
|
+ };
|
|
+
|
|
+ qos_vio0_vip: qos@ffad0480 {
|
|
+ compatible = "syscon";
|
|
+ reg = <0xffad0480 0x20>;
|
|
+ };
|
|
+
|
|
+ qos_vio0_iep: qos@ffad0500 {
|
|
+ compatible = "syscon";
|
|
+ reg = <0xffad0500 0x20>;
|
|
+ };
|
|
+
|
|
+ qos_vio2_rga_r: qos@ffad0800 {
|
|
+ compatible = "syscon";
|
|
+ reg = <0xffad0800 0x20>;
|
|
+ };
|
|
+
|
|
+ qos_vio2_rga_w: qos@ffad0880 {
|
|
+ compatible = "syscon";
|
|
+ reg = <0xffad0880 0x20>;
|
|
+ };
|
|
+
|
|
+ qos_vio1_isp_r: qos@ffad0900 {
|
|
+ compatible = "syscon";
|
|
+ reg = <0xffad0900 0x20>;
|
|
+ };
|
|
+
|
|
+ qos_video: qos@ffae0000 {
|
|
+ compatible = "syscon";
|
|
+ reg = <0xffae0000 0x20>;
|
|
+ };
|
|
+
|
|
+ qos_hevc_r: qos@ffaf0000 {
|
|
+ compatible = "syscon";
|
|
+ reg = <0xffaf0000 0x20>;
|
|
+ };
|
|
+
|
|
+ qos_hevc_w: qos@ffaf0080 {
|
|
+ compatible = "syscon";
|
|
+ reg = <0xffaf0080 0x20>;
|
|
+ };
|
|
+
|
|
pmu: power-management@ff730000 {
|
|
compatible = "rockchip,rk3288-pmu", "syscon", "simple-mfd";
|
|
reg = <0xff730000 0x100>;
|
|
@@ -696,6 +840,15 @@
|
|
<&cru SCLK_ISP_JPE>,
|
|
<&cru SCLK_ISP>,
|
|
<&cru SCLK_RGA>;
|
|
+ pm_qos = <&qos_vio0_iep>,
|
|
+ <&qos_vio1_vop>,
|
|
+ <&qos_vio1_isp_w0>,
|
|
+ <&qos_vio1_isp_w1>,
|
|
+ <&qos_vio0_vop>,
|
|
+ <&qos_vio0_vip>,
|
|
+ <&qos_vio2_rga_r>,
|
|
+ <&qos_vio2_rga_w>,
|
|
+ <&qos_vio1_isp_r>;
|
|
};
|
|
|
|
/*
|
|
@@ -707,6 +860,8 @@
|
|
clocks = <&cru ACLK_HEVC>,
|
|
<&cru SCLK_HEVC_CABAC>,
|
|
<&cru SCLK_HEVC_CORE>;
|
|
+ pm_qos = <&qos_hevc_r>,
|
|
+ <&qos_hevc_w>;
|
|
};
|
|
|
|
/*
|
|
@@ -718,6 +873,7 @@
|
|
reg = <RK3288_PD_VIDEO>;
|
|
clocks = <&cru ACLK_VCODEC>,
|
|
<&cru HCLK_VCODEC>;
|
|
+ pm_qos = <&qos_video>;
|
|
};
|
|
|
|
/*
|
|
@@ -727,6 +883,8 @@
|
|
pd_gpu {
|
|
reg = <RK3288_PD_GPU>;
|
|
clocks = <&cru ACLK_GPU>;
|
|
+ pm_qos = <&qos_gpu_r>,
|
|
+ <&qos_gpu_w>;
|
|
};
|
|
};
|
|
|
|
@@ -1056,6 +1214,11 @@
|
|
status = "disabled";
|
|
};
|
|
|
|
+ noc: syscon@ffac0000 {
|
|
+ compatible = "rockchip,rk3288-noc", "syscon";
|
|
+ reg = <0xffac0000 0x2000>;
|
|
+ };
|
|
+
|
|
vpu: video-codec@ff9a0000 {
|
|
compatible = "rockchip,rk3288-vpu";
|
|
reg = <0xff9a0000 0x800>;
|
|
@@ -1071,6 +1234,26 @@
|
|
status = "disabled";
|
|
};
|
|
|
|
+ vpu_service: vpu-service@ff9a0000 {
|
|
+ compatible = "rockchip,vpu_service";
|
|
+ reg = <0xff9a0000 0x800>;
|
|
+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
|
|
+ <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
|
|
+ interrupt-names = "irq_enc", "irq_dec";
|
|
+ clocks = <&cru ACLK_VCODEC>, <&cru HCLK_VCODEC>;
|
|
+ clock-names = "aclk_vcodec", "hclk_vcodec";
|
|
+ power-domains = <&power RK3288_PD_VIDEO>;
|
|
+ rockchip,grf = <&grf>;
|
|
+ resets = <&cru SRST_VCODEC_AXI>, <&cru SRST_VCODEC_AHB>;
|
|
+ reset-names = "video_a", "video_h";
|
|
+ iommus = <&vpu_mmu>;
|
|
+ iommu_enabled = <1>;
|
|
+ dev_mode = <0>;
|
|
+ status = "disabled";
|
|
+ /* 0 means ion, 1 means drm */
|
|
+ allocator = <1>;
|
|
+ };
|
|
+
|
|
vpu_mmu: iommu@ff9a0800 {
|
|
compatible = "rockchip,iommu";
|
|
reg = <0xff9a0800 0x100>;
|
|
@@ -1093,6 +1276,47 @@
|
|
interrupts = <GIC_PPI 9 0xf04>;
|
|
};
|
|
|
|
+ hevc_service: hevc-service@ff9c0000 {
|
|
+ compatible = "rockchip,hevc_service";
|
|
+ reg = <0xff9c0000 0x400>;
|
|
+ interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
|
|
+ interrupt-names = "irq_dec";
|
|
+ clocks = <&cru ACLK_HEVC>, <&cru HCLK_HEVC>,
|
|
+ <&cru SCLK_HEVC_CORE>,
|
|
+ <&cru SCLK_HEVC_CABAC>;
|
|
+ clock-names = "aclk_vcodec", "hclk_vcodec", "clk_core",
|
|
+ "clk_cabac";
|
|
+ /*
|
|
+ * The 4K hevc would also work well with 500/125/300/300,
|
|
+ * no more err irq and reset request.
|
|
+ */
|
|
+ assigned-clocks = <&cru ACLK_HEVC>, <&cru HCLK_HEVC>,
|
|
+ <&cru SCLK_HEVC_CORE>,
|
|
+ <&cru SCLK_HEVC_CABAC>;
|
|
+ assigned-clock-rates = <400000000>, <100000000>,
|
|
+ <300000000>, <300000000>;
|
|
+
|
|
+ resets = <&cru SRST_HEVC>;
|
|
+ reset-names = "video";
|
|
+ power-domains = <&power RK3288_PD_HEVC>;
|
|
+ rockchip,grf = <&grf>;
|
|
+ dev_mode = <1>;
|
|
+ iommus = <&hevc_mmu>;
|
|
+ iommu_enabled = <1>;
|
|
+ status = "disabled";
|
|
+ /* 0 means ion, 1 means drm */
|
|
+ allocator = <1>;
|
|
+ };
|
|
+
|
|
+ hevc_mmu: iommu@ff9c0440 {
|
|
+ compatible = "rockchip,iommu";
|
|
+ reg = <0xff9c0440 0x40>, <0xff9c0480 0x40>;
|
|
+ interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
|
|
+ interrupt-names = "hevc_mmu";
|
|
+ power-domains = <&power RK3288_PD_HEVC>;
|
|
+ #iommu-cells = <0>;
|
|
+ };
|
|
+
|
|
efuse: efuse@ffb40000 {
|
|
compatible = "rockchip,rockchip-efuse";
|
|
reg = <0xffb40000 0x20>;
|
|
@@ -1703,5 +1927,21 @@
|
|
rockchip,pins = <RK_GPIO6 11 RK_FUNC_1 &pcfg_pull_none>;
|
|
};
|
|
};
|
|
+
|
|
+ cif {
|
|
+ cif_dvp_d2d9:cif-dvp-d2d9 {
|
|
+ rockchip,pins = <2 0 RK_FUNC_1 &pcfg_pull_none>,/* cif_data2 */
|
|
+ <2 1 RK_FUNC_1 &pcfg_pull_none>,/* cif_data3 */
|
|
+ <2 2 RK_FUNC_1 &pcfg_pull_none>,/* cif_data4 */
|
|
+ <2 3 RK_FUNC_1 &pcfg_pull_none>,/* cif_data5 */
|
|
+ <2 4 RK_FUNC_1 &pcfg_pull_none>,/* cif_data6 */
|
|
+ <2 5 RK_FUNC_1 &pcfg_pull_none>,/* cif_data7 */
|
|
+ <2 6 RK_FUNC_1 &pcfg_pull_none>,/* cif_data8 */
|
|
+ <2 7 RK_FUNC_1 &pcfg_pull_none>,/* cif_data9 */
|
|
+ <2 8 RK_FUNC_1 &pcfg_pull_none>,/* cif_vsync */
|
|
+ <2 9 RK_FUNC_1 &pcfg_pull_none>,/* cif_href */
|
|
+ <2 11 RK_FUNC_1 &pcfg_pull_none>;/* cif_clkin */
|
|
+ };
|
|
+ };
|
|
};
|
|
};
|