diff options
Diffstat (limited to 'arch/arm64')
-rw-r--r-- | arch/arm64/boot/dts/rockchip/Makefile | 1 | ||||
-rw-r--r-- | arch/arm64/boot/dts/rockchip/rk3399-puma-haikou-mipidsi.dts | 137 |
2 files changed, 138 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index 2113bdefa7a2..536a9c9f50f1 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -15,5 +15,6 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-bob.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-gru-kevin.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou-eoltest.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou-mipidsi.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb diff --git a/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou-mipidsi.dts b/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou-mipidsi.dts new file mode 100644 index 000000000000..5e1e8d667366 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou-mipidsi.dts @@ -0,0 +1,137 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2018 Theobroma Systems Design und Consulting GmbH + */ + +/dts-v1/; +#include "rk3399-puma-haikou.dts" +#include <dt-bindings/display/drm_mipi_dsi.h> + +/* + * from rk3399-puma-mipidsi.dts + */ + +/ { + backlight: backlight { + compatible = "gpio-backlight"; + // GPIO4_C2 = Q7_LVDS_BLT_CTRL. Set high to enable the backlight. Use PWM to regulate brightness. + gpios = <&gpio4 18 GPIO_ACTIVE_HIGH>; + default-on; + }; +}; + +&hdmi { + status = "disabled"; +}; + +&mipi_dsi { + status = "okay"; + + #address-cells = <1>; + #size-cells = <0>; + panel { + compatible ="simple-panel-dt"; + reg = <0>; + backlight = <&backlight>; + // GPIO2_A2 = SEL_EDP_1V8. Set low to switch the hardware mux from eDP to DSI. + enable-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>; + // GPIO4_D6 = LVDS_PPEN. Set low to send the panel into reset. + reset-gpios = <&gpio4 30 GPIO_ACTIVE_LOW>; + // Keep reset low for X milliseconds + reset-delay-ms = <10>; + // And wait X ms for the panel controller to boot up + init-delay-ms = <100>; + + dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | + MIPI_DSI_MODE_VIDEO_SYNC_PULSE | MIPI_DSI_MODE_LPM)>; + dsi,format = <MIPI_DSI_FMT_RGB888>; + dsi,lanes = <4>; + status = "okay"; + + panel-init-sequence = [ + 15 01 02 cd aa + 15 01 02 30 00 + 15 01 02 5e 03 + 15 01 02 32 00 + 15 01 02 33 25 + 15 01 02 65 08 + 15 01 02 3a 10 + 15 01 02 36 49 + 15 01 02 67 82 + 15 01 02 69 27 + 15 01 02 6c 27 + 15 01 02 6d 14 + 39 01 09 55 09 09 09 09 09 09 09 09 + 39 01 11 56 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 09 + 15 01 02 6b 00 + 15 01 02 58 08 + 15 01 02 73 30 + 15 01 02 74 10 + 15 01 02 77 00 + 15 01 02 68 00 + 15 01 02 28 28 + 39 01 05 57 00 00 09 09 + 15 01 02 41 46 + 15 01 02 4e 50 + 15 01 02 4f 55 + 15 01 02 63 04 + 39 01 14 53 1f 1a 17 13 12 12 14 15 15 10 0d 0b 0b 0c 0d 0a 08 03 00 + 39 01 14 54 1f 1a 17 13 12 12 14 15 15 10 0d 0b 0b 0c 0d 0a 08 03 00 + 15 01 02 29 10 + 15 01 02 2e 03 + 15 01 02 78 67 + 15 01 02 76 36 + 15 01 02 47 18 + 15 01 02 2d 31 + 15 01 02 50 d0 + 15 01 02 48 66 + 15 01 02 3f 00 + 15 01 02 31 01 + 15 01 02 4d 00 + ]; + + + display-timings { + native-mode = <&timing0>; + timing0: timing0 { + clock-frequency = <71900000>; + hactive = <800>; + vactive = <1280>; + hback-porch = <24>; + hfront-porch = <72>; + vback-porch = <10>; + vfront-porch = <12>; + hsync-len = <24>; + vsync-len = <2>; + hsync-active = <0>; + vsync-active = <0>; + de-active = <1>; + pixelclk-active = <1>; + }; + }; + }; +}; + +&i2c1 { + /* Touchscreen */ + gsl1680 { + compatible = "silead,gsl1680"; + reg = <0x40>; + // We don't have an interrupt line available on the dev kit. + // So we use 15 = arch_timer interrupt instead, tricking the driver into polling. + interrupts = <15 IRQ_TYPE_NONE>; + // Must be set but value is arbitrary (?) + interrupt-parent = <&gpio2>; + // GPIO1_C7 = LVDS_BLEN = gpio1 23 + power-gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>; + touchscreen-size-x = <1720>; + touchscreen-size-y = <1150>; + touchscreen-swapped-x-y; + touchscreen-inverted-x; + touchscreen-inverted-y; + + silead,max-fingers = <5>; + // Place into /lib/firmware/silead + firmware-name = "ec080.fw"; + }; +}; |