From 818fff9eed1c36f404f0556a0b239b43799a094b Mon Sep 17 00:00:00 2001 From: Dave Stevenson Date: Tue, 10 Nov 2020 17:49:35 +0000 Subject: [PATCH] Add devicetree support for RaspberryPi 7" panel over DSI I2C Signed-off-by: Dave Stevenson --- arch/arm/boot/dts/overlays/Makefile | 1 + arch/arm/boot/dts/overlays/README | 8 +++ .../overlays/vc4-kms-dsi-7inch-overlay.dts | 56 +++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-dsi-7inch-overlay.dts --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -201,6 +201,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ upstream.dtbo \ upstream-pi4.dtbo \ vc4-fkms-v3d.dtbo \ + vc4-kms-dsi-7inch.dtbo \ vc4-kms-kippah-7inch.dtbo \ vc4-kms-v3d.dtbo \ vc4-kms-v3d-pi4.dtbo \ --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -2935,6 +2935,14 @@ Params: cma-512 CMA is 5 cma-default Use upstream's default value +Name: vc4-kms-dsi-7inch +Info: Enable the Raspberry Pi DSI 7" screen. + Use edt-ft5406 for the touchscreen element. + Requires vc4-kms-v3d to be loaded. +Load: dtoverlay=vc4-kms-dsi-7inch +Params: + + Name: vc4-kms-kippah-7inch Info: Enable the Adafruit DPI Kippah with the 7" Ontat panel attached. Requires vc4-kms-v3d to be loaded. --- /dev/null +++ b/arch/arm/boot/dts/overlays/vc4-kms-dsi-7inch-overlay.dts @@ -0,0 +1,56 @@ +/* + * Device Tree overlay for RaspberryPi 7" Touchscreen panel + * + */ + +/dts-v1/; +/plugin/; + +/ { + compatible = "brcm,bcm2835"; + + fragment@0 { + target = <&dsi1>; + __overlay__ { + #address-cells = <1>; size-cells = <0>; + status = "okay"; + port { + dsi_out_port: endpoint { + remote-endpoint = <&panel_dsi_port>; + }; + }; + }; + }; + + fragment@1 { + target = <&i2c_csi_dsi>; + __overlay__ { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + lcd@45 { + compatible = "raspberrypi,7inch-touchscreen-panel"; + reg = <0x45>; + port { + panel_dsi_port: endpoint { + remote-endpoint = <&dsi_out_port>; + }; + }; + }; + }; + }; + + fragment@2 { + target = <&i2c0if>; + __overlay__ { + status = "okay"; + }; + }; + + fragment@3 { + target = <&i2c0mux>; + __overlay__ { + status = "okay"; + }; + }; +};