Details on the OS can be found included in https://paste.debian.net/hidden/72e62232/ (latest kernel - 6.6.36-v8-16k+ #1 SMP PREEMPT Thu Jul 4 15:30:55 CEST 2024 aarch64 GNU/Linux) - it's a custom kernel which has three modules enabled in addition:What kernel version, video mode timings, DSI flags, number of lanes etc. are (or were) you using?
It was nearly working so I expect it can be fixed!
- Generic LVDS panel driver
- TI SN65DSI83 and SN65DSI84 DSI to LVDS bridge
- Generic LED based Backlight Driver
The overlay in use --> as you can see it is 3-lane DSI, find the timing details from the overlay
Code:
/* * vc4-kms-dsi-ti-sn65dsi83-evo-pi5-devicetree-overlay.dts * * requires below modules to be enabled in the kernel-config: * Device Drivers-Graphics support-Display Panels * ---> Generic LVDS panel driver * * Device Drivers-Graphics support-Display Interface Bridges * ---> TI SN65DSI83 and SN65DSI84 DSI to LVDS bridge * * Device Drivers-Graphics support-Backlight & LCD device support * ---> Generic LED based Backlight Driver *//dts-v1/;/plugin/;#include <dt-bindings/gpio/gpio.h>#include <dt-bindings/leds/common.h>/ {compatible = "brcm,bcm2835";/* PCA9538 GPIO expander, address 0x73 */fragment@0 {target = <&i2c_csi_dsi>;__overlay__ {#address-cells = <1>;#size-cells = <0>;status = "okay";pca: pca@73 {compatible = "nxp,pca9538";reg = <0x73>;gpio-controller;#gpio-cells = <2>;gpio-line-names = "EN_REG", "BLEN_1", "AUX1_2", "AUX1-1", "AUX2_2", "AUX2_1", "BLEN_2", "EN_PCA";status = "okay";aux12: aux12 {gpio-hog;gpios = <2 GPIO_ACTIVE_HIGH>;};aux11: aux11 {gpio-hog;gpios = <3 GPIO_ACTIVE_HIGH>;};aux22: aux22 {gpio-hog;gpios = <4 GPIO_ACTIVE_HIGH>;};aux21: aux21 {gpio-hog;gpios = <5 GPIO_ACTIVE_HIGH>;};};};};/* PCA9632 LED driver, address 0x62 */fragment@1 {target = <&i2c_csi_dsi>;__overlay__ {#address-cells = <1>;#size-cells = <0>;status = "okay";pca9632: pca9632@62 {compatible = "nxp,pca9632";#address-cells = <1>;#size-cells = <0>;reg = <0x62>;/*PCA9632 defaults to open-drain outputpull-ups were added, hence PWM needs tobe inverted */nxp,inverted-out;bl1: bl1@0 {reg = <0>;function = LED_FUNCTION_BACKLIGHT;color = <LED_COLOR_ID_WHITE>;linux,default-trigger = "backlight";label = "bl1";};bl2: bl2@1 {reg = <1>;function = LED_FUNCTION_BACKLIGHT;color = <LED_COLOR_ID_WHITE>;linux,default-trigger = "backlight";label = "bl2";};unused2: unused2@2 {reg = <2>;linux,default-trigger = "none";};unused3: unused3@3 {reg = <3>;linux,default-trigger = "none";};};};};fragment@2 {target-path = "/";__overlay__ {reg_sn65dsi83_1v8: reg_sn65dsi83_1v8@1{reg = <1>;compatible = "regulator-fixed";regulator-name = "vcc-sn65dsi83_1";regulator-min-microvolt = <1800000>;regulator-max-microvolt = <1800000>;regulator-boot-on;enable-active-high;/* regulator enable through PCA9538 IO0 */gpios = <&pca 0 GPIO_ACTIVE_HIGH>;status = "okay";};};};fragment@4 {target-path = "/";__overlay__ {/* Panel backlight through PCA9632 channel0 */backlight_lvds: backlight {compatible = "led-backlight";leds = <&bl1>;brightness-levels = <0 255>;num-interpolated-steps = <256>;default-brightness-level = <200>;/* BL enable through PCA9538 IO6 */enable-gpios = <&pca 6 0>;};panel: panel {compatible = "panel-lvds";/* panel enable through PCA9538 IO1 */enable-gpios = <&pca 1 0>;backlight = <&backlight_lvds>;/* Physical dimensions of active area */width-mm = <94>;height-mm = <150>;data-mapping = "jeida-18";/* chungwa claa070wp03xg (Google Nexus 7 Gen1) *//* 800x1280pixel portrait mode timing */panel-timing {clock-frequency = <66800000>;hactive = <800>;vactive = <1280>;hfront-porch = <16>;hback-porch = <32>;hsync-len = <16>;vfront-porch = <6>;vback-porch = <2>;vsync-len = <2>;hsync-active = <0>; /* Active LOW */vsync-active = <0>;de-active = <1>; /* Active HIGH */};port {panel_in_lvds: endpoint {remote-endpoint = <&bridge_out>;};};};};};fragment@5 {target = <&i2c_csi_dsi>;__overlay__ {#gpio-cells = <2>;#address-cells = <1>;#size-cells = <0>;status = "okay";bridge@2c {compatible = "ti,sn65dsi83";reg = <0x2c>;enable-gpios = <&pca 7 0>;vcc-supply = <®_sn65dsi83_1v8>;ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;bridge_in: endpoint {remote-endpoint = <&dsi_out_port>;data-lanes = <0 1 2>;};};port@2 {reg = <2>;bridge_out: endpoint {remote-endpoint = <&panel_in_lvds>;};};};};};};fragment@6 {target = <&dsi1>;__overlay__ {#address-cells = <1>;#size-cells = <0>;status = "okay";port {dsi_out_port: endpoint {remote-endpoint = <&bridge_in>;data-lanes = <0 1 2>;};};};};/*fragment@7 {target = <&i2c0if>;__overlay__ {status = "okay";};};fragment@8 {target = <&i2c0mux>;__overlay__ {status = "okay";};};*/fragment@10 {target = <&aux11>;__overlay__ {output-low;};};fragment@11 {target = <&aux11>;__dormant__ {output-high;};};fragment@12 {target = <&aux12>;__overlay__ {output-low;};};fragment@13 {target = <&aux12>;__dormant__ {output-high;};};fragment@14 {target = <&aux21>;__overlay__ {output-low;};};fragment@15 {target = <&aux21>;__dormant__ {output-high;};};fragment@16 {target = <&aux22>;__overlay__ {output-low;};};fragment@17 {target = <&aux22>;__dormant__ {output-high;};};__overrides__ {aux11_low = <0>,"+10-11";aux11_high = <0>,"-10+11";aux12_low = <0>,"+12-13";aux12_high = <0>,"-12+13";aux21_low = <0>,"+14-15";aux21_high = <0>,"-14+15";aux22_low = <0>,"+16-17";aux22_high = <0>,"-16+17";};};
6by9 has one of my boards - initial rev which required the control signals from GPIO40 - and such a display as well!
Statistics: Posted by aBUGSworstnightmare — Fri Jul 05, 2024 9:07 am