1
0
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

498 lines
8.9 KiB

// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
// Copyright (c) 2020 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-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>;
};
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>;
};
};
};
hdmi_sound: hdmi-sound {
status = "okay";
};
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>;
};
};
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>;
};
ext_cam_clk: external-camera-clock {
compatible = "fixed-clock";
clock-frequency = <27000000>;
clock-output-names = "CLK_CAMERA_27MHZ";
#clock-cells = <0>;
};
adc-keys {
compatible = "adc-keys";
io-channels = <&saradc 1>;
io-channel-names = "buttons";
poll-interval = <100>;
keyup-threshold-microvolt = <1800000>;
button-up {
label = "Volume Up";
linux,code = <KEY_VOLUMEUP>;
press-threshold-microvolt = <100000>;
};
button-down {
label = "Volume Down";
linux,code = <KEY_VOLUMEDOWN>;
press-threshold-microvolt = <300000>;
};
back {
label = "Back";
linux,code = <KEY_BACK>;
press-threshold-microvolt = <985000>;
};
menu {
label = "Menu";
linux,code = <KEY_MENU>;
press-threshold-microvolt = <1314000>;
};
};
};
&dfi {
status = "okay";
};
&dmc {
status = "okay";
center-supply = <&vdd_center>;
upthreshold = <40>;
downdifferential = <20>;
system-status-freq = <
/*system status freq(KHz)*/
SYS_STATUS_NORMAL 856000
SYS_STATUS_REBOOT 856000
SYS_STATUS_SUSPEND 328000
SYS_STATUS_VIDEO_1080P 666000
SYS_STATUS_VIDEO_4K 856000
SYS_STATUS_VIDEO_4K_10B 856000
SYS_STATUS_PERFORMANCE 856000
SYS_STATUS_BOOST 856000
SYS_STATUS_DUALVIEW 856000
SYS_STATUS_ISP 856000
>;
vop-bw-dmc-freq = <
/* min_bw(MB/s) max_bw(MB/s) freq(KHz) */
0 762 416000
763 3012 666000
3013 99999 856000
>;
vop-pn-msch-readlatency = <
0 0x20
4 0x20
>;
auto-min-freq = <328000>;
auto-freq-en = <0>;
};
&dmc_opp_table {
compatible = "operating-points-v2";
opp-200000000 {
opp-hz = /bits/ 64 <200000000>;
opp-microvolt = <900000>;
status = "disabled";
};
opp-300000000 {
opp-hz = /bits/ 64 <300000000>;
opp-microvolt = <900000>;
status = "disabled";
};
opp-328000000 {
opp-hz = /bits/ 64 <328000000>;
opp-microvolt = <900000>;
};
opp-400000000 {
opp-hz = /bits/ 64 <400000000>;
opp-microvolt = <900000>;
status = "disabled";
};
opp-416000000 {
opp-hz = /bits/ 64 <416000000>;
opp-microvolt = <900000>;
};
opp-528000000 {
opp-hz = /bits/ 64 <528000000>;
opp-microvolt = <900000>;
status = "disabled";
};
opp-600000000 {
opp-hz = /bits/ 64 <600000000>;
opp-microvolt = <900000>;
status = "disabled";
};
opp-666000000 {
opp-hz = /bits/ 64 <666000000>;
opp-microvolt = <900000>;
};
opp-800000000 {
opp-hz = /bits/ 64 <800000000>;
opp-microvolt = <900000>;
status = "disabled";
};
opp-856000000 {
opp-hz = /bits/ 64 <856000000>;
opp-microvolt = <900000>;
};
opp-928000000 {
opp-hz = /bits/ 64 <928000000>;
opp-microvolt = <900000>;
status = "disabled";
};
};
&rkisp1_0 {
status = "okay";
port {
#address-cells = <1>;
#size-cells = <0>;
isp0_mipi_in: endpoint@0 {
reg = <0>;
remote-endpoint = <&dphy_rx0_out>;
};
};
};
&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>;
};
};
};
};
&isp0_mmu {
status = "okay";
};
&rkisp1_1 {
status = "okay";
port {
#address-cells = <1>;
#size-cells = <0>;
isp1_mipi_in: endpoint@0 {
reg = <0>;
remote-endpoint = <&dphy_tx1rx1_out>;
};
};
};
&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>;
};
};
};
};
&isp1_mmu {
status = "okay";
};
&saradc {
vref-supply = <&vccadc_ref>;
};
&backlight {
status = "okay";
enable-gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
};
&cdn_dp {
status = "okay";
extcon = <&fusb0>;
phys = <&tcphy0_dp>;
};
&display_subsystem {
status = "okay";
};
&route_edp {
status = "okay";
};
&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";
};
&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>;
interrupt-parent = <&gpio2>;
interrupts = <12 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&hdmiin_gpios>;
status = "disabled";
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>;
};
};
};
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>;
port {
ucam_out0: endpoint {
remote-endpoint = <&mipi_in_ucam0>;
data-lanes = <1 2>;
};
};
};
};
&i2c4 {
status = "okay";
};
&pcie_phy {
status = "okay";
};
&pcie0 {
status = "okay";
};
&vopb {
status = "okay";
assigned-clocks = <&cru DCLK_VOP0_DIV>;
assigned-clock-parents = <&cru PLL_CPLL>;
};
&vopb_mmu {
status = "okay";
};
&vopl {
status = "okay";
assigned-clocks = <&cru DCLK_VOP1_DIV>;
assigned-clock-parents = <&cru PLL_VPLL>;
};
&vopl_mmu {
status = "okay";
};
&pinctrl {
buttons {
pwrbtn: pwrbtn {
rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
lcd-panel {
lcd_panel_reset: lcd-panel-reset {
rockchip,pins = <4 RK_PD6 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
hdmiin {
hdmiin_gpios: hdmiin-gpios {
rockchip,pins =
<2 RK_PA5 RK_FUNC_GPIO &pcfg_output_high>,
<2 RK_PA6 RK_FUNC_GPIO &pcfg_output_high>,
<2 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>,
<2 RK_PB0 RK_FUNC_GPIO &pcfg_output_high>,
<2 RK_PB1 RK_FUNC_GPIO &pcfg_output_high>,
<2 RK_PB2 RK_FUNC_GPIO &pcfg_output_low>,
<2 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};