[PATCH 2/2] ARM: dts: Add bcm2711-rpi-4-b-7inch-ts-dsi.dts

From: Detlev Casanova
Date: Wed Feb 09 2022 - 11:27:28 EST


Add a device tree to support the official Raspberrypi 7" touchscreen for
the Raspberry Pi 4 B

The panel is connected on the DSI 1 port and uses the simple-panel
driver.

The device tree also makes sure to activate:
* dvp: bcm2711 clock driver
* hvs: Hardware Video Scaler
* pixelvalve[0-4]: CRTC modules
* txp: CRTC Writeback

Signed-off-by: Detlev Casanova <detlev.casanova@xxxxxxxxxxxxx>
---
arch/arm/boot/dts/Makefile | 1 +
.../boot/dts/bcm2711-rpi-4-b-7inch-ts-dsi.dts | 129 ++++++++++++++++++
arch/arm64/boot/dts/broadcom/Makefile | 1 +
.../broadcom/bcm2711-rpi-4-b-7inch-ts-dsi.dts | 2 +
4 files changed, 133 insertions(+)
create mode 100644 arch/arm/boot/dts/bcm2711-rpi-4-b-7inch-ts-dsi.dts
create mode 100644 arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b-7inch-ts-dsi.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 0de64f237cd8..b46daf2df4ce 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -94,6 +94,7 @@ dtb-$(CONFIG_ARCH_BCM2835) += \
bcm2837-rpi-cm3-io3.dtb \
bcm2711-rpi-400.dtb \
bcm2711-rpi-4-b.dtb \
+ bcm2711-rpi-4-b-7inch-ts-dsi.dtb \
bcm2711-rpi-cm4-io.dtb \
bcm2835-rpi-zero.dtb \
bcm2835-rpi-zero-w.dtb
diff --git a/arch/arm/boot/dts/bcm2711-rpi-4-b-7inch-ts-dsi.dts b/arch/arm/boot/dts/bcm2711-rpi-4-b-7inch-ts-dsi.dts
new file mode 100644
index 000000000000..62e986358c2a
--- /dev/null
+++ b/arch/arm/boot/dts/bcm2711-rpi-4-b-7inch-ts-dsi.dts
@@ -0,0 +1,129 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include "bcm2711-rpi-4-b.dts"
+
+/ {
+ model = "Raspberry Pi 4 Model B + Rpi 7inch touchscreen";
+
+ panel_disp1: panel_disp1@0 {
+ reg = <0 0 0>;
+ compatible = "raspberrypi,7inch-dsi", "simple-panel";
+ backlight = <&reg_display>;
+ power-supply = <&reg_display>;
+ status = "okay";
+
+ port {
+ panel_in: endpoint {
+ remote-endpoint = <&bridge_out>;
+ };
+ };
+ };
+
+ reg_bridge: reg_bridge@0 {
+ reg = <0 0 0>;
+ compatible = "regulator-fixed";
+ regulator-name = "bridge_reg";
+ gpio = <&reg_display 0 0>;
+ vin-supply = <&reg_display>;
+ enable-active-high;
+ status = "okay";
+ };
+};
+
+&i2c_csi_dsi {
+ ft5406: ts@38 {
+ compatible = "edt,edt-ft5506";
+ reg = <0x38>;
+ status = "okay";
+
+ vcc-supply = <&reg_display>;
+ reset-gpio = <&reg_display 1 1>;
+
+ touchscreen-size-x = < 800 >;
+ touchscreen-size-y = < 480 >;
+
+ touchscreen-inverted-x;
+ touchscreen-inverted-y;
+ };
+
+ reg_display: reg_display@45 {
+ compatible = "raspberrypi,7inch-touchscreen-panel-regulator";
+ reg = <0x45>;
+ gpio-controller;
+ #gpio-cells = <2>;
+ status = "okay";
+ };
+
+};
+
+&dsi1 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ port {
+ dsi_out: endpoint {
+ remote-endpoint = <&bridge_in>;
+ };
+ };
+
+ bridge@0 {
+ reg = <0>;
+ compatible = "toshiba,tc358762";
+ vddc-supply = <&reg_bridge>;
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ bridge_in: endpoint {
+ remote-endpoint = <&dsi_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ bridge_out: endpoint {
+ remote-endpoint = <&panel_in>;
+ };
+ };
+ };
+ };
+};
+
+&aon_intr {
+ status = "okay";
+};
+
+&dvp {
+ status = "okay";
+};
+
+&hvs {
+ status = "okay";
+};
+
+&pixelvalve0 {
+ status = "okay";
+};
+
+&pixelvalve1 {
+ status = "okay";
+};
+
+&pixelvalve2 {
+ status = "okay";
+};
+
+&pixelvalve3 {
+ status = "okay";
+};
+
+&pixelvalve4 {
+ status = "okay";
+};
+
+&txp {
+ status = "okay";
+};
diff --git a/arch/arm64/boot/dts/broadcom/Makefile b/arch/arm64/boot/dts/broadcom/Makefile
index c6882032a428..965361bff829 100644
--- a/arch/arm64/boot/dts/broadcom/Makefile
+++ b/arch/arm64/boot/dts/broadcom/Makefile
@@ -1,6 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
dtb-$(CONFIG_ARCH_BCM2835) += bcm2711-rpi-400.dtb \
bcm2711-rpi-4-b.dtb \
+ bcm2711-rpi-4-b-7inch-ts-dsi.dtb \
bcm2711-rpi-cm4-io.dtb \
bcm2837-rpi-3-a-plus.dtb \
bcm2837-rpi-3-b.dtb \
diff --git a/arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b-7inch-ts-dsi.dts b/arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b-7inch-ts-dsi.dts
new file mode 100644
index 000000000000..c325adc4f874
--- /dev/null
+++ b/arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b-7inch-ts-dsi.dts
@@ -0,0 +1,2 @@
+// SPDX-License-Identifier: GPL-2.0
+#include "arm/bcm2711-rpi-4-b-7inch-ts-dsi.dts"
--
2.35.1