mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-22 06:57:57 +00:00
154 lines
3.6 KiB
Diff
154 lines
3.6 KiB
Diff
|
From 99f2ab0dad947049e0fa62e88c1e4c1feb7ab379 Mon Sep 17 00:00:00 2001
|
||
|
From: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||
|
Date: Thu, 4 Feb 2021 14:41:10 +0000
|
||
|
Subject: [PATCH] dtoverlays: Add an overlay for the VGA666 when used
|
||
|
with vc4-kms-v3d
|
||
|
|
||
|
Includes optional use of GPIOs 0&1 / BSC0 for DDC to read the EDID
|
||
|
from the display.
|
||
|
|
||
|
Signed-off-by: Dave Stevenson <dave.stevenson@raspberrypi.com>
|
||
|
---
|
||
|
arch/arm/boot/dts/overlays/Makefile | 1 +
|
||
|
arch/arm/boot/dts/overlays/README | 10 ++
|
||
|
.../dts/overlays/vc4-kms-vga666-overlay.dts | 100 ++++++++++++++++++
|
||
|
3 files changed, 111 insertions(+)
|
||
|
create mode 100644 arch/arm/boot/dts/overlays/vc4-kms-vga666-overlay.dts
|
||
|
|
||
|
--- a/arch/arm/boot/dts/overlays/Makefile
|
||
|
+++ b/arch/arm/boot/dts/overlays/Makefile
|
||
|
@@ -211,6 +211,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
|
||
|
vc4-kms-kippah-7inch.dtbo \
|
||
|
vc4-kms-v3d.dtbo \
|
||
|
vc4-kms-v3d-pi4.dtbo \
|
||
|
+ vc4-kms-vga666.dtbo \
|
||
|
vga666.dtbo \
|
||
|
w1-gpio.dtbo \
|
||
|
w1-gpio-pullup.dtbo \
|
||
|
--- a/arch/arm/boot/dts/overlays/README
|
||
|
+++ b/arch/arm/boot/dts/overlays/README
|
||
|
@@ -3120,10 +3120,20 @@ Params: cma-512 CMA is 5
|
||
|
outputs)
|
||
|
|
||
|
|
||
|
+Name: vc4-kms-vga666
|
||
|
+Info: Enable the VGA666 (resistor ladder ADC) for the vc4-kms-v3d driver.
|
||
|
+ Requires vc4-kms-v3d to be loaded.
|
||
|
+Load: dtoverlay=vc4-kms-vga666,<param>
|
||
|
+Params: ddc Enables GPIOs 0&1 as the I2C to read the EDID
|
||
|
+ from the display. NB These are NOT 5V tolerant
|
||
|
+ GPIOs, therefore level shifters are required.
|
||
|
+
|
||
|
+
|
||
|
Name: vga666
|
||
|
Info: Overlay for the Fen Logic VGA666 board
|
||
|
This uses GPIOs 2-21 (so no I2C), and activates the output 2-3 seconds
|
||
|
after the kernel has started.
|
||
|
+ NOT for use with vc4-kms-v3d.
|
||
|
Load: dtoverlay=vga666
|
||
|
Params: <None>
|
||
|
|
||
|
--- /dev/null
|
||
|
+++ b/arch/arm/boot/dts/overlays/vc4-kms-vga666-overlay.dts
|
||
|
@@ -0,0 +1,100 @@
|
||
|
+/*
|
||
|
+ * vc4-kms-vga666-overlay.dts
|
||
|
+ * Configures a FenLogic or similar VGA666 DPI adapter when using the
|
||
|
+ * vc4-kms-v3d driver.
|
||
|
+ * If a suitable I2C level shifter is connected to GPIOs 0&1 and the VGA
|
||
|
+ * ID1/SDA (pin 12) and ID3/SCL (pin 15) lines, then there is the option to
|
||
|
+ * enable reading the EDID from the display.
|
||
|
+ */
|
||
|
+
|
||
|
+/dts-v1/;
|
||
|
+/plugin/;
|
||
|
+
|
||
|
+#include <dt-bindings/pinctrl/bcm2835.h>
|
||
|
+
|
||
|
+/ {
|
||
|
+ compatible = "brcm,bcm2835";
|
||
|
+
|
||
|
+ fragment@0 {
|
||
|
+ target-path = "/";
|
||
|
+ __overlay__ {
|
||
|
+ vga_connector: vga_connector {
|
||
|
+ compatible = "vga-connector";
|
||
|
+ label = "vga";
|
||
|
+
|
||
|
+ port {
|
||
|
+ vga_con_in: endpoint {
|
||
|
+ remote-endpoint = <&vga666_out>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ vga_dac {
|
||
|
+ compatible = "dumb-vga-dac";
|
||
|
+
|
||
|
+ ports {
|
||
|
+ #address-cells = <1>;
|
||
|
+ #size-cells = <0>;
|
||
|
+
|
||
|
+ port@0 {
|
||
|
+ reg = <0>;
|
||
|
+
|
||
|
+ vga666_in: endpoint {
|
||
|
+ remote-endpoint = <&dpi_out>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ port@1 {
|
||
|
+ reg = <1>;
|
||
|
+
|
||
|
+ vga666_out: endpoint {
|
||
|
+ remote-endpoint = <&vga_con_in>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@1 {
|
||
|
+ target = <&dpi>;
|
||
|
+ __overlay__ {
|
||
|
+ status = "okay";
|
||
|
+
|
||
|
+ pinctrl-names = "default";
|
||
|
+ pinctrl-0 = <&dpi_18bit_gpio2>;
|
||
|
+
|
||
|
+ port {
|
||
|
+ dpi_out: endpoint@0 {
|
||
|
+ remote-endpoint = <&vga666_in>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@2 {
|
||
|
+ target = <&vga_connector>;
|
||
|
+ __dormant__ {
|
||
|
+ ddc-i2c-bus = <&i2c_vc>;
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@3 {
|
||
|
+ target = <&i2c0if>;
|
||
|
+ __dormant__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ fragment@4 {
|
||
|
+ target = <&i2c0mux>;
|
||
|
+ __dormant__ {
|
||
|
+ status = "okay";
|
||
|
+ };
|
||
|
+ };
|
||
|
+
|
||
|
+ __overrides__ {
|
||
|
+ ddc = <0>,"=2", <0>,"=3", <0>,"=4";
|
||
|
+ };
|
||
|
+};
|