mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 12:17:12 +09:00
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:
@@ -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";
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 */
|
||||
Reference in New Issue
Block a user