From c2395e66178e6089161a64cd96754af26ec37ea2 Mon Sep 17 00:00:00 2001 From: Caesar Wang Date: Thu, 27 Feb 2020 15:10:25 +0800 Subject: [PATCH] arm64: dts: rockchip: add rk3399 evb ind v11 board support for linux Evb ind is part of a family of boards called rk3399 Industry development. As best as possible, the properties shared by the rk3399 family are placed in rk3399-evb-ind.dtsi, while Evb-linux specific bits are in rk3399-evb-ind-lpddr4-linux.dts. This does not add full support for the base Evb ind board. Working and tested (to some extent): * cluster cpu/gpu support -- including frequency, performance * DVFS: included cpu/gpu/ddr * UART / console * LPDDR4 * TF cards * USB2/USB3 * Thermal * Touchscreen * EDP * Backlight * System Key (ADC and Power keys, including the reset/vol+/recovery/maskrom) * Wifi * Bluetooth / Webcam * eMMC * VIDEO: tested the h264 video source * AUDIO: play and mic music * HDMI Out * GMAC Not tested: * RS485 * CIF * Mini Pcie * IR Receive * Sensor * CAMERA Note: this patch had *not* verified the all functions, it can bringup for v11 board and some basic functions. (included wifi/bt, camera, display, video, usb...and so on.) Change-Id: Ibae4853f4c11d3a269cd3aa96478c45cdb126597 Signed-off-by: Caesar Wang --- .../devicetree/bindings/arm/rockchip.txt | 5 + arch/arm64/boot/dts/rockchip/Makefile | 1 + .../rockchip/rk3399-evb-ind-lpddr4-linux.dts | 197 ++++++++++++++++++ 3 files changed, 203 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-evb-ind-lpddr4-linux.dts diff --git a/Documentation/devicetree/bindings/arm/rockchip.txt b/Documentation/devicetree/bindings/arm/rockchip.txt index e4832f198bc3..3f8b3611f339 100644 --- a/Documentation/devicetree/bindings/arm/rockchip.txt +++ b/Documentation/devicetree/bindings/arm/rockchip.txt @@ -206,6 +206,11 @@ Rockchip platforms device tree bindings Required root node properties: - compatible = "rockchip,rk3399-evb", "rockchip,rk3399"; +- Rockchip RK3399 evb ind board (Linux): + Required root node properties: + - compatible = "rockchip,linux", "rockchip,rk3399"; + - compatible = "rockchip,rk3399-evb-ind-lpddr4-linux"; + - Rockchip RK3399 Sapphire board standalone: Required root node properties: - compatible = "rockchip,rk3399-sapphire", "rockchip,rk3399"; diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index 53189e88dec1..d21e5120c9fe 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -50,6 +50,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3368-tablet.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb-ind-lpddr4-android.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb-ind-lpddr4-android-avb.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-evb-ind-lpddr4-linux.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-ficus.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-firefly.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou.dtb diff --git a/arch/arm64/boot/dts/rockchip/rk3399-evb-ind-lpddr4-linux.dts b/arch/arm64/boot/dts/rockchip/rk3399-evb-ind-lpddr4-linux.dts new file mode 100644 index 000000000000..51ec35ce86ed --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3399-evb-ind-lpddr4-linux.dts @@ -0,0 +1,197 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2019-2020 Fuzhou Rockchip Electronics Co., Ltd. + */ + +/dts-v1/; + +#include "rk3399-evb-ind.dtsi" +#include "rk3399-linux.dtsi" + +/ { + model = "Rockchip RK3399 EVB IND LPDDR4 Board edp (Linux)"; + compatible = "rockchip,linux", "rockchip,rk3399-evb-ind-lpddr4-linux", "rockchip,rk3399"; + + iram: sram@ff8d0000 { + compatible = "mmio-sram"; + reg = <0x0 0xff8d0000 0x0 0x20000>; + }; + + vcc_lcd: vcc-lcd { + compatible = "regulator-fixed"; + regulator-name = "vcc_lcd"; + startup-delay-us = <20000>; + enable-active-high; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-boot-on; + vin-supply = <&vcc5v0_sys>; + }; + + panel: panel { + compatible = "simple-panel"; + backlight = <&backlight>; + power-supply = <&vcc_lcd>; + reset-gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; + prepare-delay-ms = <20>; + enable-delay-ms = <20>; + + display-timings { + native-mode = <&timing0>; + + timing0: timing0 { + clock-frequency = <200000000>; + hactive = <1536>; + vactive = <2048>; + hfront-porch = <12>; + hsync-len = <16>; + hback-porch = <48>; + vfront-porch = <8>; + vsync-len = <4>; + vback-porch = <8>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <0>; + pixelclk-active = <0>; + }; + }; + + ports { + panel_in: endpoint { + remote-endpoint = <&edp_out>; + }; + }; + }; + + test-power { + status = "okay"; + }; +}; + +&backlight { + enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>; +}; + +&display_subsystem { + status = "okay"; +}; + +&dmac_bus { + iram = <&iram>; + rockchip,force-iram; +}; + +&dp_sound { + status = "disabled"; +}; + +&edp { + status = "okay"; + force-hpd; + + ports { + port@1 { + reg = <1>; + + edp_out: endpoint { + remote-endpoint = <&panel_in>; + }; + }; + }; +}; + +&edp_in_vopb { + status = "disabled"; +}; + +&hdmi { + pinctrl-names = "default"; + pinctrl-0 = <&hdmi_i2c_xfer>, <&hdmi_cec>; + #address-cells = <1>; + #size-cells = <0>; + #sound-dai-cells = <0>; + status = "okay"; +}; + +&hdmi_in_vopl { + status = "disabled"; +}; + +&i2s0 { + #sound-dai-cells = <0>; + status = "okay"; +}; + +&i2s1 { + #sound-dai-cells = <0>; + status = "disabled"; +}; + +&i2s2 { + #sound-dai-cells = <0>; + status = "okay"; +}; + +&hdmi_sound { + status = "okay"; +}; + +&iep { + status = "okay"; +}; + +&iep_mmu { + status = "okay"; +}; + +&rk809_sound { + status = "okay"; +}; + +&route_edp { + status = "okay"; +}; + +/* + * if enable dp_sound, should disable spdif_sound and spdif_out + */ +&spdif_out { + status = "disabled"; +}; + +&spdif_sound { + status = "disabled"; +}; + +&tc358749x_sound { + status = "disabled"; +}; + +&vopb { + status = "okay"; +}; + +&vopb_mmu { + status = "okay"; +}; + +&vopl { + status = "okay"; +}; + +&vopl_mmu { + status = "okay"; +}; + +&pinctrl { + lcd-panel { + lcd_panel_reset: lcd-panel-reset { + rockchip,pins = <1 23 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; +}; + +/* DON'T PUT ANYTHING BELOW HERE. PUT IT ABOVE PINCTRL */ +/* DON'T PUT ANYTHING BELOW HERE. PUT IT ABOVE PINCTRL */ +/* DON'T PUT ANYTHING BELOW HERE. PUT IT ABOVE PINCTRL */ +