summaryrefslogtreecommitdiffstats
path: root/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/dsi/0001-Add-devicetree-support-for-RaspberryPi-7-panel-over-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/dsi/0001-Add-devicetree-support-for-RaspberryPi-7-panel-over-.patch')
-rw-r--r--meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/dsi/0001-Add-devicetree-support-for-RaspberryPi-7-panel-over-.patch351
1 files changed, 351 insertions, 0 deletions
diff --git a/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/dsi/0001-Add-devicetree-support-for-RaspberryPi-7-panel-over-.patch b/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/dsi/0001-Add-devicetree-support-for-RaspberryPi-7-panel-over-.patch
new file mode 100644
index 000000000..fce687290
--- /dev/null
+++ b/meta-agl-bsp/meta-raspberrypi/recipes-kernel/linux/linux-raspberrypi/dsi/0001-Add-devicetree-support-for-RaspberryPi-7-panel-over-.patch
@@ -0,0 +1,351 @@
+From 380fd9f0da44ed62dff59a7c7e06f1190b58aa64 Mon Sep 17 00:00:00 2001
+From: Kevin Quigley <kevin@kquigley.co.uk>
+Date: Mon, 24 Sep 2018 12:22:31 +0000
+Subject: [PATCH 1/4] Add devicetree support for RaspberryPi 7" panel over DSI
+ I2C
+
+---
+ arch/arm/boot/dts/bcm2708-rpi-b-plus.dts | 5 +++
+ arch/arm/boot/dts/bcm2708-rpi-b.dts | 6 +++
+ arch/arm/boot/dts/bcm2708-rpi.dtsi | 21 ++++++++++
+ arch/arm/boot/dts/bcm2709-rpi-2-b.dts | 5 +++
+ arch/arm/boot/dts/bcm270x.dtsi | 39 +++++++++++++++++
+ arch/arm/boot/dts/bcm2710-rpi-3-b.dts | 6 +++
+ arch/arm/boot/dts/bcm2835-rpi-b-plus.dts | 5 +++
+ arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts | 5 +++
+ arch/arm/boot/dts/bcm2835-rpi-b.dts | 5 +++
+ arch/arm/boot/dts/bcm2835-rpi.dtsi | 2 +
+ arch/arm/boot/dts/bcm2836-rpi-2-b.dts | 5 +++
+ arch/arm/boot/dts/bcm2837-rpi-3-b.dts | 5 +++
+ arch/arm/boot/dts/bcm283x.dtsi | 16 ++++++-
+ arch/arm/boot/dts/overlays/Makefile | 1 +
+ .../boot/dts/overlays/rpi-7inch-overlay.dts | 42 +++++++++++++++++++
+ 15 files changed, 167 insertions(+), 1 deletion(-)
+ create mode 100644 arch/arm/boot/dts/overlays/rpi-7inch-overlay.dts
+
+diff --git a/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
+index ef0beea3a3a3..83b95b9a6ec3 100644
+--- a/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
++++ b/arch/arm/boot/dts/bcm2708-rpi-b-plus.dts
+@@ -121,3 +121,8 @@
+ pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
+ };
+ };
++
++&i2c_dsi {
++ gpios = <&gpio 28 0
++ &gpio 29 0>;
++};
+diff --git a/arch/arm/boot/dts/bcm2708-rpi-b.dts b/arch/arm/boot/dts/bcm2708-rpi-b.dts
+index dea70fae90e6..ea5de651d59d 100644
+--- a/arch/arm/boot/dts/bcm2708-rpi-b.dts
++++ b/arch/arm/boot/dts/bcm2708-rpi-b.dts
+@@ -111,3 +111,9 @@
+ act_led_trigger = <&act_led>,"linux,default-trigger";
+ };
+ };
++
++
++&i2c_dsi {
++ gpios = <&gpio 2 0
++ &gpio 3 0>;
++};
+diff --git a/arch/arm/boot/dts/bcm2708-rpi.dtsi b/arch/arm/boot/dts/bcm2708-rpi.dtsi
+index b13632932192..2d8421f6681c 100644
+--- a/arch/arm/boot/dts/bcm2708-rpi.dtsi
++++ b/arch/arm/boot/dts/bcm2708-rpi.dtsi
+@@ -132,6 +132,27 @@
+ power-domains = <&power RPI_POWER_DOMAIN_USB>;
+ };
+
++&v3d {
++ power-domains = <&power RPI_POWER_DOMAIN_V3D>;
++};
++
++&vec {
++ power-domains = <&power RPI_POWER_DOMAIN_VEC>;
++ status = "okay";
++};
++
++&dsi0 {
++ power-domains = <&power RPI_POWER_DOMAIN_DSI0>;
++ status = "okay";
++};
++
++&dsi1 {
++ power-domains = <&power RPI_POWER_DOMAIN_DSI1>;
++ status = "okay";
++};
++
++
++
+ &clocks {
+ firmware = <&firmware>;
+ };
+diff --git a/arch/arm/boot/dts/bcm2709-rpi-2-b.dts b/arch/arm/boot/dts/bcm2709-rpi-2-b.dts
+index 34659505055a..c23f79395791 100644
+--- a/arch/arm/boot/dts/bcm2709-rpi-2-b.dts
++++ b/arch/arm/boot/dts/bcm2709-rpi-2-b.dts
+@@ -122,3 +122,8 @@
+ pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
+ };
+ };
++
++&i2c_dsi {
++ gpios = <&gpio 28 0
++ &gpio 29 0>;
++};
+diff --git a/arch/arm/boot/dts/bcm270x.dtsi b/arch/arm/boot/dts/bcm270x.dtsi
+index f086ff0deec5..0b1ef47b18b0 100644
+--- a/arch/arm/boot/dts/bcm270x.dtsi
++++ b/arch/arm/boot/dts/bcm270x.dtsi
+@@ -84,6 +84,26 @@
+ status = "disabled";
+ };
+
++ dsi1: dsi@7e700000 {
++ compatible = "brcm,bcm2835-dsi1";
++ reg = <0x7e700000 0x8c>;
++ interrupts = <2 12>;
++ #address-cells = <1>;
++ #size-cells = <0>;
++ #clock-cells = <1>;
++
++ clocks = <&clocks BCM2835_PLLD_DSI1>,
++ <&clocks BCM2835_CLOCK_DSI1E>,
++ <&clocks BCM2835_CLOCK_DSI1P>;
++ clock-names = "phy", "escape", "pixel";
++
++ clock-output-names = "dsi1_byte",
++ "dsi1_ddr2",
++ "dsi1_ddr";
++
++ status = "disabled";
++ };
++
+ firmwarekms: firmwarekms@7e600000 {
+ compatible = "raspberrypi,rpi-firmware-kms";
+ /* SMI interrupt reg */
+@@ -93,6 +113,21 @@
+ status = "disabled";
+ };
+
++ i2c_dsi: i2cdsi {
++ /* We have to use i2c-gpio because the
++ * firmware is also polling another device
++ * using the only hardware I2C bus that could
++ * connect to these pins.
++ */
++ compatible = "i2c-gpio";
++ #address-cells = <1>;
++ #size-cells = <0>;
++ status = "disabled";
++ gpios = <&gpio 28 0
++ &gpio 29 0>;
++
++ };
++
+ smi: smi@7e600000 {
+ compatible = "brcm,bcm2835-smi";
+ reg = <0x7e600000 0x100>;
+@@ -187,3 +222,7 @@
+ &vc4 {
+ status = "disabled";
+ };
++
++&dsi1 {
++ power-domains = <&power RPI_POWER_DOMAIN_DSI1>;
++};
+diff --git a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts
+index 37aed344cbbf..6ec9b28999f3 100644
+--- a/arch/arm/boot/dts/bcm2710-rpi-3-b.dts
++++ b/arch/arm/boot/dts/bcm2710-rpi-3-b.dts
+@@ -190,3 +190,9 @@
+ pwr_led_trigger = <&pwr_led>,"linux,default-trigger";
+ };
+ };
++
++&i2c_dsi {
++ gpios = <&gpio 44 0
++ &gpio 45 0>;
++};
++
+diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
+index a462de2ce37e..346efbd4a95f 100644
+--- a/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-b-plus.dts
+@@ -109,3 +109,8 @@
+ pinctrl-0 = <&uart0_gpio14>;
+ status = "okay";
+ };
++
++&i2c_dsi {
++ gpios = <&gpio 28 0
++ &gpio 29 0>;
++};
+diff --git a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
+index 264c84e94329..8b9ebf3670c2 100644
+--- a/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-b-rev2.dts
+@@ -102,3 +102,8 @@
+ pinctrl-0 = <&uart0_gpio14>;
+ status = "okay";
+ };
++
++&i2c_dsi {
++ gpios = <&gpio 2 0
++ &gpio 3 0>;
++};
+diff --git a/arch/arm/boot/dts/bcm2835-rpi-b.dts b/arch/arm/boot/dts/bcm2835-rpi-b.dts
+index 03e3a7a7dc5e..4020e79fc989 100644
+--- a/arch/arm/boot/dts/bcm2835-rpi-b.dts
++++ b/arch/arm/boot/dts/bcm2835-rpi-b.dts
+@@ -97,3 +97,8 @@
+ pinctrl-0 = <&uart0_gpio14>;
+ status = "okay";
+ };
++
++&i2c_dsi {
++ gpios = <&gpio 28 0
++ &gpio 29 0>;
++};
+diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
+index 356d4e6a17e5..0599f0a27e5f 100644
+--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
++++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
+@@ -101,10 +101,12 @@
+
+ &dsi0 {
+ power-domains = <&power RPI_POWER_DOMAIN_DSI0>;
++ status = "okay";
+ };
+
+ &dsi1 {
+ power-domains = <&power RPI_POWER_DOMAIN_DSI1>;
++ status = "okay";
+ };
+
+ &csi0 {
+diff --git a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
+index 59e70f4a19e5..6c4c9c8d8ed0 100644
+--- a/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
++++ b/arch/arm/boot/dts/bcm2836-rpi-2-b.dts
+@@ -47,3 +47,8 @@
+ pinctrl-0 = <&uart0_gpio14>;
+ status = "okay";
+ };
++
++&i2c_dsi {
++ gpios = <&gpio 28 0
++ &gpio 29 0>;
++};
+diff --git a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
+index 8703d006a206..c99f70cefa61 100644
+--- a/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
++++ b/arch/arm/boot/dts/bcm2837-rpi-3-b.dts
+@@ -56,3 +56,8 @@
+ status = "okay";
+ bus-width = <4>;
+ };
++
++&i2c_dsi {
++ gpios = <&gpio 44 0
++ &gpio 45 0>;
++};
+diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
+index 22eca6fad427..3ee99963f827 100644
+--- a/arch/arm/boot/dts/bcm283x.dtsi
++++ b/arch/arm/boot/dts/bcm283x.dtsi
+@@ -551,7 +551,6 @@
+ clock-output-names = "dsi1_byte",
+ "dsi1_ddr2",
+ "dsi1_ddr";
+-
+ status = "disabled";
+ };
+
+@@ -652,6 +651,21 @@
+ vc4: gpu {
+ compatible = "brcm,bcm2835-vc4";
+ };
++
++ i2c_dsi: i2cdsi {
++ /* We have to use i2c-gpio because the
++ * firmware is also polling another device
++ * using the only hardware I2C bus that could
++ * connect to these pins.
++ */
++ compatible = "i2c-gpio";
++ #address-cells = <1>;
++ #size-cells = <0>;
++ status = "disabled";
++ gpios = <&gpio 28 0
++ &gpio 29 0>;
++
++ };
+ };
+
+ clocks {
+diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile
+index e0bdd84d21c5..f983d0180b8b 100644
+--- a/arch/arm/boot/dts/overlays/Makefile
++++ b/arch/arm/boot/dts/overlays/Makefile
+@@ -110,6 +110,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
+ rpi-cirrus-wm5102.dtbo \
+ rpi-dac.dtbo \
+ rpi-display.dtbo \
++ rpi-7inch.dtbo \
+ rpi-ft5406.dtbo \
+ rpi-poe.dtbo \
+ rpi-proto.dtbo \
+diff --git a/arch/arm/boot/dts/overlays/rpi-7inch-overlay.dts b/arch/arm/boot/dts/overlays/rpi-7inch-overlay.dts
+new file mode 100644
+index 000000000000..3bb882d79086
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/rpi-7inch-overlay.dts
+@@ -0,0 +1,42 @@
++/*
++ * Device Tree overlay for RaspberryPi 7" Touchscreen panel
++ *
++ */
++
++/dts-v1/;
++/plugin/;
++
++/ {
++ compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
++
++ fragment@1 {
++ target = <&dsi1>;
++ __overlay__ {
++ #address-cells = <1>; size-cells = <0>;
++ status = "okay";
++ port {
++ dsi_out_port: endpoint {
++ remote-endpoint = <&panel_dsi_port>;
++ };
++ };
++ };
++ };
++
++ fragment@2 {
++ target = <&i2c_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>;
++ };
++ };
++ };
++ };
++ };
++};
+--
+2.21.0
+