arm64: dts: rockchip: add rk3399-sapphire-excavator-v10-linux.dts

The early (RK_EXCAVATOR_MAIN_V10_20160627) v10 board had some hardware
issues, for example, pwm regulator even a small miscalculation by hardware
and the emmc can't work on hs400 mode. But there still have someone used
the old v10 boards on their hands.

Anyway, that should support the old v10 board with this patch.

Change-Id: If80d890ba713b8dc2893aba406a75af18c0fea03
Signed-off-by: Caesar Wang <wxt@rock-chips.com>
This commit is contained in:
Caesar Wang
2019-07-05 10:46:24 +08:00
parent a7481ed1f0
commit 225ab9d405
3 changed files with 445 additions and 0 deletions

View File

@@ -123,6 +123,11 @@ Rockchip platforms device tree bindings
Required root node properties:
- compatible = "rockchip,android", "rockchip,rk3399-excavator-edp-avb", "rockchip,rk3399";
- Rockchip RK3399 Excavator Board (Linux):
Required root node properties:
- compatible = "rockchip,linux", "rockchip,rk3399";
- compatible = "rockchip,rk3399-excavator-linux", "rockchip,rk3399-excavator-v10-linux";
- Rockchip RK3399pro evb:
Required root node properties:
- compatible = "rockchip,rk3399pro-evb-v10", "rockchip,rk3399pro";

View File

@@ -106,6 +106,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator-edp.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator-edp-avb.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator-edp-avb-rk1608.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator-linux.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator-v10-linux.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator-linux-for-rk1808-cascade.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-tve1030g.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-tve1030g-avb.dtb

View File

@@ -0,0 +1,439 @@
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2019 Fuzhou Rockchip Electronics Co., Ltd
*/
/dts-v1/;
#include "rk3399-excavator-sapphire.dtsi"
#include "rk3399-linux.dtsi"
#include <dt-bindings/input/input.h>
/ {
model = "Rockchip RK3399 Excavator Board (Linux Opensource)";
compatible = "rockchip,rk3399-excavator-v10-linux", "rockchip,rk3399";
vcc_lcd: vcc-lcd {
compatible = "regulator-fixed";
regulator-name = "vcc_lcd";
gpio = <&gpio4 30 GPIO_ACTIVE_HIGH>;
startup-delay-us = <20000>;
enable-active-high;
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-boot-on;
vin-supply = <&vcc5v0_sys>;
};
vccadc_ref: vccadc-ref {
compatible = "regulator-fixed";
regulator-name = "vcc1v8_sys";
regulator-always-on;
regulator-boot-on;
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
};
adc_keys: adc-keys {
compatible = "adc-keys";
io-channels = <&saradc 1>;
io-channel-names = "buttons";
poll-interval = <100>;
keyup-threshold-microvolt = <1800000>;
esc-key {
linux,code = <KEY_ESC>;
label = "esc";
press-threshold-microvolt = <1310000>;
};
menu-key {
linux,code = <KEY_MENU>;
label = "menu";
press-threshold-microvolt = <987000>;
};
vol-down-key {
linux,code = <KEY_VOLUMEDOWN>;
label = "volume down";
press-threshold-microvolt = <300000>;
};
vol-up-key {
linux,code = <KEY_VOLUMEUP>;
label = "volume up";
press-threshold-microvolt = <17000>;
};
};
gpio_keys: gpio-keys {
compatible = "gpio-keys";
#address-cells = <1>;
#size-cells = <0>;
autorepeat;
pinctrl-names = "default";
pinctrl-0 = <&pwrbtn>;
button@0 {
gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
linux,code = <KEY_POWER>;
label = "GPIO Key Power";
linux,input-type = <1>;
gpio-key,wakeup = <1>;
debounce-interval = <100>;
};
};
panel: panel {
compatible = "simple-panel";
backlight = <&backlight>;
power-supply = <&vcc_lcd>;
enable-gpios = <&gpio1 13 GPIO_ACTIVE_HIGH>;
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>;
};
};
};
ext_cam_clk: external-camera-clock {
compatible = "fixed-clock";
clock-frequency = <27000000>;
clock-output-names = "CLK_CAMERA_27MHZ";
#clock-cells = <0>;
};
test_power: test-power {
status = "okay";
};
};
&backlight {
status = "okay";
enable-gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
};
&display_subsystem {
status = "okay";
};
&edp {
status = "okay";
force-hpd;
ports {
port@1 {
reg = <1>;
edp_out: endpoint {
remote-endpoint = <&panel_in>;
};
};
};
};
&edp_in_vopl {
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_vopb {
status = "disabled";
};
&i2c1 {
status = "okay";
gsl3673: gsl3673@40 {
compatible = "GSL,GSL3673";
reg = <0x40>;
screen_max_x = <1536>;
screen_max_y = <2048>;
irq_gpio_number = <&gpio1 20 IRQ_TYPE_LEVEL_LOW>;
rst_gpio_number = <&gpio4 22 GPIO_ACTIVE_HIGH>;
};
tc358749x: tc358749x@f {
compatible = "toshiba,tc358749";
reg = <0xf>;
clocks = <&ext_cam_clk>;
clock-names = "refclk";
reset-gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
/* hardware irq-pin is dangling
* connect it to other gpio then configurate follow interrupt
* or del config just using software poll
*/
//interrupt-parent = <&gpio2>;
//interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&hdmiin_gpios>;
status = "disabled";
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "default";
rockchip,camera-module-lens-name = "default";
port {
hdmiin_out0: endpoint {
/* Unlinked mipi dphy rx0 */
//remote-endpoint = <&mipi_in_ucam0>;
data-lanes = <1 2 3 4>;
clock-noncontinuous;
link-frequencies =
/bits/ 64 <297000000>;
};
};
};
vm149c: vm149c@0c {
compatible = "silicon touch,vm149c";
status = "okay";
reg = <0x0c>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
};
ov13850: ov13850@10 {
compatible = "ovti,ov13850";
status = "okay";
reg = <0x10>;
clocks = <&cru SCLK_CIF_OUT>;
clock-names = "xvclk";
/* conflict with csi-ctl-gpios */
reset-gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
pwdn-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
pinctrl-names = "rockchip,camera_default";
pinctrl-0 = <&cif_clkout>;
rockchip,camera-module-index = <0>;
rockchip,camera-module-facing = "back";
rockchip,camera-module-name = "CMK-CT0116";
rockchip,camera-module-lens-name = "Largan-50013A1";
lens-focus = <&vm149c>;
port {
ucam_out0: endpoint {
remote-endpoint = <&mipi_in_ucam0>;
data-lanes = <1 2>;
};
};
};
};
&i2c4 {
status = "okay";
};
&isp0_mmu {
status = "okay";
};
&isp1_mmu {
status = "okay";
};
&mipi_dphy_rx0 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi_in_ucam0: endpoint@1 {
reg = <1>;
remote-endpoint = <&ucam_out0>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
dphy_rx0_out: endpoint@0 {
reg = <0>;
remote-endpoint = <&isp0_mipi_in>;
};
};
};
};
&mipi_dphy_tx1rx1 {
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
#address-cells = <1>;
#size-cells = <0>;
mipi_in_ucam1: endpoint@1 {
reg = <1>;
/* Unlinked camera */
//remote-endpoint = <&ucam_out1>;
data-lanes = <1 2>;
};
};
port@1 {
reg = <1>;
#address-cells = <1>;
#size-cells = <0>;
dphy_tx1rx1_out: endpoint@0 {
reg = <0>;
remote-endpoint = <&isp1_mipi_in>;
};
};
};
};
&pcie_phy {
status = "okay";
};
&pcie0 {
status = "okay";
};
&rkisp1_0 {
status = "okay";
port {
#address-cells = <1>;
#size-cells = <0>;
isp0_mipi_in: endpoint@0 {
reg = <0>;
remote-endpoint = <&dphy_rx0_out>;
};
};
};
&rkisp1_1 {
status = "okay";
port {
#address-cells = <1>;
#size-cells = <0>;
isp1_mipi_in: endpoint@0 {
reg = <0>;
remote-endpoint = <&dphy_tx1rx1_out>;
};
};
};
&route_edp {
status = "okay";
};
&rt5651_sound {
compatible = "rockchip,multicodecs-card";
rockchip,card-name = "rockchip,rt5651-codec";
rockchip,codec-hp-det;
rockchip,mclk-fs = <256>;
rockchip,cpu = <&i2s0>;
rockchip,codec = <&rt5651>;
};
&saradc {
vref-supply = <&vccadc_ref>;
};
/* HACK: the eayly v10 board can't run the hs400 */
&sdhci {
/delete-property/mmc-hs400-1_8v;
/delete-property/mmc-hs400-enhanced-strobe;
};
/* HACK: the eayly v10 board had the error hardware design by pwm regulator */
&vdd_log {
regulator-max-microvolt = <1000000>;
};
&vopb {
assigned-clocks = <&cru DCLK_VOP0_DIV>;
assigned-clock-parents = <&cru PLL_CPLL>;
status = "okay";
};
&vopb_mmu {
status = "okay";
};
&vopl {
assigned-clocks = <&cru DCLK_VOP0_DIV>;
assigned-clock-parents = <&cru PLL_CPLL>;
status = "okay";
};
&vopl_mmu {
status = "okay";
};
&pinctrl {
buttons {
pwrbtn: pwrbtn {
rockchip,pins = <0 5 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
hdmiin {
hdmiin_gpios: hdmiin-gpios {
rockchip,pins =
<2 5 RK_FUNC_GPIO &pcfg_output_high>,
<2 6 RK_FUNC_GPIO &pcfg_output_high>,
<2 7 RK_FUNC_GPIO &pcfg_pull_none>,
<2 8 RK_FUNC_GPIO &pcfg_output_high>,
<2 9 RK_FUNC_GPIO &pcfg_output_high>,
<2 10 RK_FUNC_GPIO &pcfg_output_low>,
<2 12 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};
/* 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 */