|
@@ -45,6 +45,7 @@
|
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
|
#include <dt-bindings/pinctrl/rockchip.h>
|
|
|
+#include <dt-bindings/thermal/thermal.h>
|
|
|
|
|
|
/ {
|
|
|
compatible = "rockchip,rk3399";
|
|
@@ -54,6 +55,15 @@
|
|
|
#size-cells = <2>;
|
|
|
|
|
|
aliases {
|
|
|
+ i2c0 = &i2c0;
|
|
|
+ i2c1 = &i2c1;
|
|
|
+ i2c2 = &i2c2;
|
|
|
+ i2c3 = &i2c3;
|
|
|
+ i2c4 = &i2c4;
|
|
|
+ i2c5 = &i2c5;
|
|
|
+ i2c6 = &i2c6;
|
|
|
+ i2c7 = &i2c7;
|
|
|
+ i2c8 = &i2c8;
|
|
|
serial0 = &uart0;
|
|
|
serial1 = &uart1;
|
|
|
serial2 = &uart2;
|
|
@@ -215,6 +225,22 @@
|
|
|
status = "disabled";
|
|
|
};
|
|
|
|
|
|
+ sdhci: sdhci@fe330000 {
|
|
|
+ compatible = "rockchip,rk3399-sdhci-5.1", "arasan,sdhci-5.1";
|
|
|
+ reg = <0x0 0xfe330000 0x0 0x10000>;
|
|
|
+ interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
+ arasan,soc-ctl-syscon = <&grf>;
|
|
|
+ assigned-clocks = <&cru SCLK_EMMC>;
|
|
|
+ assigned-clock-rates = <200000000>;
|
|
|
+ clocks = <&cru SCLK_EMMC>, <&cru ACLK_EMMC>;
|
|
|
+ clock-names = "clk_xin", "clk_ahb";
|
|
|
+ clock-output-names = "emmc_cardclock";
|
|
|
+ #clock-cells = <0>;
|
|
|
+ phys = <&emmc_phy>;
|
|
|
+ phy-names = "phy_arasan";
|
|
|
+ status = "disabled";
|
|
|
+ };
|
|
|
+
|
|
|
usb_host0_ehci: usb@fe380000 {
|
|
|
compatible = "generic-ehci";
|
|
|
reg = <0x0 0xfe380000 0x0 0x20000>;
|
|
@@ -272,6 +298,96 @@
|
|
|
};
|
|
|
};
|
|
|
|
|
|
+ i2c1: i2c@ff110000 {
|
|
|
+ compatible = "rockchip,rk3399-i2c";
|
|
|
+ reg = <0x0 0xff110000 0x0 0x1000>;
|
|
|
+ assigned-clocks = <&cru SCLK_I2C1>;
|
|
|
+ assigned-clock-rates = <200000000>;
|
|
|
+ clocks = <&cru SCLK_I2C1>, <&cru PCLK_I2C1>;
|
|
|
+ clock-names = "i2c", "pclk";
|
|
|
+ interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
+ pinctrl-names = "default";
|
|
|
+ pinctrl-0 = <&i2c1_xfer>;
|
|
|
+ #address-cells = <1>;
|
|
|
+ #size-cells = <0>;
|
|
|
+ status = "disabled";
|
|
|
+ };
|
|
|
+
|
|
|
+ i2c2: i2c@ff120000 {
|
|
|
+ compatible = "rockchip,rk3399-i2c";
|
|
|
+ reg = <0x0 0xff120000 0x0 0x1000>;
|
|
|
+ assigned-clocks = <&cru SCLK_I2C2>;
|
|
|
+ assigned-clock-rates = <200000000>;
|
|
|
+ clocks = <&cru SCLK_I2C2>, <&cru PCLK_I2C2>;
|
|
|
+ clock-names = "i2c", "pclk";
|
|
|
+ interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
+ pinctrl-names = "default";
|
|
|
+ pinctrl-0 = <&i2c2_xfer>;
|
|
|
+ #address-cells = <1>;
|
|
|
+ #size-cells = <0>;
|
|
|
+ status = "disabled";
|
|
|
+ };
|
|
|
+
|
|
|
+ i2c3: i2c@ff130000 {
|
|
|
+ compatible = "rockchip,rk3399-i2c";
|
|
|
+ reg = <0x0 0xff130000 0x0 0x1000>;
|
|
|
+ assigned-clocks = <&cru SCLK_I2C3>;
|
|
|
+ assigned-clock-rates = <200000000>;
|
|
|
+ clocks = <&cru SCLK_I2C3>, <&cru PCLK_I2C3>;
|
|
|
+ clock-names = "i2c", "pclk";
|
|
|
+ interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
+ pinctrl-names = "default";
|
|
|
+ pinctrl-0 = <&i2c3_xfer>;
|
|
|
+ #address-cells = <1>;
|
|
|
+ #size-cells = <0>;
|
|
|
+ status = "disabled";
|
|
|
+ };
|
|
|
+
|
|
|
+ i2c5: i2c@ff140000 {
|
|
|
+ compatible = "rockchip,rk3399-i2c";
|
|
|
+ reg = <0x0 0xff140000 0x0 0x1000>;
|
|
|
+ assigned-clocks = <&cru SCLK_I2C5>;
|
|
|
+ assigned-clock-rates = <200000000>;
|
|
|
+ clocks = <&cru SCLK_I2C5>, <&cru PCLK_I2C5>;
|
|
|
+ clock-names = "i2c", "pclk";
|
|
|
+ interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
+ pinctrl-names = "default";
|
|
|
+ pinctrl-0 = <&i2c5_xfer>;
|
|
|
+ #address-cells = <1>;
|
|
|
+ #size-cells = <0>;
|
|
|
+ status = "disabled";
|
|
|
+ };
|
|
|
+
|
|
|
+ i2c6: i2c@ff150000 {
|
|
|
+ compatible = "rockchip,rk3399-i2c";
|
|
|
+ reg = <0x0 0xff150000 0x0 0x1000>;
|
|
|
+ assigned-clocks = <&cru SCLK_I2C6>;
|
|
|
+ assigned-clock-rates = <200000000>;
|
|
|
+ clocks = <&cru SCLK_I2C6>, <&cru PCLK_I2C6>;
|
|
|
+ clock-names = "i2c", "pclk";
|
|
|
+ interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
+ pinctrl-names = "default";
|
|
|
+ pinctrl-0 = <&i2c6_xfer>;
|
|
|
+ #address-cells = <1>;
|
|
|
+ #size-cells = <0>;
|
|
|
+ status = "disabled";
|
|
|
+ };
|
|
|
+
|
|
|
+ i2c7: i2c@ff160000 {
|
|
|
+ compatible = "rockchip,rk3399-i2c";
|
|
|
+ reg = <0x0 0xff160000 0x0 0x1000>;
|
|
|
+ assigned-clocks = <&cru SCLK_I2C7>;
|
|
|
+ assigned-clock-rates = <200000000>;
|
|
|
+ clocks = <&cru SCLK_I2C7>, <&cru PCLK_I2C7>;
|
|
|
+ clock-names = "i2c", "pclk";
|
|
|
+ interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
+ pinctrl-names = "default";
|
|
|
+ pinctrl-0 = <&i2c7_xfer>;
|
|
|
+ #address-cells = <1>;
|
|
|
+ #size-cells = <0>;
|
|
|
+ status = "disabled";
|
|
|
+ };
|
|
|
+
|
|
|
uart0: serial@ff180000 {
|
|
|
compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart";
|
|
|
reg = <0x0 0xff180000 0x0 0x100>;
|
|
@@ -389,9 +505,105 @@
|
|
|
status = "disabled";
|
|
|
};
|
|
|
|
|
|
+ thermal-zones {
|
|
|
+ cpu_thermal: cpu {
|
|
|
+ polling-delay-passive = <100>;
|
|
|
+ polling-delay = <1000>;
|
|
|
+
|
|
|
+ thermal-sensors = <&tsadc 0>;
|
|
|
+
|
|
|
+ trips {
|
|
|
+ cpu_alert0: cpu_alert0 {
|
|
|
+ temperature = <70000>;
|
|
|
+ hysteresis = <2000>;
|
|
|
+ type = "passive";
|
|
|
+ };
|
|
|
+ cpu_alert1: cpu_alert1 {
|
|
|
+ temperature = <75000>;
|
|
|
+ hysteresis = <2000>;
|
|
|
+ type = "passive";
|
|
|
+ };
|
|
|
+ cpu_crit: cpu_crit {
|
|
|
+ temperature = <95000>;
|
|
|
+ hysteresis = <2000>;
|
|
|
+ type = "critical";
|
|
|
+ };
|
|
|
+ };
|
|
|
+
|
|
|
+ cooling-maps {
|
|
|
+ map0 {
|
|
|
+ trip = <&cpu_alert0>;
|
|
|
+ cooling-device =
|
|
|
+ <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
|
|
+ };
|
|
|
+ map1 {
|
|
|
+ trip = <&cpu_alert1>;
|
|
|
+ cooling-device =
|
|
|
+ <&cpu_l0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
|
|
|
+ <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
|
|
+ };
|
|
|
+ };
|
|
|
+ };
|
|
|
+
|
|
|
+ gpu_thermal: gpu {
|
|
|
+ polling-delay-passive = <100>;
|
|
|
+ polling-delay = <1000>;
|
|
|
+
|
|
|
+ thermal-sensors = <&tsadc 1>;
|
|
|
+
|
|
|
+ trips {
|
|
|
+ gpu_alert0: gpu_alert0 {
|
|
|
+ temperature = <75000>;
|
|
|
+ hysteresis = <2000>;
|
|
|
+ type = "passive";
|
|
|
+ };
|
|
|
+ gpu_crit: gpu_crit {
|
|
|
+ temperature = <95000>;
|
|
|
+ hysteresis = <2000>;
|
|
|
+ type = "critical";
|
|
|
+ };
|
|
|
+ };
|
|
|
+
|
|
|
+ cooling-maps {
|
|
|
+ map0 {
|
|
|
+ trip = <&gpu_alert0>;
|
|
|
+ cooling-device =
|
|
|
+ <&cpu_b0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|
|
|
+ };
|
|
|
+ };
|
|
|
+ };
|
|
|
+ };
|
|
|
+
|
|
|
+ tsadc: tsadc@ff260000 {
|
|
|
+ compatible = "rockchip,rk3399-tsadc";
|
|
|
+ reg = <0x0 0xff260000 0x0 0x100>;
|
|
|
+ interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
+ assigned-clocks = <&cru SCLK_TSADC>;
|
|
|
+ assigned-clock-rates = <750000>;
|
|
|
+ clocks = <&cru SCLK_TSADC>, <&cru PCLK_TSADC>;
|
|
|
+ clock-names = "tsadc", "apb_pclk";
|
|
|
+ resets = <&cru SRST_TSADC>;
|
|
|
+ reset-names = "tsadc-apb";
|
|
|
+ rockchip,grf = <&grf>;
|
|
|
+ rockchip,hw-tshut-temp = <95000>;
|
|
|
+ pinctrl-names = "init", "default", "sleep";
|
|
|
+ pinctrl-0 = <&otp_gpio>;
|
|
|
+ pinctrl-1 = <&otp_out>;
|
|
|
+ pinctrl-2 = <&otp_gpio>;
|
|
|
+ #thermal-sensor-cells = <1>;
|
|
|
+ status = "disabled";
|
|
|
+ };
|
|
|
+
|
|
|
pmugrf: syscon@ff320000 {
|
|
|
- compatible = "rockchip,rk3399-pmugrf", "syscon";
|
|
|
+ compatible = "rockchip,rk3399-pmugrf", "syscon", "simple-mfd";
|
|
|
reg = <0x0 0xff320000 0x0 0x1000>;
|
|
|
+ #address-cells = <1>;
|
|
|
+ #size-cells = <1>;
|
|
|
+
|
|
|
+ pmu_io_domains: io-domains {
|
|
|
+ compatible = "rockchip,rk3399-pmu-io-voltage-domain";
|
|
|
+ status = "disabled";
|
|
|
+ };
|
|
|
};
|
|
|
|
|
|
spi3: spi@ff350000 {
|
|
@@ -420,6 +632,51 @@
|
|
|
status = "disabled";
|
|
|
};
|
|
|
|
|
|
+ i2c0: i2c@ff3c0000 {
|
|
|
+ compatible = "rockchip,rk3399-i2c";
|
|
|
+ reg = <0x0 0xff3c0000 0x0 0x1000>;
|
|
|
+ assigned-clocks = <&pmucru SCLK_I2C0_PMU>;
|
|
|
+ assigned-clock-rates = <200000000>;
|
|
|
+ clocks = <&pmucru SCLK_I2C0_PMU>, <&pmucru PCLK_I2C0_PMU>;
|
|
|
+ clock-names = "i2c", "pclk";
|
|
|
+ interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
+ pinctrl-names = "default";
|
|
|
+ pinctrl-0 = <&i2c0_xfer>;
|
|
|
+ #address-cells = <1>;
|
|
|
+ #size-cells = <0>;
|
|
|
+ status = "disabled";
|
|
|
+ };
|
|
|
+
|
|
|
+ i2c4: i2c@ff3d0000 {
|
|
|
+ compatible = "rockchip,rk3399-i2c";
|
|
|
+ reg = <0x0 0xff3d0000 0x0 0x1000>;
|
|
|
+ assigned-clocks = <&pmucru SCLK_I2C4_PMU>;
|
|
|
+ assigned-clock-rates = <200000000>;
|
|
|
+ clocks = <&pmucru SCLK_I2C4_PMU>, <&pmucru PCLK_I2C4_PMU>;
|
|
|
+ clock-names = "i2c", "pclk";
|
|
|
+ interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
+ pinctrl-names = "default";
|
|
|
+ pinctrl-0 = <&i2c4_xfer>;
|
|
|
+ #address-cells = <1>;
|
|
|
+ #size-cells = <0>;
|
|
|
+ status = "disabled";
|
|
|
+ };
|
|
|
+
|
|
|
+ i2c8: i2c@ff3e0000 {
|
|
|
+ compatible = "rockchip,rk3399-i2c";
|
|
|
+ reg = <0x0 0xff3e0000 0x0 0x1000>;
|
|
|
+ assigned-clocks = <&pmucru SCLK_I2C8_PMU>;
|
|
|
+ assigned-clock-rates = <200000000>;
|
|
|
+ clocks = <&pmucru SCLK_I2C8_PMU>, <&pmucru PCLK_I2C8_PMU>;
|
|
|
+ clock-names = "i2c", "pclk";
|
|
|
+ interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
|
|
|
+ pinctrl-names = "default";
|
|
|
+ pinctrl-0 = <&i2c8_xfer>;
|
|
|
+ #address-cells = <1>;
|
|
|
+ #size-cells = <0>;
|
|
|
+ status = "disabled";
|
|
|
+ };
|
|
|
+
|
|
|
pwm0: pwm@ff420000 {
|
|
|
compatible = "rockchip,rk3399-pwm", "rockchip,rk3288-pwm";
|
|
|
reg = <0x0 0xff420000 0x0 0x10>;
|
|
@@ -478,11 +735,43 @@
|
|
|
reg = <0x0 0xff760000 0x0 0x1000>;
|
|
|
#clock-cells = <1>;
|
|
|
#reset-cells = <1>;
|
|
|
+ assigned-clocks =
|
|
|
+ <&cru PLL_GPLL>, <&cru PLL_CPLL>,
|
|
|
+ <&cru PLL_NPLL>,
|
|
|
+ <&cru ACLK_PERIHP>, <&cru HCLK_PERIHP>,
|
|
|
+ <&cru PCLK_PERIHP>,
|
|
|
+ <&cru ACLK_PERILP0>, <&cru HCLK_PERILP0>,
|
|
|
+ <&cru PCLK_PERILP0>,
|
|
|
+ <&cru HCLK_PERILP1>, <&cru PCLK_PERILP1>;
|
|
|
+ assigned-clock-rates =
|
|
|
+ <594000000>, <800000000>,
|
|
|
+ <1000000000>,
|
|
|
+ <150000000>, <75000000>,
|
|
|
+ <37500000>,
|
|
|
+ <100000000>, <100000000>,
|
|
|
+ <50000000>,
|
|
|
+ <100000000>, <50000000>;
|
|
|
};
|
|
|
|
|
|
grf: syscon@ff770000 {
|
|
|
- compatible = "rockchip,rk3399-grf", "syscon";
|
|
|
+ compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
|
|
|
reg = <0x0 0xff770000 0x0 0x10000>;
|
|
|
+ #address-cells = <1>;
|
|
|
+ #size-cells = <1>;
|
|
|
+
|
|
|
+ io_domains: io-domains {
|
|
|
+ compatible = "rockchip,rk3399-io-voltage-domain";
|
|
|
+ status = "disabled";
|
|
|
+ };
|
|
|
+
|
|
|
+ emmc_phy: phy@f780 {
|
|
|
+ compatible = "rockchip,rk3399-emmc-phy";
|
|
|
+ reg = <0xf780 0x24>;
|
|
|
+ clocks = <&sdhci>;
|
|
|
+ clock-names = "emmcclk";
|
|
|
+ #phy-cells = <0>;
|
|
|
+ status = "disabled";
|
|
|
+ };
|
|
|
};
|
|
|
|
|
|
watchdog@ff840000 {
|
|
@@ -756,6 +1045,16 @@
|
|
|
};
|
|
|
};
|
|
|
|
|
|
+ sleep {
|
|
|
+ ap_pwroff: ap-pwroff {
|
|
|
+ rockchip,pins = <1 5 RK_FUNC_1 &pcfg_pull_none>;
|
|
|
+ };
|
|
|
+
|
|
|
+ ddrio_pwroff: ddrio-pwroff {
|
|
|
+ rockchip,pins = <0 1 RK_FUNC_1 &pcfg_pull_none>;
|
|
|
+ };
|
|
|
+ };
|
|
|
+
|
|
|
spdif {
|
|
|
spdif_bus: spdif-bus {
|
|
|
rockchip,pins =
|
|
@@ -881,6 +1180,16 @@
|
|
|
};
|
|
|
};
|
|
|
|
|
|
+ tsadc {
|
|
|
+ otp_gpio: otp-gpio {
|
|
|
+ rockchip,pins = <1 6 RK_FUNC_GPIO &pcfg_pull_none>;
|
|
|
+ };
|
|
|
+
|
|
|
+ otp_out: otp-out {
|
|
|
+ rockchip,pins = <1 6 RK_FUNC_1 &pcfg_pull_none>;
|
|
|
+ };
|
|
|
+ };
|
|
|
+
|
|
|
uart0 {
|
|
|
uart0_xfer: uart0-xfer {
|
|
|
rockchip,pins =
|