From 13652aa11a2fbed5605d47fbb11415de5ed6f161 Mon Sep 17 00:00:00 2001 From: Hu Kejun Date: Wed, 20 Feb 2019 16:02:36 +0800 Subject: [PATCH] ARM64: dts: rockchip: new rk3326-evb-lp3-v10-rk1608-linux Change-Id: I9509d19ce06026252e216a7b839684b1ea16d975 Signed-off-by: Hu Kejun Signed-off-by: Wenlong Zhuang --- arch/arm64/boot/dts/rockchip/Makefile | 1 + .../rk3326-evb-lp3-v10-rk1608-linux.dts | 277 ++++++++++++++++++ 2 files changed, 278 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10-rk1608-linux.dts diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index ff3e97e22eba..5a8bd37ca537 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -34,6 +34,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-evb-ai-va-v11-linux.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-evb-lp3-v10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-evb-lp3-v10-avb.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-evb-lp3-v10-linux.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-evb-lp3-v10-rk1608-linux.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-evb-lp3-v10-robot-linux.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-evb-lp3-v10-robot-no-gpu-linux.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3326-w7-icn6211-rk618-hdmi.dtb diff --git a/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10-rk1608-linux.dts b/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10-rk1608-linux.dts new file mode 100644 index 000000000000..f2f7f9ce4288 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3326-evb-lp3-v10-rk1608-linux.dts @@ -0,0 +1,277 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2018 Fuzhou Rockchip Electronics Co., Ltd + */ + +/dts-v1/; +#include "rk3326-evb-lp3-v10-linux.dts" + +#define LINK_FREQ 400000000 + +/ { + model = "Rockchip rk3326 evb lpddr3 v10 board for linux for rk1608"; + + mipidphy0: mipidphy0 { + compatible = "rockchip,rk1608-dphy"; + status = "okay"; + rockchip,grf = <&grf>; + id = <0>; + + cam_nums = <1>; + data_type = <0x2c>; + in_mipi = <2>; + out_mipi = <1>; + mipi_lane = <2>; + + sensor_i2c_bus = <1>; + sensor_i2c_addr = <0x78>; + sensor-name = "OPN8008"; + + field = <1>; + colorspace = <8>; + code = ; + width = <328>; + height= <744>; + + htotal = <650>; + vtotal = <900>; + link-freqs = /bits/ 64 ; + + inch0-info = <328 744 0x2c 0x2c 1>; + outch0-info = <328 744 0x2c 0x2c 1>; + + rockchip,camera-module-index = <0>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "TongJu"; + rockchip,camera-module-lens-name = "CHT842-MD"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + rk1608_dphy0_in: endpoint { + remote-endpoint = <&rk1608_out0>; + }; + }; + port@1 { + rk1608_dphy_out: endpoint { + remote-endpoint = <&mipi_in_ucam>; + clock-lanes = <0>; + data-lanes = <1 2>; + clock-noncontinuous; + link-frequencies = + /bits/ 64 ; + }; + }; + }; + }; +}; + +&dsi { + status = "okay"; + + panel@0 { + compatible = "simple-panel-dsi"; + reg = <0>; + dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | + MIPI_DSI_MODE_LPM | MIPI_DSI_MODE_EOT_PACKET)>; + dsi,format = ; + dsi,lanes = <4>; + + display-timings { + native-mode = <&timing0>; + + timing0: timing0 { + clock-frequency = <66000000>; + hactive = <720>; + vactive = <1280>; + hfront-porch = <40>; + hsync-len = <10>; + hback-porch = <40>; + vfront-porch = <22>; + vsync-len = <4>; + vback-porch = <11>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <0>; + pixelclk-active = <0>; + }; + }; + }; +}; + +&dsi_in_vopb { + status = "okay"; +}; + +&dsi_in_vopl { + status = "disabled"; +}; + +&route_dsi { + connect = <&vopb_out_dsi>; + status = "okay"; +}; + +&i2c2 { + status = "okay"; + clock-frequency = <400000>; + + /* 24M mclk is shared for multiple cameras */ + pinctrl-0 = <&i2c2_xfer &cif_clkout_m0>; + + /* These are relatively safe rise/fall times; TODO: measure */ + i2c-scl-falling-time-ns = <50>; + i2c-scl-rising-time-ns = <300>; + + pisp_dmy: pisp_dmy@1 { + compatible = "pisp_dmy"; + status = "okay"; + reg = <0x1>; + clocks = <&cru SCLK_CIF_OUT>; + clock-names = "xvclk"; + + pwdn-gpios = <&gpio2 14 GPIO_ACTIVE_HIGH>; + + rockchip,camera-module-index = <0>; + rockchip,camera-module-facing = "back"; + rockchip,camera-module-name = "TongJu"; + rockchip,camera-module-lens-name = "CHT842-MD"; + + port { + cam_out: endpoint { + remote-endpoint = <&rk1608_in0>; + data-lanes = <1 2>; + }; + }; + }; +}; + +&mipi_dphy_rx0 { + status = "okay"; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + + mipi_in_ucam: endpoint@1 { + reg = <1>; + remote-endpoint = <&rk1608_dphy_out>; + 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>; + }; + }; + }; +}; + +&rkisp1 { + status = "okay"; + + port { + #address-cells = <1>; + #size-cells = <0>; + + isp0_mipi_in: endpoint@0 { + reg = <0>; + remote-endpoint = <&dphy_rx0_out>; + }; + }; +}; + +&spi1 { + status = "okay"; + max-freq = <32000000>; + + spi_rk1608@00 { + compatible = "rockchip,rk1608"; + status = "okay"; + reg = <0>; + spi-max-frequency = <16000000>; + spi-min-frequency = <16000000>; + + clocks = <&cru SCLK_CIF_OUT>; + clock-names = "mclk"; + + firmware-names = "rk1608.rkl"; + + reset-gpios = <&gpio3 RK_PC4 GPIO_ACTIVE_HIGH>; + irq-gpios = <&gpio3 RK_PC5 GPIO_ACTIVE_HIGH>; + + pinctrl-names = "default"; + pinctrl-0 = <&preisp_irq_gpios &preisp_sleep_gpios + &preisp_reset_gpios>; + + /* regulator config */ + vdd-core-regulator = "vdd_preisp"; + vdd-core-microvolt = <1150000>; + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + #address-cells = <1>; + #size-cells = <0>; + + reg = <0>; + rk1608_out0: endpoint@0 { + reg = <0>; + remote-endpoint = <&rk1608_dphy0_in>; + }; + }; + + port@1 { + #address-cells = <1>; + #size-cells = <0>; + + reg = <1>; + rk1608_in0: endpoint@0 { + reg = <0>; + remote-endpoint = <&cam_out>; + }; + }; + }; + }; +}; + +&pinctrl { + preisp_reset_gpios { + preisp_reset_gpios: preisp_reset_gpios { + rockchip,pins = <3 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + preisp_irq_gpios { + preisp_irq_gpios: preisp_irq_gpios { + rockchip,pins = <3 RK_PC5 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + /*preisp_wake_gpios { + preisp_wake_gpios: preisp_wake_gpios { + rockchip,pins = <6 4 RK_FUNC_GPIO &pcfg_pull_none>; + }; + };*/ + + preisp_sleep_gpios { + preisp_sleep_gpios: preisp_sleep_gpios { + rockchip,pins = <3 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; + +/* DON'T PUT ANYTHING BELOW HERE. PUT IT ABOVE PINCTRL */